/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-02fp819920] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-02fp819920] {
    flex: 1;
}

.sidebar[b-02fp819920] {
    background-color: #052767;
}

.top-row[b-02fp819920] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-02fp819920]  a, .top-row[b-02fp819920]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-02fp819920]  a:hover, .top-row[b-02fp819920]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-02fp819920]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-02fp819920] {
        justify-content: space-between;
    }

    .top-row[b-02fp819920]  a, .top-row[b-02fp819920]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-02fp819920] {
        flex-direction: row;
    }

    .sidebar[b-02fp819920] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-02fp819920] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-02fp819920]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-02fp819920], article[b-02fp819920] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-02fp819920] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-02fp819920] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-iznz9h4yvn] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-iznz9h4yvn] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-iznz9h4yvn] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-iznz9h4yvn] {
    font-size: 1.1rem;
}

.bi[b-iznz9h4yvn] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-iznz9h4yvn] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-iznz9h4yvn] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-iznz9h4yvn] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-iznz9h4yvn] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-iznz9h4yvn] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-iznz9h4yvn] {
        padding-bottom: 1rem;
    }

    .nav-item[b-iznz9h4yvn]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-iznz9h4yvn]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-iznz9h4yvn]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-iznz9h4yvn] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-iznz9h4yvn] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-iznz9h4yvn] {
        display: none;
    }

    .nav-scrollable[b-iznz9h4yvn] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-r2oyt65h8t],
.components-reconnect-repeated-attempt-visible[b-r2oyt65h8t],
.components-reconnect-failed-visible[b-r2oyt65h8t],
.components-pause-visible[b-r2oyt65h8t],
.components-resume-failed-visible[b-r2oyt65h8t],
.components-rejoining-animation[b-r2oyt65h8t] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-retrying[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-failed[b-r2oyt65h8t],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-r2oyt65h8t] {
    display: block;
}


#components-reconnect-modal[b-r2oyt65h8t] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-r2oyt65h8t 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-r2oyt65h8t 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-r2oyt65h8t 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-r2oyt65h8t]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-r2oyt65h8t 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-r2oyt65h8t {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-r2oyt65h8t {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-r2oyt65h8t {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-r2oyt65h8t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-r2oyt65h8t] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-r2oyt65h8t] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-r2oyt65h8t] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-r2oyt65h8t] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-r2oyt65h8t] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-r2oyt65h8t] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-r2oyt65h8t 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-r2oyt65h8t] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-r2oyt65h8t {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Account/AdminQuotaManagement.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
/* ========== 基础容器 ========== */
.page-container[b-7l9j1db0al] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-7l9j1db0al] {
    margin: 0 auto;
}

/* ========== 无权限页面 ========== */
.unauthorized-container[b-7l9j1db0al] {
    min-height: calc(100vh - 133px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: #f9fafb;
}

.unauthorized-card[b-7l9j1db0al] {
    background: white;
    border-radius: 12px;
    padding: 48px 64px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    max-width: 480px;
}

.unauthorized-icon[b-7l9j1db0al] {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    background: #fef2f2;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    color: #ef4444;
}

.unauthorized-title[b-7l9j1db0al] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px;
}

.unauthorized-desc[b-7l9j1db0al] {
    font-size: 16px;
    color: #6b7280;
    margin: 0 0 8px;
}

.unauthorized-detail[b-7l9j1db0al] {
    font-size: 14px;
    color: #9ca3af;
    margin: 0 0 24px;
}

.unauthorized-actions[b-7l9j1db0al] {
    display: flex;
    justify-content: center;
}

/* ========== 页面头部 ========== */
.page-header[b-7l9j1db0al] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-icon[b-7l9j1db0al] {
    font-size: 18px;
    color: #6b7280;
}

.page-title[b-7l9j1db0al] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ========== 预警卡片 ========== */
.alert-card[b-7l9j1db0al] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.alert-content[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.alert-icon[b-7l9j1db0al] {
    font-size: 18px;
    color: #f59e0b;
}

.alert-text[b-7l9j1db0al] {
    flex: 1;
}

.alert-text strong[b-7l9j1db0al] {
    color: #111827;
    margin-right: 8px;
}

.alert-text span[b-7l9j1db0al] {
    color: #6b7280;
}

.warning-list[b-7l9j1db0al] {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.warning-item[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
}

.warning-avatar[b-7l9j1db0al] {
    width: 32px;
    height: 32px;
    background: #eff6ff;
    border: 1px solid #e5e7eb;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    color: #2563eb;
}

.warning-info[b-7l9j1db0al] {
    flex: 1;
}

.warning-name[b-7l9j1db0al] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
    margin-right: 8px;
}

.warning-dept[b-7l9j1db0al] {
    font-size: 12px;
    color: #9ca3af;
}

.warning-usage[b-7l9j1db0al] {
    width: 120px;
}

.warning-tokens[b-7l9j1db0al] {
    font-size: 13px;
    color: #6b7280;
}

/* ========== 用户信息单元格 ========== */
.user-cell[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.user-avatar[b-7l9j1db0al] {
    width: 28px;
    height: 28px;
    background: #eff6ff;
    border: 1px solid #e5e7eb;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    color: #2563eb;
    flex-shrink: 0;
}

.user-info[b-7l9j1db0al] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.user-name[b-7l9j1db0al] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

.quota-department[b-7l9j1db0al] {
    color: #6b7280;
    font-size: 13px;
    white-space: nowrap;
}

.user-dept[b-7l9j1db0al] {
    font-size: 12px;
    color: #9ca3af;
}

/* ========== 响应式 ========== */
@media (max-width: 768px) {
    .page-header[b-7l9j1db0al] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .header-right[b-7l9j1db0al] {
        width: 100%;
    }
}

/* ========== GPU 策略详情弹窗 ========== */
.policy-detail-modal-body[b-7l9j1db0al] {
    overflow-x: auto;
}

.policy-detail-table[b-7l9j1db0al] {
    width: 100%;
    min-width: 820px;
    border-collapse: collapse;
    font-size: 13px;
}

.policy-detail-table th[b-7l9j1db0al],
.policy-detail-table td[b-7l9j1db0al] {
    padding: 8px 12px;
    border: 1px solid #f0f0f0;
    text-align: left;
}

.policy-detail-table th[b-7l9j1db0al] {
    background: #fafafa;
    font-weight: 500;
    color: #555;
}

.policy-detail-table tbody tr:hover[b-7l9j1db0al] {
    background: #f5f5f5;
}

/* ========== 配额明细层级 ========== */
.hierarchy-section[b-7l9j1db0al] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    margin-top: 16px;
    overflow: hidden;
}

.hierarchy-header[b-7l9j1db0al] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    flex-wrap: wrap;
    gap: 12px;
}

.hierarchy-title[b-7l9j1db0al] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.hierarchy-filters[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-chips[b-7l9j1db0al] {
    display: flex;
    gap: 6px;
}

.filter-chip[b-7l9j1db0al] {
    padding: 4px 14px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: white;
    color: #374151;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
}

.filter-chip:hover[b-7l9j1db0al] { border-color: #3b82f6; color: #2563eb; }
.filter-chip.active[b-7l9j1db0al] { background: #2563eb; color: white; border-color: #2563eb; }

.hierarchy-search[b-7l9j1db0al] {
    padding: 6px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    width: 200px;
    outline: none;
    transition: border-color 0.15s;
}
.hierarchy-search:focus[b-7l9j1db0al] { border-color: #3b82f6; }

.hierarchy-loading[b-7l9j1db0al], .hierarchy-empty[b-7l9j1db0al] {
    padding: 40px 20px;
    text-align: center;
    color: #94a3b8;
    font-size: 14px;
}

.quota-table-wrapper[b-7l9j1db0al] { overflow-x: auto; }

.main-content[b-7l9j1db0al]  .ant-tabs {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    min-height: 0;
}

.main-content[b-7l9j1db0al]  .ant-tabs-content-holder {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
}

.main-content[b-7l9j1db0al]  .ant-tabs-content,
.main-content[b-7l9j1db0al]  .ant-tabs-tabpane-active {
    height: auto;
    min-height: 0;
}

.main-content[b-7l9j1db0al]  .ant-tabs-tabpane-active {
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.quota-token-surface[b-7l9j1db0al] {
    flex: 0 0 auto;
}

.quota-token-surface .console-list-scroll[b-7l9j1db0al] {
    width: 100%;
    overflow: auto;
}

.quota-token-surface[b-7l9j1db0al]  .ant-table-content {
    overflow-x: auto !important;
    scrollbar-gutter: stable;
}

.quota-table[b-7l9j1db0al] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.quota-table thead th[b-7l9j1db0al] {
    padding: 12px 16px;
    background: #f8fafc;
    border-bottom: 2px solid #e2e8f0;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-align: left;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.quota-table tbody tr[b-7l9j1db0al] { border-bottom: 1px solid #f1f5f9; transition: background 0.15s; }
.quota-table tbody tr:hover[b-7l9j1db0al] { background: #f8fafc; }
.quota-table tbody tr:last-child[b-7l9j1db0al] { border-bottom: none; }
.quota-table tbody td[b-7l9j1db0al] { padding: 10px 16px; color: #334155; vertical-align: middle; }

.quota-table tbody tr.tree-level-1[b-7l9j1db0al] { background: #fafbfc; }
.quota-table tbody tr.tree-level-2[b-7l9j1db0al] { background: #f6f8fa; }

.col-name[b-7l9j1db0al] { min-width: 220px; }
.col-type[b-7l9j1db0al] { width: 80px; }
.col-quota[b-7l9j1db0al], .col-used[b-7l9j1db0al], .col-remaining[b-7l9j1db0al] { width: 100px; }
.col-usage[b-7l9j1db0al] { width: 90px; }
.col-limits[b-7l9j1db0al] { min-width: 100px; }

.quota-name-cell[b-7l9j1db0al] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tree-toggle[b-7l9j1db0al] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    border-radius: 4px;
    padding: 0;
    flex-shrink: 0;
    transition: all 0.15s;
    font-size: 10px;
}
.tree-toggle:hover[b-7l9j1db0al] { background: #e2e8f0; color: #475569; }

.tree-toggle-placeholder[b-7l9j1db0al] {
    display: inline-block;
    width: 20px;
    flex-shrink: 0;
}

.quota-type-icon[b-7l9j1db0al] {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 11px;
    flex-shrink: 0;
}
.quota-type-organization[b-7l9j1db0al] { background: #dbeafe; color: #2563eb; }
.quota-type-department[b-7l9j1db0al] { background: #d1fae5; color: #059669; }
.quota-type-user[b-7l9j1db0al] { background: #fef3c7; color: #d97706; }

.quota-name-text[b-7l9j1db0al] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
    color: #1e293b;
}

.type-tag[b-7l9j1db0al] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}
.tag-blue[b-7l9j1db0al] { background: #dbeafe; color: #1d4ed8; }
.tag-green[b-7l9j1db0al] { background: #d1fae5; color: #047857; }
.tag-orange[b-7l9j1db0al] { background: #ffedd5; color: #c2410c; }

.usage-badge[b-7l9j1db0al] {
    display: inline-block;
    font-weight: 600;
    font-size: 12px;
    padding: 3px 8px;
    border-radius: 4px;
    white-space: nowrap;
}
.usage-badge.low[b-7l9j1db0al] { color: #059669; background: #d1fae5; }
.usage-badge.medium[b-7l9j1db0al] { color: #d97706; background: #fef3c7; }
.usage-badge.high[b-7l9j1db0al] { color: #dc2626; background: #fee2e2; }

.no-limit[b-7l9j1db0al] { color: #cbd5e1; font-size: 13px; }
/* /Components/Pages/Account/ApiKeyManagement.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自 Web 公共 console 样式。 */
.api-key-page .console-list-page__content[b-75gxjizv8w] {
    overflow: auto;
}

.api-key-list-surface[b-75gxjizv8w] {
    overflow: hidden;
    border-radius: var(--console-radius-md, 6px);
    box-shadow: none;
}

/* 小屏时表头完整显示，横向滚动只发生在表格内部，固定操作列右侧同样留边。 */
.api-key-list-surface[b-75gxjizv8w]  .ant-table-content { overflow-x: auto !important; }
.api-key-list-surface[b-75gxjizv8w]  .ant-table-content table { min-width: 1280px; table-layout: fixed; }
.api-key-list-surface[b-75gxjizv8w]  .ant-table-thead > tr > th,
.api-key-list-surface[b-75gxjizv8w]  .ant-table-tbody > tr > td { white-space: nowrap; }
.api-key-list-surface[b-75gxjizv8w]  .ant-table-cell-fix-right:last-child { padding-right: 28px; }

.api-key-list-surface[b-75gxjizv8w]  .ant-table-wrapper {
    overflow: auto;
}

/* 操作按钮与其他列表一致水平平铺，列宽不足时换行。 */
.api-key-actions[b-75gxjizv8w] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 2px;
    min-width: 0;
}

.api-key-action[b-75gxjizv8w] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.api-key-action[b-75gxjizv8w]  .ant-btn {
    max-width: 100%;
    padding-inline: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.page-header[b-75gxjizv8w] {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 16px;
}
.header-left[b-75gxjizv8w] { display: flex; align-items: center; gap: 12px; }
.header-right[b-75gxjizv8w] { display: flex; align-items: center; gap: 8px; }
.page-title[b-75gxjizv8w] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; }

.tab-pane-content[b-75gxjizv8w] { padding: 16px 0 0 0; }

.table-header[b-75gxjizv8w] {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin-bottom: 12px; gap: 16px;
}
.table-header-left[b-75gxjizv8w] { flex: 1; }
.table-header-right[b-75gxjizv8w] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* 统计卡片 */
.stats-grid[b-75gxjizv8w] {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px;
}
.stat-card[b-75gxjizv8w] {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05); padding: 20px;
    display: flex; align-items: flex-start; gap: 16px;
}
.stat-icon[b-75gxjizv8w] {
    width: 40px; height: 40px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0;
}
.stat-icon-blue[b-75gxjizv8w] { background: #eff6ff; color: #2563eb; }
.stat-icon-sky[b-75gxjizv8w] { background: #f0f9ff; color: #0ea5e9; }
.stat-icon-green[b-75gxjizv8w] { background: #ecfdf5; color: #10b981; }
.stat-icon-violet[b-75gxjizv8w] { background: #f5f3ff; color: #7c3aed; }
.stat-content[b-75gxjizv8w] { flex: 1; }
.stat-badge[b-75gxjizv8w] {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 12px; margin-bottom: 8px;
}
.stat-badge-success[b-75gxjizv8w] { background: #ecfdf5; color: #10b981; }
.stat-badge-muted[b-75gxjizv8w] { background: #f3f4f6; color: #6b7280; }
.stat-label[b-75gxjizv8w] { display: block; font-size: 13px; color: #6b7280; margin: 0 0 4px 0; }
.stat-value[b-75gxjizv8w] { font-size: 24px; font-weight: 700; color: #111827; margin: 0; }
.stat-unit[b-75gxjizv8w] { font-size: 12px; font-weight: 400; color: #6b7280; margin-left: 4px; }

.cell-title[b-75gxjizv8w] { font-weight: 600; color: #111827; }
.cell-sub[b-75gxjizv8w] { margin-top: 4px; font-size: 12px; color: #64748b; }
.key-prefix[b-75gxjizv8w] { font-family: 'Fira Code', monospace; font-size: 12px; color: #475569; background: #f1f5f9; padding: 2px 6px; border-radius: 4px; }
.usage-badge[b-75gxjizv8w] { font-weight: 600; color: #2563eb; font-size: 13px; }
.rate-limit-cell[b-75gxjizv8w] { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: #475569; white-space: nowrap; }
.usage-count[b-75gxjizv8w] { margin-left: 8px; font-size: 12px; color: #6b7280; }
.model-tag[b-75gxjizv8w] { display: inline-block; padding: 2px 8px; background: #dbeafe; color: #2563eb; border-radius: 4px; font-size: 12px; }

/* 配额 */
.quota-layout[b-75gxjizv8w] { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.progress-bar-bg[b-75gxjizv8w] { height: 20px; background: #f1f5f9; border-radius: 10px; overflow: hidden; margin-bottom: 20px; }
.progress-bar-fill[b-75gxjizv8w] {
    height: 100%; border-radius: 10px;
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    display: flex; align-items: center; justify-content: flex-end; padding-right: 12px;
    transition: width 0.5s ease;
}
.progress-text[b-75gxjizv8w] { font-size: 12px; font-weight: 600; color: white; }
.quota-stats[b-75gxjizv8w] { display: flex; justify-content: space-around; gap: 16px; margin-bottom: 16px; }
.quota-stat-item[b-75gxjizv8w] { display: flex; align-items: center; gap: 10px; }
.progress-icon[b-75gxjizv8w] { font-size: 20px; }
.progress-icon.green[b-75gxjizv8w] { color: #10b981; }
.progress-icon.blue[b-75gxjizv8w] { color: #2563eb; }
.progress-icon.violet[b-75gxjizv8w] { color: #7c3aed; }
.progress-label[b-75gxjizv8w] { display: block; font-size: 12px; color: #6b7280; }
.progress-value[b-75gxjizv8w] { display: block; font-size: 14px; font-weight: 600; color: #111827; }

/* 模型使用分布 */
.ring-chart-wrap[b-75gxjizv8w] { display: flex; justify-content: center; margin-bottom: 16px; }
.ring-chart-svg[b-75gxjizv8w] { width: 140px; height: 140px; }
.ring-segment[b-75gxjizv8w] { transition: stroke-dasharray 0.5s ease; }
.model-legend[b-75gxjizv8w] { display: flex; flex-direction: column; gap: 8px; }
.legend-item[b-75gxjizv8w] { display: flex; align-items: center; gap: 8px; }
.legend-color[b-75gxjizv8w] { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.legend-name[b-75gxjizv8w] { flex: 1; font-size: 12px; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legend-value[b-75gxjizv8w] { font-size: 12px; font-weight: 600; color: #111827; }

/* 使用统计 */
.stats-grid-inline[b-75gxjizv8w] { display: flex; justify-content: space-around; padding: 16px; background: #f9fafb; border-radius: 8px; }
.stat-inline[b-75gxjizv8w] { text-align: center; }
.stat-inline-value[b-75gxjizv8w] { display: block; font-size: 24px; font-weight: 700; color: #111827; }
.stat-inline-label[b-75gxjizv8w] { font-size: 12px; color: #6b7280; }

/* 示例代码 */
.code-lang-tabs[b-75gxjizv8w] { margin-bottom: 12px; }
.code-block[b-75gxjizv8w] { position: relative; background: #1e293b; border-radius: 8px; margin-bottom: 12px; }
.code-block pre[b-75gxjizv8w] { margin: 0; padding: 16px; overflow-x: auto; }
.code-block code[b-75gxjizv8w] { font-family: 'Fira Code', 'Monaco', monospace; font-size: 12px; color: #e2e8f0; white-space: pre; }

/* 模态框 */
.models-grid[b-75gxjizv8w] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; max-height: 300px; overflow-y: auto; padding: 4px; }
.modal-grid[b-75gxjizv8w] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }

/* 使用说明 */
.api-base-url-row[b-75gxjizv8w] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 10px 12px; background: #f6f8fa; border-radius: 6px; }
.api-base-url-row > span[b-75gxjizv8w] { font-weight: 600; color: #374151; }
.api-base-url-row .copyable[b-75gxjizv8w] { cursor: pointer; overflow-wrap: anywhere; }
.guide-step[b-75gxjizv8w] { display: flex; align-items: center; gap: 12px; }
.step-number[b-75gxjizv8w] {
    width: 24px; height: 24px; border-radius: 50%; background: #2563eb;
    color: white; display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.step-content[b-75gxjizv8w] { font-size: 13px; color: #475569; }
.code-text[b-75gxjizv8w] { font-family: 'Fira Code', 'Monaco', monospace; background: #e5e7eb; padding: 2px 6px; border-radius: 4px; font-size: 12px; color: #374151; }

@media (max-width: 1200px) {
    .stats-grid[b-75gxjizv8w] { grid-template-columns: repeat(2, 1fr); }
    .quota-layout[b-75gxjizv8w] { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .stats-grid[b-75gxjizv8w] { grid-template-columns: 1fr; }
    .table-header[b-75gxjizv8w] { flex-direction: column; }
    .modal-grid[b-75gxjizv8w] { grid-template-columns: 1fr; }
    .models-grid[b-75gxjizv8w] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Account/BillingCenterBills.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.billing-page[b-6uf4smv5mb] { width: 100%; max-width: 1600px; margin: 0 auto; padding: 0 0 24px; height: auto; min-height: 100%; overflow: visible; }
.billing-page > .main-content[b-6uf4smv5mb] { min-height: max-content; }
.billing-page .console-list-surface[b-6uf4smv5mb] { flex: 0 0 auto; min-height: max-content; }

    .billing-header[b-6uf4smv5mb] { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
    .billing-title[b-6uf4smv5mb] { margin: 0 0 4px; font-size: 24px; font-weight: 600; }
    .billing-subtitle[b-6uf4smv5mb], .secondary-text[b-6uf4smv5mb], .filter-label[b-6uf4smv5mb] { color: #667085; font-size: 13px; }
    .billing-alert[b-6uf4smv5mb], .filter-card[b-6uf4smv5mb], .details-card[b-6uf4smv5mb] { margin-bottom: 16px; }
    .filter-field[b-6uf4smv5mb] { display: flex; flex-direction: column; gap: 6px; min-width: 150px; }
    .filter-grid[b-6uf4smv5mb] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; align-items: end; }
    .filter-grid[b-6uf4smv5mb] >  .ant-btn { align-self: end; }
    .stats-grid[b-6uf4smv5mb] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
    .stats-grid > *[b-6uf4smv5mb] { min-width: 0; }
    .pagination-bar[b-6uf4smv5mb] { display: flex; align-items: center; justify-content: flex-start; gap: 12px; padding-top: 16px; flex-wrap: wrap; }
    .initial-loading[b-6uf4smv5mb] { display: flex; justify-content: center; min-height: 220px; align-items: center; }
    .loading-indicator[b-6uf4smv5mb] { display: flex; justify-content: center; padding: 12px; }
    @media (max-width: 992px) { .stats-grid[b-6uf4smv5mb] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 640px) { .billing-header[b-6uf4smv5mb] { align-items: flex-start; flex-direction: column; } .stats-grid[b-6uf4smv5mb] { grid-template-columns: 1fr; } .pagination-bar[b-6uf4smv5mb] { align-items: flex-start; flex-direction: column; } .filter-grid[b-6uf4smv5mb] { grid-template-columns: 1fr; } }
/* /Components/Pages/Account/BillingCenterProductSpecs.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-b5rilbaoez] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: auto;
    min-height: 100%;
    overflow: visible;
}

.main-content[b-b5rilbaoez] {
    margin: 0 auto;
}

.page-header[b-b5rilbaoez] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-b5rilbaoez] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-b5rilbaoez] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-b5rilbaoez] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.stats-grid[b-b5rilbaoez] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.stat-card[b-b5rilbaoez] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.stat-icon[b-b5rilbaoez] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.stat-icon-blue[b-b5rilbaoez] { background: #eff6ff; color: #2563eb; }
.stat-icon-violet[b-b5rilbaoez] { background: #f5f3ff; color: #7c3aed; }
.stat-icon-green[b-b5rilbaoez] { background: #ecfdf5; color: #10b981; }

.stat-content[b-b5rilbaoez] {
    flex: 1;
}

.stat-label[b-b5rilbaoez] { display: block; font-size: 13px; color: #6b7280; margin: 0 0 4px 0; }
.stat-value[b-b5rilbaoez] { font-size: 24px; font-weight: 700; color: #111827; margin: 0; }
.stat-desc[b-b5rilbaoez] { display: block; margin-top: 6px; font-size: 12px; color: #94a3b8; }

.cell-title[b-b5rilbaoez] { font-weight: 600; color: #111827; }
.cell-sub[b-b5rilbaoez] { margin-top: 4px; font-size: 12px; color: #64748b; }

.modal-grid[b-b5rilbaoez] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.billing-config-table-scroll[b-b5rilbaoez] {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
}

.billing-config-table-scroll[b-b5rilbaoez]  .ant-table-wrapper {
    min-width: 100%;
}

/* 两个配置表按内容展开，页面纵向滚动由主内容区承载。 */
.billing-admin-page > .main-content[b-b5rilbaoez] {
    min-height: max-content;
}

.billing-admin-page .console-list-surface[b-b5rilbaoez] {
    flex: 0 0 auto;
    min-height: max-content;
}

@media (max-width: 768px) {
    .page-header[b-b5rilbaoez] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .header-right[b-b5rilbaoez] {
        width: 100%;
        flex-wrap: wrap;
    }

    .stats-grid[b-b5rilbaoez] {
        grid-template-columns: 1fr;
    }

    .modal-grid[b-b5rilbaoez] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Account/BillingCenterUnitDefinitions.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-x6oy1hdoo4] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-x6oy1hdoo4] {
    margin: 0 auto;
}

.page-header[b-x6oy1hdoo4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-x6oy1hdoo4] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-x6oy1hdoo4] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-x6oy1hdoo4] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.stats-grid[b-x6oy1hdoo4] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.stat-card[b-x6oy1hdoo4] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.stat-icon[b-x6oy1hdoo4] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.stat-icon-blue[b-x6oy1hdoo4] { background: #eff6ff; color: #2563eb; }
.stat-icon-violet[b-x6oy1hdoo4] { background: #f5f3ff; color: #7c3aed; }
.stat-icon-green[b-x6oy1hdoo4] { background: #ecfdf5; color: #10b981; }

.stat-content[b-x6oy1hdoo4] {
    flex: 1;
}

.stat-label[b-x6oy1hdoo4] { display: block; font-size: 13px; color: #6b7280; margin: 0 0 4px 0; }
.stat-value[b-x6oy1hdoo4] { font-size: 24px; font-weight: 700; color: #111827; margin: 0; }
.stat-desc[b-x6oy1hdoo4] { display: block; margin-top: 6px; font-size: 12px; color: #94a3b8; }

.cell-title[b-x6oy1hdoo4] { font-weight: 600; color: #111827; }
.cell-sub[b-x6oy1hdoo4] { margin-top: 4px; font-size: 12px; color: #64748b; }

.modal-grid[b-x6oy1hdoo4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

@media (max-width: 768px) {
    .page-header[b-x6oy1hdoo4] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .header-right[b-x6oy1hdoo4] {
        width: 100%;
        flex-wrap: wrap;
    }

    .stats-grid[b-x6oy1hdoo4] {
        grid-template-columns: 1fr;
    }

    .modal-grid[b-x6oy1hdoo4] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Account/MeteringBilling.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-6rg65zni0y] {
    min-height: 80vh;
    height: 100%;
}

.main-content[b-6rg65zni0y] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-6rg65zni0y] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-6rg65zni0y] {
    color: #6b7280;
    font-size: 18px;
}

.page-title[b-6rg65zni0y] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-6rg65zni0y] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Tab 导航 */
.tab-navigation[b-6rg65zni0y] {
    display: flex;
    gap: 4px;
    background: white;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    margin-bottom: 16px;
}

.tab-btn[b-6rg65zni0y] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 14px;
    border: none;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.15s;
}

.tab-btn:hover[b-6rg65zni0y] {
    background: #f3f4f6;
}

.tab-btn.active[b-6rg65zni0y] {
    background: #2563eb;
    color: white;
}

/* 统计卡片 */
.stats-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.stat-card[b-6rg65zni0y] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.stat-icon[b-6rg65zni0y] {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
}

.stat-icon-blue[b-6rg65zni0y] { background: #2563eb; }
.stat-icon-orange[b-6rg65zni0y] { background: #f97316; }
.stat-icon-green[b-6rg65zni0y] { background: #16a34a; }
.stat-icon-violet[b-6rg65zni0y] { background: #7c3aed; }

.stat-content[b-6rg65zni0y] {
    flex: 1;
    position: relative;
}

.stat-label[b-6rg65zni0y] {
    margin: 0 0 4px;
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.stat-value[b-6rg65zni0y] {
    margin: 0;
    font-size: 24px;
    font-weight: 600;
    color: #111827;
}

.stat-unit[b-6rg65zni0y] {
    font-size: 13px;
    color: #6b7280;
    margin-left: 4px;
}

.stat-badge[b-6rg65zni0y] {
    position: absolute;
    top: 0;
    right: 0;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
}

.stat-badge-warning[b-6rg65zni0y] {
    background: #fff7ed;
    color: #ea580c;
}

/* 内容网格 */
.content-grid[b-6rg65zni0y] {
    display: grid;
    gap: 16px;
}

.content-grid-top[b-6rg65zni0y] {
    grid-template-columns: 1.7fr 1fr;
    margin-bottom: 16px;
}

.content-grid-bottom[b-6rg65zni0y] {
    grid-template-columns: 1.7fr 1fr;
    margin-bottom: 16px;
}

.chart-wide[b-6rg65zni0y] {
    min-width: 0;
}

/* 卡片 */
.card[b-6rg65zni0y] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 20px;
}

.card-header[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.card-header-action[b-6rg65zni0y] {
    align-items: center;
}

.card-title[b-6rg65zni0y] {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
}

.card-subtitle[b-6rg65zni0y] {
    margin: 0;
    font-size: 13px;
    color: #64748b;
}

.governance-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.governance-card[b-6rg65zni0y] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
}

.governance-top[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.governance-top h4[b-6rg65zni0y] {
    margin: 10px 0 0;
    color: #0f172a;
    font-size: 18px;
}

.scope-pill[b-6rg65zni0y] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 12px;
    font-weight: 700;
}

.scope-budget[b-6rg65zni0y] {
    color: #0f766e;
    font-weight: 700;
}

.governance-metrics[b-6rg65zni0y] {
    display: grid;
    gap: 12px;
}

.governance-metrics div[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
}

.governance-metrics strong[b-6rg65zni0y] {
    color: #0f172a;
}

.info-alert[b-6rg65zni0y] {
    display: flex;
    gap: 14px;
    border-radius: 18px;
    padding: 16px 18px;
}

.info-alert-solid[b-6rg65zni0y] {
    background: linear-gradient(135deg, #eff6ff, #ecfeff);
    color: #0f172a;
}

.info-alert i[b-6rg65zni0y] {
    font-size: 20px;
    color: #0284c7;
    margin-top: 2px;
}

.alert-content[b-6rg65zni0y] {
    display: grid;
    gap: 4px;
}

.formula-card[b-6rg65zni0y] {
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
}

.formula-main[b-6rg65zni0y] {
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 16px;
}

.formula-list[b-6rg65zni0y] {
    display: grid;
    gap: 10px;
}

.formula-list div[b-6rg65zni0y],
.estimate-strip div[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.timeline-list[b-6rg65zni0y] {
    display: grid;
    gap: 14px;
}

.timeline-item[b-6rg65zni0y] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.timeline-item p[b-6rg65zni0y] {
    margin: 4px 0 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.6;
}

.timeline-index[b-6rg65zni0y] {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, #0f766e, #06b6d4);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}

.compact .timeline-item p[b-6rg65zni0y] {
    margin-top: 6px;
}

.btn[b-6rg65zni0y] {
    border: 0;
    border-radius: 12px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.btn-primary[b-6rg65zni0y] {
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    color: #fff;
}

.btn-secondary[b-6rg65zni0y] {
    background: #e2e8f0;
    color: #0f172a;
}

.btn:disabled[b-6rg65zni0y] {
    opacity: 0.6;
    cursor: not-allowed;
}

.management-card[b-6rg65zni0y] {
    margin-bottom: 16px;
}

.threshold-alert[b-6rg65zni0y] {
    margin-bottom: 16px;
}

.threshold-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.threshold-card[b-6rg65zni0y] {
    border: 1px solid #dbe3ee;
    border-radius: 18px;
    padding: 18px;
    background: #fff;
}

.threshold-head[b-6rg65zni0y],
.threshold-actions[b-6rg65zni0y],
.threshold-title-row[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.threshold-head[b-6rg65zni0y] {
    align-items: flex-start;
    margin-bottom: 16px;
}

.threshold-title-row strong[b-6rg65zni0y] {
    color: #0f172a;
    font-size: 16px;
}

.threshold-meta[b-6rg65zni0y],
.threshold-note[b-6rg65zni0y] {
    color: #64748b;
    font-size: 13px;
}

.threshold-meta[b-6rg65zni0y] {
    margin-top: 8px;
}

.threshold-remaining[b-6rg65zni0y] {
    color: #0f766e;
    font-size: 13px;
    font-weight: 700;
}

.threshold-form-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 12px;
}

.threshold-note[b-6rg65zni0y] {
    margin-bottom: 14px;
    line-height: 1.6;
}

.form-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.form-item[b-6rg65zni0y] {
    display: grid;
    gap: 8px;
}

.form-label[b-6rg65zni0y] {
    font-size: 13px;
    font-weight: 600;
    color: #475569;
}

.form-input[b-6rg65zni0y] {
    width: 100%;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    padding: 10px 12px;
    font-size: 14px;
    color: #0f172a;
    background: #fff;
    box-sizing: border-box;
}

.estimate-strip[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    background: #f8fafc;
    margin-bottom: 16px;
}

.estimate-label[b-6rg65zni0y] {
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

.check-result[b-6rg65zni0y] {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 16px;
    margin-bottom: 16px;
}

.check-result strong[b-6rg65zni0y] {
    display: block;
    margin-bottom: 4px;
}

.check-result p[b-6rg65zni0y] {
    margin: 0;
    font-size: 13px;
}

.check-result-success[b-6rg65zni0y] {
    background: #f0fdf4;
    color: #166534;
}

.check-result-danger[b-6rg65zni0y] {
    background: #fef2f2;
    color: #b91c1c;
}

.rules-grid[b-6rg65zni0y] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rules-card[b-6rg65zni0y] {
    border-radius: 18px;
    padding: 18px;
}

.rules-card h4[b-6rg65zni0y] {
    margin: 0 0 12px;
    font-size: 15px;
    color: #0f172a;
}

.rules-list[b-6rg65zni0y] {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 10px;
    color: #475569;
    font-size: 13px;
    line-height: 1.7;
}

.rules-list-danger[b-6rg65zni0y] {
    color: #b91c1c;
}

.empty-mini[b-6rg65zni0y] {
    color: #64748b;
    font-size: 13px;
}

.text-success[b-6rg65zni0y] { color: #15803d; }
.text-danger[b-6rg65zni0y] { color: #b91c1c; }

.table-wrapper[b-6rg65zni0y] {
    overflow-x: auto;
}

.usage-card[b-6rg65zni0y] {
    margin-bottom: 16px;
}

.node-usage-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.node-usage-card[b-6rg65zni0y] {
    border: 1px solid #dbe3ee;
    border-radius: 18px;
    padding: 16px;
    background: #fff;
}

.node-usage-head[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.node-usage-head strong[b-6rg65zni0y] {
    color: #0f172a;
}

.node-usage-meta[b-6rg65zni0y] {
    margin-top: 6px;
    color: #64748b;
    font-size: 13px;
}

.node-usage-metrics[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.node-usage-metrics div[b-6rg65zni0y] {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f8fafc;
}

.node-usage-metrics span[b-6rg65zni0y] {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-bottom: 4px;
}

.node-usage-metrics strong[b-6rg65zni0y] {
    color: #0f172a;
}

.data-table[b-6rg65zni0y] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-6rg65zni0y],
.data-table td[b-6rg65zni0y] {
    padding: 14px 12px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    font-size: 14px;
    color: #334155;
    vertical-align: middle;
}

.data-table th[b-6rg65zni0y] {
    font-size: 12px;
    color: #64748b;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.table-primary[b-6rg65zni0y] {
    font-weight: 600;
    color: #0f172a;
}

.table-secondary[b-6rg65zni0y] {
    color: #64748b;
    font-size: 12px;
    margin-top: 4px;
}

.model-tag[b-6rg65zni0y] {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 12px;
    font-weight: 700;
}

.status-badge[b-6rg65zni0y] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 700;
}

.status-success[b-6rg65zni0y] {
    background: #ecfdf5;
    color: #047857;
}

.status-warning[b-6rg65zni0y] {
    background: #fff7ed;
    color: #c2410c;
}

.loading-container[b-6rg65zni0y] {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.loading-spinner[b-6rg65zni0y] {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(37, 99, 235, 0.15);
    border-top-color: #2563eb;
    border-radius: 999px;
    animation: spin-b-6rg65zni0y 1s linear infinite;
}

.loading-text[b-6rg65zni0y] {
    margin: 0;
    color: #64748b;
}

/* 新建策略对话框 */
.dialog-overlay[b-6rg65zni0y] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.dialog-content[b-6rg65zni0y] {
    background: white;
    border-radius: 16px;
    width: 480px;
    max-width: 90vw;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.dialog-header[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #e2e8f0;
}

.dialog-header h3[b-6rg65zni0y] {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
}

.dialog-close[b-6rg65zni0y] {
    background: none;
    border: none;
    font-size: 18px;
    color: #64748b;
    cursor: pointer;
    padding: 4px 8px;
}

.dialog-close:hover[b-6rg65zni0y] {
    color: #0f172a;
}

.dialog-body[b-6rg65zni0y] {
    padding: 24px;
    overflow-y: auto;
    display: grid;
    gap: 16px;
}

.dialog-footer[b-6rg65zni0y] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 24px;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
}

.profile-list[b-6rg65zni0y] {
    display: grid;
    gap: 12px;
}

.profile-item[b-6rg65zni0y] {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 14px;
    background: #fff;
}

.profile-head[b-6rg65zni0y],
.profile-meta[b-6rg65zni0y],
.profile-metrics[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.profile-head strong[b-6rg65zni0y] {
    color: #0f172a;
}

.profile-head span[b-6rg65zni0y],
.profile-meta span[b-6rg65zni0y] {
    color: #64748b;
    font-size: 13px;
}

.profile-meta[b-6rg65zni0y] {
    margin: 8px 0 10px;
}

.profile-metrics div[b-6rg65zni0y] {
    flex: 1;
    color: #64748b;
    font-size: 12px;
}

.profile-metrics strong[b-6rg65zni0y] {
    color: #0f172a;
    display: block;
    margin-top: 4px;
}

.budget-alerts-card[b-6rg65zni0y] {
    margin-bottom: 24px;
}

.budget-alert-grid[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}

.budget-alert-item[b-6rg65zni0y] {
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    padding: 18px;
    background: #ffffff;
}

.budget-alert-warning[b-6rg65zni0y] {
    background: linear-gradient(180deg, #fffdf4 0%, #fff7db 100%);
    border-color: #f8d66d;
}

.budget-alert-danger[b-6rg65zni0y] {
    background: linear-gradient(180deg, #fff7f5 0%, #ffe3dd 100%);
    border-color: #ffb4a6;
}

.budget-alert-critical[b-6rg65zni0y] {
    background: linear-gradient(180deg, #fff4f7 0%, #ffd9e2 100%);
    border-color: #ff8fab;
}

.budget-alert-head[b-6rg65zni0y] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.budget-alert-badge[b-6rg65zni0y] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.budget-alert-badge-warning[b-6rg65zni0y] {
    background: #fff1b8;
    color: #ad6800;
}

.budget-alert-badge-danger[b-6rg65zni0y] {
    background: #ffd8bf;
    color: #ad4e00;
}

.budget-alert-badge-critical[b-6rg65zni0y] {
    background: #ffccd5;
    color: #a4133c;
}

.budget-alert-title[b-6rg65zni0y] {
    margin-top: 14px;
    font-size: 16px;
    font-weight: 700;
    color: #102a43;
}

.budget-alert-message[b-6rg65zni0y] {
    margin-top: 8px;
    color: #52667a;
    line-height: 1.6;
}

.budget-alert-metrics[b-6rg65zni0y] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.budget-alert-metrics div[b-6rg65zni0y] {
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
}

.budget-alert-metrics span[b-6rg65zni0y] {
    display: block;
    font-size: 12px;
    color: #52667a;
}

.budget-alert-metrics strong[b-6rg65zni0y] {
    display: block;
    margin-top: 4px;
    color: #102a43;
}

@keyframes spin-b-6rg65zni0y {
    to { transform: rotate(360deg); }
}

@media (max-width: 1280px) {
    .stats-grid[b-6rg65zni0y],
    .estimate-strip[b-6rg65zni0y],
    .form-grid[b-6rg65zni0y] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .content-grid-top[b-6rg65zni0y],
    .content-grid-bottom[b-6rg65zni0y],
    .governance-grid[b-6rg65zni0y],
    .rules-grid[b-6rg65zni0y],
    .budget-alert-grid[b-6rg65zni0y],
    .node-usage-grid[b-6rg65zni0y],
    .threshold-grid[b-6rg65zni0y],
    .threshold-form-grid[b-6rg65zni0y] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .metering-page[b-6rg65zni0y] {
        padding: 16px;
    }

    .metering-nav-card[b-6rg65zni0y],
    .card-header[b-6rg65zni0y],
    .card-header-action[b-6rg65zni0y] {
        flex-direction: column;
        align-items: stretch;
    }

    .stats-grid[b-6rg65zni0y],
    .estimate-strip[b-6rg65zni0y],
    .form-grid[b-6rg65zni0y] {
        grid-template-columns: 1fr;
    }

    .budget-alert-head[b-6rg65zni0y] {
        flex-direction: column;
    }

    .budget-alert-metrics[b-6rg65zni0y] {
        grid-template-columns: 1fr;
    }

    .metering-hero h1[b-6rg65zni0y] {
        font-size: 24px;
    }
}
/* /Components/Pages/Account/MyBilling.razor.rz.scp.css */
.my-billing-page .console-list-page__content[b-gzomwqwib2] {
    overflow: auto;
}

.my-billing-page[b-gzomwqwib2]  .ant-table-wrapper {
    overflow: auto;
}
/* /Components/Pages/Account/SftpCredential.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-2hxpn2aknb] { min-height: 80vh; background: #f9fafb; padding: 24px; height: 100%; }
.main-content[b-2hxpn2aknb] { margin: 0 auto; max-width: 960px; }
.page-header[b-2hxpn2aknb] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.header-left[b-2hxpn2aknb] { display: flex; align-items: center; gap: 12px; }
.header-icon[b-2hxpn2aknb] { font-size: 20px; color: #2563eb; }
.page-title[b-2hxpn2aknb] { margin: 0; font-size: 20px; font-weight: 600; color: #1f2937; }
.card[b-2hxpn2aknb] { background: #fff; border-radius: 8px; box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
.empty-card[b-2hxpn2aknb] { padding: 40px 24px; }
.credential-card[b-2hxpn2aknb] { overflow: hidden; }
.card-header[b-2hxpn2aknb] { padding: 18px 24px; border-bottom: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.card-title[b-2hxpn2aknb] { font-size: 16px; font-weight: 600; color: #111827; }
.card-subtitle[b-2hxpn2aknb] { color: #6b7280; font-size: 13px; margin-top: 4px; }
.card-body[b-2hxpn2aknb] { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.form-section[b-2hxpn2aknb] { display: flex; flex-direction: column; gap: 6px; }
.field-label[b-2hxpn2aknb] { color: #6b7280; font-size: 13px; }
.copy-row[b-2hxpn2aknb] { display: flex; gap: 8px; align-items: center; }
.inline-copy[b-2hxpn2aknb] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.path-card[b-2hxpn2aknb] { background: #f8fafc; border-left: 3px solid #2563eb; padding: 12px; font-size: 13px; color: #334155; border-radius: 4px; line-height: 1.8; }
.path-title[b-2hxpn2aknb] { font-weight: 600; margin-bottom: 4px; }
.path-line[b-2hxpn2aknb] { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.path-hint[b-2hxpn2aknb] { color: #92400e; margin-top: 4px; }
code[b-2hxpn2aknb] { font-family: Consolas, Monaco, monospace; }

.page-container.console-list-page[b-2hxpn2aknb] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-2hxpn2aknb] {
    width: 100%;
    max-width: none;
}

.page-container.console-list-page .page-header[b-2hxpn2aknb] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.credential-card[b-2hxpn2aknb],
.empty-card[b-2hxpn2aknb] {
    border: 1px solid var(--console-color-border);
    border-radius: var(--console-radius-md);
    box-shadow: none;
}

.card-body[b-2hxpn2aknb] {
    padding: var(--console-space-6);
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-2hxpn2aknb] {
        padding: var(--console-space-4);
    }

    .card-body[b-2hxpn2aknb] {
        padding: var(--console-space-4);
    }
}
/* /Components/Pages/AlertNotificationChannels.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.announcement-admin-page[b-qqvl1oibik] { min-height: calc(100vh - 64px); background: #f5f6f8; }
.announcements-content[b-qqvl1oibik] { flex: 1; min-width: 0; padding: 0; }
.filter-item[b-qqvl1oibik] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-qqvl1oibik] { font-size: 12px; font-weight: 500; color: #6b7280; }
.select-input[b-qqvl1oibik] { min-width: 140px; width: 100%; }
.table-header[b-qqvl1oibik] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; gap: 16px; }
.table-header-left[b-qqvl1oibik] { flex: 1; }
.table-header-right[b-qqvl1oibik] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
/* /Components/Pages/AlertSilences.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.announcement-admin-page[b-zqftx5lauw] { min-height: calc(100vh - 64px); background: #f5f6f8; }
.announcements-content[b-zqftx5lauw] { flex: 1; min-width: 0; padding: 0; }
.filter-item[b-zqftx5lauw] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-zqftx5lauw] { font-size: 12px; font-weight: 500; color: #6b7280; }
.select-input[b-zqftx5lauw] { min-width: 140px; width: 100%; }
.table-header[b-zqftx5lauw] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; gap: 16px; }
.table-header-left[b-zqftx5lauw] { flex: 1; }
.table-header-right[b-zqftx5lauw] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
/* /Components/Pages/AnnouncementCenter.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面间距、列表面板与异步状态来自 Console.UI 公共版式。 */
.announcement-center-page[b-kiygola6sa] { min-height:0; }

.announcement-detail[b-kiygola6sa] { width:100%; max-width:960px; margin:0 auto; padding:0; }
.announcement-detail .filter-card[b-kiygola6sa] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px 24px; margin-bottom: 16px; box-shadow: none; }

.filter-card[b-kiygola6sa] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; box-shadow: none; }
.filter-row[b-kiygola6sa] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.filter-item[b-kiygola6sa] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-kiygola6sa] { font-size: 12px; font-weight: 500; color: #6b7280; }
.filter-row[b-kiygola6sa]  .ant-input { width: 200px; height: 36px !important; min-height: 36px !important; font-size: 14px; border-radius: 6px; padding: 6px 12px !important; line-height: 22px !important; }
.filter-row .search-input[b-kiygola6sa] { width: 200px !important; min-width: 200px; }
.filter-row .select-input[b-kiygola6sa] { min-width: 140px; width: 160px; }
.filter-row[b-kiygola6sa]  .ant-select-selector { height: 36px !important; border-radius: 6px !important; }
.filter-row[b-kiygola6sa]  .ant-btn { height: 36px; padding: 0 16px; font-size: 14px; border-radius: 6px; }
.filter-row[b-kiygola6sa]  .ant-btn-primary { background: #2563eb; border-color: #2563eb; }

.announcement-list-surface[b-kiygola6sa] { flex:1 1 auto; }
.table-header[b-kiygola6sa] { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 16px; border-bottom:1px solid #f0f0f0; }
.table-header-left[b-kiygola6sa] { flex: 1; }
.table-header-right[b-kiygola6sa] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.table-header[b-kiygola6sa]  .ant-typography { margin:0; }
.announcement-list-surface[b-kiygola6sa]  .ant-table-wrapper { min-height:0; overflow:auto; }
/* /Components/Pages/Audit.razor.rz.scp.css */
    .audit-overview[b-eh754lnu82] {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .overview-toolbar[b-eh754lnu82] { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; }
    .toolbar-left[b-eh754lnu82] { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; }
    .toolbar-label[b-eh754lnu82] { font-size: 14px; color: var(--console-color-text-3, #666); font-weight: 500; }
    .time-presets[b-eh754lnu82] { min-width: 0; }
    .time-presets[b-eh754lnu82]  .ant-radio-group { display: inline-flex; max-width: 100%; }
    .time-presets[b-eh754lnu82]  .ant-radio-button-wrapper { white-space: nowrap; }
    .toolbar-right[b-eh754lnu82] { display: flex; align-items: center; gap: 12px; }
    .date-range-wrap[b-eh754lnu82] { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .date-range-sep[b-eh754lnu82] { font-size: 13px; color: var(--console-color-text-4, #8f959e); }

    .section-block[b-eh754lnu82] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 20px 24px; box-shadow: 0 4px 16px rgba(15,23,42,.04); }
    .section-title[b-eh754lnu82] { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 700; margin-bottom: 16px; }
    .section-dot[b-eh754lnu82] { width: 4px; height: 18px; border-radius: 2px; }
    .section-dot.blue-dot[b-eh754lnu82] { background: var(--console-color-primary, #1677ff); }
    .section-dot.green-dot[b-eh754lnu82] { background: #10b981; }
    .section-dot.orange-dot[b-eh754lnu82] { background: #f97316; }
    .section-dot.purple-dot[b-eh754lnu82] { background: #7c3aed; }
    .section-loading[b-eh754lnu82] { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px 0; color: var(--console-color-text-4, #8f959e); font-size: 13px; }

    .metric-grid[b-eh754lnu82] { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
    .metric-card[b-eh754lnu82] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 18px; display: flex; align-items: center; gap: 14px; min-height: 98px; min-width: 0; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05); }
    .metric-icon[b-eh754lnu82] { width: 46px; height: 46px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 21px; flex: 0 0 46px; }
    .metric-icon.blue[b-eh754lnu82] { background: #eef5ff; color: #2563eb; }
    .metric-icon.cyan[b-eh754lnu82] { background: #ecfeff; color: #0891b2; }
    .metric-icon.green[b-eh754lnu82] { background: #ecfdf5; color: #059669; }
    .metric-icon.orange[b-eh754lnu82] { background: #fff7ed; color: #ea580c; }
    .metric-icon.purple[b-eh754lnu82] { background: #f5f3ff; color: #7c3aed; }
    .metric-icon.red[b-eh754lnu82] { background: #fef2f2; color: #dc2626; }
    .metric-value[b-eh754lnu82] { font-size: 28px; line-height: 1.1; font-weight: 700; }
    .metric-label[b-eh754lnu82] { margin-top: 6px; color: var(--console-color-text-3, #666); font-size: 14px; }
    .metric-sub[b-eh754lnu82] { margin-top: 4px; color: var(--console-color-text-4, #8f959e); font-size: 12px; }

    .chart-grid[b-eh754lnu82] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
    .overview-panel[b-eh754lnu82] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 20px 24px; min-width: 0; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05); }
    .chart-panel[b-eh754lnu82] { min-height: 300px; }
    .panel-header[b-eh754lnu82] { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
    .panel-header h2[b-eh754lnu82] { margin: 0; font-size: 17px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
    .panel-header span[b-eh754lnu82] { font-size: 13px; color: var(--console-color-text-4, #8f959e); }

    .panel-grid[b-eh754lnu82] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

    .report-list[b-eh754lnu82] { display: flex; flex-direction: column; gap: 14px; }
    .report-row-header[b-eh754lnu82] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; color: #475569; }
    .report-row-header strong[b-eh754lnu82] { color: var(--console-color-text-1, #1f2329); }
    .report-track[b-eh754lnu82] { height: 8px; border-radius: 999px; background: #edf2f7; overflow: hidden; }
    .report-fill[b-eh754lnu82] { height: 100%; min-width: 4px; border-radius: inherit; }
    .report-fill.blue[b-eh754lnu82] { background: var(--console-color-primary, #1677ff); }
    .report-fill.green[b-eh754lnu82] { background: #10b981; }
    .report-fill.orange[b-eh754lnu82] { background: #f97316; }
    .report-fill.red[b-eh754lnu82] { background: #ef4444; }
    .report-fill.purple[b-eh754lnu82] { background: #7c3aed; }
    .report-fill.cyan[b-eh754lnu82] { background: #0891b2; }

    .trend-empty[b-eh754lnu82] { height: 180px; display: flex; align-items: center; justify-content: center; border-radius: var(--console-radius-base, 4px); background: var(--console-color-bg-tile, #fafafa); color: var(--console-color-text-4, #8f959e); border: 1px dashed var(--console-color-border, #e5e6eb); }

    @media (max-width: 1500px) { 
        .metric-grid[b-eh754lnu82] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .chart-grid[b-eh754lnu82] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 1100px) { 
        .panel-grid[b-eh754lnu82] { grid-template-columns: 1fr; }
        .chart-grid[b-eh754lnu82] { grid-template-columns: 1fr; }
    }
    @media (max-width: 720px) {
        .metric-grid[b-eh754lnu82] { grid-template-columns: 1fr; }
        .overview-toolbar[b-eh754lnu82] { flex-direction: column; align-items: stretch; }
        .toolbar-left[b-eh754lnu82] { grid-template-columns: auto 1fr; }
        .date-range-wrap[b-eh754lnu82] { grid-column: 1 / -1; flex-wrap: wrap; }
    }
/* /Components/Pages/AuditDetail.razor.rz.scp.css */
.audit-detail-page[b-g9ccvu8i94] {
    min-height: 100%;
    min-width: 0;
    padding: 0;
    background: transparent;
}

.detail-hero[b-g9ccvu8i94],
.panel-card[b-g9ccvu8i94],
.metric-card[b-g9ccvu8i94],
.filter-card[b-g9ccvu8i94] {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--console-color-border, #e5e6eb);
    border-radius: var(--console-radius-md, 6px);
    box-shadow: var(--console-shadow-card, 0 1px 2px rgba(0, 0, 0, .03));
}

.detail-hero[b-g9ccvu8i94] {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: var(--console-space-5, 20px) var(--console-space-6, 24px);
    margin-bottom: var(--console-space-4, 16px);
}

.detail-kicker[b-g9ccvu8i94] {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: var(--console-radius-base, 4px);
    background: var(--console-color-primary-bg, #e6f4ff);
    color: var(--console-color-primary-active, #0958d9);
    font-size: 12px;
    font-weight: 700;
}

.detail-hero h1[b-g9ccvu8i94],
.panel-header h2[b-g9ccvu8i94],
.item-title[b-g9ccvu8i94] {
    color: var(--console-color-text-1, #1f2329);
}

.detail-hero p[b-g9ccvu8i94],
.panel-header p[b-g9ccvu8i94],
.item-desc[b-g9ccvu8i94],
.item-meta[b-g9ccvu8i94],
.empty-state[b-g9ccvu8i94],
.filter-card span[b-g9ccvu8i94],
.filter-card strong[b-g9ccvu8i94] {
    color: var(--console-color-text-3, #666);
}

.detail-actions[b-g9ccvu8i94],
.panel-grid[b-g9ccvu8i94],
.stack-list[b-g9ccvu8i94],
.detail-filters[b-g9ccvu8i94],
.detail-metrics-grid[b-g9ccvu8i94] {
    display: grid;
    gap: var(--console-space-4, 16px);
}

.detail-actions[b-g9ccvu8i94] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.detail-filters[b-g9ccvu8i94] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: var(--console-space-4, 16px);
}

.filter-card[b-g9ccvu8i94],
.metric-card[b-g9ccvu8i94],
.panel-card[b-g9ccvu8i94] {
    padding: var(--console-space-4, 16px);
}

.filter-card[b-g9ccvu8i94] {
    display: grid;
    gap: 10px;
}

.wide-card[b-g9ccvu8i94] {
    grid-column: span 1;
}

.action-card[b-g9ccvu8i94] {
    display: flex;
    align-items: end;
}

.detail-metrics-grid[b-g9ccvu8i94] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 20px;
}

.metric-card strong[b-g9ccvu8i94] {
    display: block;
    margin-top: 8px;
    font-size: 28px;
    color: var(--console-color-text-1, #1f2329);
}

.panel-grid.two-column[b-g9ccvu8i94] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 20px;
}

.panel-header[b-g9ccvu8i94] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.text-input[b-g9ccvu8i94],
.select-input[b-g9ccvu8i94],
.primary-btn[b-g9ccvu8i94],
.secondary-btn[b-g9ccvu8i94] {
    min-height: 32px;
    border-radius: var(--console-radius-base, 4px);
    font-size: 14px;
}

.select-input[b-g9ccvu8i94] {
    border: 1px solid var(--console-color-border, #e5e6eb);
    padding: 0 var(--console-space-3, 12px);
    background: #fff;
    color: var(--console-color-text-1, #1f2329);
}

.primary-btn[b-g9ccvu8i94],
.secondary-btn[b-g9ccvu8i94] {
    border: none;
    padding: 0 var(--console-space-4, 16px);
    cursor: pointer;
    font-weight: 700;
}

.primary-btn[b-g9ccvu8i94] {
    background: var(--console-color-primary, #1677ff);
    color: #fff;
}

.secondary-btn[b-g9ccvu8i94] {
    background: var(--console-color-primary-bg, #e6f4ff);
    color: var(--console-color-primary-active, #0958d9);
}

.data-table[b-g9ccvu8i94] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-g9ccvu8i94],
.data-table td[b-g9ccvu8i94] {
    padding: 12px;
    border-bottom: 1px solid var(--console-color-split, #f0f0f0);
    text-align: left;
    vertical-align: top;
}

.stack-item[b-g9ccvu8i94] {
    display: flex;
    justify-content: space-between;
    gap: var(--console-space-3, 12px);
    padding: var(--console-space-3, 12px);
    border-radius: var(--console-radius-base, 4px);
    background: var(--console-color-bg-tile, #fafafa);
    border: 1px solid var(--console-color-border, #e5e6eb);
}

.detailed-item[b-g9ccvu8i94] {
    align-items: flex-start;
}

.item-title-row[b-g9ccvu8i94] {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 6px;
}

.item-side[b-g9ccvu8i94] {
    display: grid;
    gap: 4px;
}

.align-end[b-g9ccvu8i94] {
    text-align: right;
}

.badge[b-g9ccvu8i94] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    padding: 4px 10px;
    border-radius: var(--console-radius-base, 4px);
    font-size: 12px;
    font-weight: 700;
}

.badge-low[b-g9ccvu8i94] {
    background: #f6ffed;
    color: #389e0d;
}

.badge-medium[b-g9ccvu8i94] {
    background: #fffbe6;
    color: #d48806;
}

.badge-high[b-g9ccvu8i94] {
    background: #fff2f0;
    color: #cf1322;
}

.badge-critical[b-g9ccvu8i94] {
    background: #722ed1;
    color: #fff;
}

.loading-panel[b-g9ccvu8i94],
.empty-state[b-g9ccvu8i94] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
}

.loading-panel[b-g9ccvu8i94] {
    flex-direction: column;
    gap: 12px;
}

.loading-spinner[b-g9ccvu8i94] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 3px solid var(--console-color-primary-border, #91caff);
    border-top-color: var(--console-color-primary, #1677ff);
    animation: audit-detail-spin-b-g9ccvu8i94 0.85s linear infinite;
}

@keyframes audit-detail-spin-b-g9ccvu8i94 {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1200px) {
    .detail-filters[b-g9ccvu8i94],
    .detail-metrics-grid[b-g9ccvu8i94],
    .panel-grid.two-column[b-g9ccvu8i94] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .audit-detail-page[b-g9ccvu8i94] {
        padding: 0;
    }

    .detail-filters[b-g9ccvu8i94],
    .detail-metrics-grid[b-g9ccvu8i94],
    .panel-grid.two-column[b-g9ccvu8i94] {
        grid-template-columns: 1fr;
    }

    .detail-hero[b-g9ccvu8i94],
    .stack-item[b-g9ccvu8i94],
    .panel-header[b-g9ccvu8i94],
    .item-title-row[b-g9ccvu8i94] {
        flex-direction: column;
    }

    .align-end[b-g9ccvu8i94] {
        text-align: left;
    }
}
/* /Components/Pages/AuditLogs.razor.rz.scp.css */
.audit-page[b-85ubwske6g] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.overview-toolbar[b-85ubwske6g] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.toolbar-left[b-85ubwske6g] { display: flex; align-items: center; gap: 12px; }
.toolbar-label[b-85ubwske6g] { font-size: 14px; color: var(--console-color-text-3, #666); font-weight: 500; }
.time-tabs[b-85ubwske6g] { display: flex; gap: 4px; background: #fff; border-radius: 6px; border: 1px solid #e2e8f0; padding: 3px; }
.time-tab[b-85ubwske6g] { border: none; background: transparent; padding: 5px 14px; border-radius: 4px; font-size: 13px; color: #64748b; cursor: pointer; transition: all 0.15s; }
.time-tab:hover[b-85ubwske6g] { background: #f1f5f9; }
.time-tab.active[b-85ubwske6g] { background: #2563eb; color: #fff; font-weight: 600; }
.toolbar-right[b-85ubwske6g] { display: flex; align-items: center; gap: 12px; }
.date-range-wrap[b-85ubwske6g] { display: flex; align-items: center; gap: 6px; }
.date-range-sep[b-85ubwske6g] { font-size: 13px; color: var(--console-color-text-4, #8f959e); }
.audit-date-picker[b-85ubwske6g] { width: 130px; }
.audit-keyword[b-85ubwske6g] { width: 220px; min-width: 160px; max-width: 320px; flex: 1 1 220px; }
.audit-category[b-85ubwske6g] { width: 150px; }
.audit-risk[b-85ubwske6g] { width: 120px; }
.audit-status[b-85ubwske6g] { width: 110px; }
.section-block[b-85ubwske6g] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 20px 24px; box-shadow: 0 4px 16px rgba(15,23,42,.04); }
.filter-section[b-85ubwske6g] { padding: 12px 24px; }
.filter-row[b-85ubwske6g] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.section-loading[b-85ubwske6g] { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px 0; color: var(--console-color-text-4, #8f959e); font-size: 13px; }
.state-panel[b-85ubwske6g] { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.audit-inline-alert-actions[b-85ubwske6g] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--console-space-3, 12px); align-items: center; }
.detail-grid[b-85ubwske6g] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.detail-grid > div[b-85ubwske6g] { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.detail-grid .detail-wide[b-85ubwske6g] { grid-column: 1 / -1; }
.detail-grid span[b-85ubwske6g] { color: var(--console-color-text-3, #666); font-size: 12px; }
.detail-grid strong[b-85ubwske6g], .detail-grid code[b-85ubwske6g] { overflow-wrap: anywhere; }
.detail-grid pre[b-85ubwske6g] { white-space: pre-wrap; background: #f8fafc; border: 1px solid #e2e8f0; padding: 10px; border-radius: 4px; max-height: 220px; overflow: auto; margin: 0; }
.metric-grid[b-85ubwske6g] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.metric-card[b-85ubwske6g] { background: #fafbfc; border: 1px solid #f1f5f9; border-radius: 8px; padding: 18px; display: flex; align-items: center; gap: 14px; min-height: 98px; min-width: 0; }
.metric-icon[b-85ubwske6g] { width: 46px; height: 46px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 21px; flex: 0 0 46px; }
.metric-icon.blue[b-85ubwske6g] { background: #eef5ff; color: #2563eb; } .metric-icon.green[b-85ubwske6g] { background: #ecfdf5; color: #059669; }
.metric-icon.orange[b-85ubwske6g] { background: #fff7ed; color: #ea580c; } .metric-icon.red[b-85ubwske6g] { background: #fef2f2; color: #dc2626; }
.metric-value[b-85ubwske6g] { font-size: 28px; line-height: 1.1; font-weight: 700; }
.metric-label[b-85ubwske6g] { margin-top: 6px; color: #64748b; font-size: 14px; }
.audit-pagination-row[b-85ubwske6g] { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 0; }
.audit-total[b-85ubwske6g] { font-size: 13px; color: #666; }
@media (max-width: 720px) {
    .detail-grid[b-85ubwske6g] { grid-template-columns: 1fr; }
    .detail-grid .detail-wide[b-85ubwske6g] { grid-column: auto; }
    .metric-grid[b-85ubwske6g] { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
    .overview-toolbar[b-85ubwske6g] { flex-direction: column; align-items: flex-start; }
    .audit-keyword[b-85ubwske6g] { width: 100%; max-width: none; flex-basis: 100%; }
    .audit-inline-alert-actions[b-85ubwske6g] { grid-template-columns: 1fr; }
}
/* /Components/Pages/AuditOutbox.razor.rz.scp.css */
/* 审计补偿积压页面样式。按仓库约定，页面级样式独立成 .razor.css，不写行内 style。 */

.outbox-page[b-hz33yfnt9w] {
    /* 页面自身不产生横向滚动：表格靠 Table 的 ScrollX 在内部滚动 */
    max-width: 100%;
    overflow-x: hidden;
}

.page-heading[b-hz33yfnt9w] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.page-heading h2[b-hz33yfnt9w] {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 600;
}

.page-heading p[b-hz33yfnt9w] {
    margin: 0;
    max-width: 860px;
    color: rgba(0, 0, 0, 0.55);
    font-size: 13px;
    line-height: 1.7;
}

.page-actions[b-hz33yfnt9w] {
    flex-shrink: 0;
}

.retry-row[b-hz33yfnt9w] {
    margin-top: 12px;
}

.summary-cards[b-hz33yfnt9w] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
}

.summary-card[b-hz33yfnt9w] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 148px;
    padding: 14px 16px;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    background: #fff;
}

.summary-card.wide[b-hz33yfnt9w] {
    min-width: 240px;
}

.card-label[b-hz33yfnt9w] {
    color: rgba(0, 0, 0, 0.45);
    font-size: 12px;
}

.card-value[b-hz33yfnt9w] {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.2;
}

.summary-card.wide .card-value[b-hz33yfnt9w] {
    font-size: 15px;
    font-weight: 500;
}

.card-value.pending[b-hz33yfnt9w] { color: #d48806; }
.card-value.failed[b-hz33yfnt9w]  { color: #d4380d; }
.card-value.dead[b-hz33yfnt9w]    { color: #cf1322; }
.card-value.ok[b-hz33yfnt9w]      { color: #389e0d; }

.card-empty[b-hz33yfnt9w] {
    color: rgba(0, 0, 0, 0.35);
    font-size: 14px;
    font-weight: 400;
}

.filter-row[b-hz33yfnt9w] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.filter-label[b-hz33yfnt9w] {
    color: rgba(0, 0, 0, 0.65);
    font-size: 13px;
}

.mono[b-hz33yfnt9w] {
    font-family: Consolas, Monaco, "Courier New", monospace;
    font-size: 12px;
    word-break: break-all;
}

.error-brief[b-hz33yfnt9w] {
    color: #d4380d;
    cursor: help;
    font-size: 12px;
}

.text-muted[b-hz33yfnt9w] {
    color: rgba(0, 0, 0, 0.35);
}

.truncate-hint[b-hz33yfnt9w] {
    margin-top: 12px;
    padding: 8px 12px;
    border-radius: 6px;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    color: rgba(0, 0, 0, 0.65);
    font-size: 12px;
}

/* 移动端：卡片改为两列，标题与操作区纵向堆叠。
   注意 min-width 必须归零 —— 全局 Layout 的侧边栏在窄屏下不折叠，
   内容区实际可用宽度可能只有 100px 量级，任何 min-width 都会撑出横向溢出。 */
@media (max-width: 768px) {
    .page-heading[b-hz33yfnt9w] {
        flex-direction: column;
    }

    .summary-cards[b-hz33yfnt9w] {
        gap: 8px;
    }

    .summary-card[b-hz33yfnt9w],
    .summary-card.wide[b-hz33yfnt9w] {
        flex: 1 1 calc(50% - 4px);
        min-width: 0;
        padding: 10px 12px;
    }

    .summary-card.wide[b-hz33yfnt9w] {
        flex-basis: 100%;
    }

    .card-value[b-hz33yfnt9w] {
        font-size: 18px;
    }

    .summary-card.wide .card-value[b-hz33yfnt9w] {
        font-size: 13px;
        word-break: break-all;
    }

    /* Empty 组件默认插图是固定宽度 SVG，窄容器下会溢出，需显式收缩 */
    .outbox-page[b-hz33yfnt9w]  .ant-empty-image,
    .outbox-page[b-hz33yfnt9w]  .ant-empty-image svg {
        max-width: 100%;
        height: auto;
    }
}
/* /Components/Pages/AuditSecurity.razor.rz.scp.css */
    .audit-page[b-2etkdo4q0a] {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    .overview-toolbar[b-2etkdo4q0a] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    .toolbar-left[b-2etkdo4q0a] { display: flex; align-items: center; gap: 12px; }
    .toolbar-label[b-2etkdo4q0a] { font-size: 14px; color: var(--console-color-text-3, #666); font-weight: 500; }
    .time-tabs[b-2etkdo4q0a] { display: flex; gap: 4px; background: #fff; border-radius: 6px; border: 1px solid #e2e8f0; padding: 3px; }
    .time-tab[b-2etkdo4q0a] { border: none; background: transparent; padding: 5px 14px; border-radius: 4px; font-size: 13px; color: #64748b; cursor: pointer; transition: all 0.15s; }
    .time-tab:hover[b-2etkdo4q0a] { background: #f1f5f9; }
    .time-tab.active[b-2etkdo4q0a] { background: #2563eb; color: #fff; font-weight: 600; }
    .toolbar-right[b-2etkdo4q0a] { display: flex; align-items: center; gap: 12px; }
    .date-range-wrap[b-2etkdo4q0a] { display: flex; align-items: center; gap: 6px; }
    .date-range-sep[b-2etkdo4q0a] { font-size: 13px; color: var(--console-color-text-4, #8f959e); }
    .section-block[b-2etkdo4q0a] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 20px 24px; box-shadow: 0 4px 16px rgba(15,23,42,.04); }
    .filter-section[b-2etkdo4q0a] { padding: 12px 24px; }
    .filter-row[b-2etkdo4q0a] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
    .audit-keyword[b-2etkdo4q0a] { width: 220px; min-width: 160px; max-width: 320px; flex: 1 1 220px; }
    .audit-event-type[b-2etkdo4q0a] { width: 150px; }
    .audit-risk[b-2etkdo4q0a] { width: 120px; }
    .audit-status[b-2etkdo4q0a] { width: 110px; }
    .section-loading[b-2etkdo4q0a] { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px 0; color: var(--console-color-text-4, #8f959e); font-size: 13px; }
    .metric-grid[b-2etkdo4q0a] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
    .metric-card[b-2etkdo4q0a] { background: #fafbfc; border: 1px solid #f1f5f9; border-radius: 8px; padding: 18px; display: flex; align-items: center; gap: 14px; min-height: 98px; min-width: 0; }
    .metric-icon[b-2etkdo4q0a] { width: 46px; height: 46px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 21px; flex: 0 0 46px; }
    .metric-icon.blue[b-2etkdo4q0a] { background: #eef5ff; color: #2563eb; } .metric-icon.cyan[b-2etkdo4q0a] { background: #ecfeff; color: #0891b2; }
    .metric-icon.green[b-2etkdo4q0a] { background: #ecfdf5; color: #059669; } .metric-icon.orange[b-2etkdo4q0a] { background: #fff7ed; color: #ea580c; }
    .metric-icon.purple[b-2etkdo4q0a] { background: #f5f3ff; color: #7c3aed; } .metric-icon.red[b-2etkdo4q0a] { background: #fef2f2; color: #dc2626; }
    .metric-value[b-2etkdo4q0a] { font-size: 28px; line-height: 1.1; font-weight: 700; }
    .metric-label[b-2etkdo4q0a] { margin-top: 6px; color: #64748b; font-size: 14px; }
    .audit-pagination-row[b-2etkdo4q0a] { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 0; }
    @media (max-width: 720px) {
        .metric-grid[b-2etkdo4q0a] { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
        .overview-toolbar[b-2etkdo4q0a] { flex-direction: column; align-items: flex-start; }
        .audit-keyword[b-2etkdo4q0a] { width: 100%; max-width: none; flex-basis: 100%; }
    }
/* /Components/Pages/AuditToolCalls.razor.rz.scp.css */
    .audit-page[b-g1ctmizyzr] {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    .overview-toolbar[b-g1ctmizyzr] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    .toolbar-left[b-g1ctmizyzr] { display: flex; align-items: center; gap: 12px; }
    .toolbar-label[b-g1ctmizyzr] { font-size: 14px; color: var(--console-color-text-3, #666); font-weight: 500; }
    .time-tabs[b-g1ctmizyzr] { display: flex; gap: 4px; background: #fff; border-radius: 6px; border: 1px solid #e2e8f0; padding: 3px; }
    .time-tab[b-g1ctmizyzr] { border: none; background: transparent; padding: 5px 14px; border-radius: 4px; font-size: 13px; color: #64748b; cursor: pointer; transition: all 0.15s; }
    .time-tab:hover[b-g1ctmizyzr] { background: #f1f5f9; }
    .time-tab.active[b-g1ctmizyzr] { background: #2563eb; color: #fff; font-weight: 600; }
    .toolbar-right[b-g1ctmizyzr] { display: flex; align-items: center; gap: 12px; }
    .date-range-wrap[b-g1ctmizyzr] { display: flex; align-items: center; gap: 6px; }
    .date-range-sep[b-g1ctmizyzr] { font-size: 13px; color: var(--console-color-text-4, #8f959e); }
    .section-block[b-g1ctmizyzr] { background: #fff; border: 1px solid #e7edf5; border-radius: 8px; padding: 20px 24px; box-shadow: 0 4px 16px rgba(15,23,42,.04); }
    .filter-section[b-g1ctmizyzr] { padding: 12px 24px; }
    .filter-row[b-g1ctmizyzr] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
    .audit-keyword[b-g1ctmizyzr] { width: 220px; min-width: 160px; max-width: 320px; flex: 1 1 220px; }
    .audit-tool[b-g1ctmizyzr] { width: 140px; }
    .audit-client[b-g1ctmizyzr] { width: 130px; }
    .audit-call-type[b-g1ctmizyzr] { width: 110px; }
    .section-loading[b-g1ctmizyzr] { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px 0; color: var(--console-color-text-4, #8f959e); font-size: 13px; }
    .metric-grid[b-g1ctmizyzr] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
    .metric-card[b-g1ctmizyzr] { background: #fafbfc; border: 1px solid #f1f5f9; border-radius: 8px; padding: 18px; display: flex; align-items: center; gap: 14px; min-height: 98px; min-width: 0; }
    .metric-icon[b-g1ctmizyzr] { width: 46px; height: 46px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 21px; flex: 0 0 46px; }
    .metric-icon.blue[b-g1ctmizyzr] { background: #eef5ff; color: #2563eb; } .metric-icon.cyan[b-g1ctmizyzr] { background: #ecfeff; color: #0891b2; }
    .metric-icon.green[b-g1ctmizyzr] { background: #ecfdf5; color: #059669; } .metric-icon.orange[b-g1ctmizyzr] { background: #fff7ed; color: #ea580c; }
    .metric-icon.purple[b-g1ctmizyzr] { background: #f5f3ff; color: #7c3aed; } .metric-icon.red[b-g1ctmizyzr] { background: #fef2f2; color: #dc2626; }
    .metric-value[b-g1ctmizyzr] { font-size: 28px; line-height: 1.1; font-weight: 700; }
    .metric-label[b-g1ctmizyzr] { margin-top: 6px; color: #64748b; font-size: 14px; }
    .audit-pagination-row[b-g1ctmizyzr] { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 0; }
    .detail-drawer-content[b-g1ctmizyzr] { padding: 0 4px; }
    .detail-meta-grid[b-g1ctmizyzr] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px; padding: 16px; background: #f8fafc; border-radius: 8px; margin-bottom: 20px; }
    .detail-meta-item[b-g1ctmizyzr] { display: flex; flex-direction: column; gap: 2px; }
    .detail-meta-label[b-g1ctmizyzr] { font-size: 12px; color: #64748b; }
    .detail-meta-value[b-g1ctmizyzr] { font-size: 14px; color: var(--console-color-text-1, #1f2329); font-weight: 500; }
    .detail-section[b-g1ctmizyzr] { margin-bottom: 20px; }
    .detail-section-title[b-g1ctmizyzr] { font-size: 14px; font-weight: 600; color: var(--console-color-text-1, #1f2329); margin-bottom: 8px; display: flex; align-items: center; }
    .detail-code-block[b-g1ctmizyzr] { white-space: pre-wrap; word-break: break-all; font-family: 'SF Mono', 'Consolas', monospace; font-size: 13px; background: #f8fafc; padding: 12px; border-radius: 6px; border: 1px solid #e2e8f0; max-height: 400px; overflow: auto; margin: 0; line-height: 1.5; color: #1e293b; }
    .audit-detail-link[b-g1ctmizyzr] { color: var(--console-color-primary, #1677ff); cursor: pointer; text-decoration: none; }
    .audit-detail-link:hover[b-g1ctmizyzr] { color: var(--console-color-primary-hover, #4096ff); text-decoration: underline; }
    .audit-muted[b-g1ctmizyzr] { color: var(--console-color-text-4, #8f959e); }
    @media (max-width: 720px) {
        .metric-grid[b-g1ctmizyzr] { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
        .overview-toolbar[b-g1ctmizyzr] { flex-direction: column; align-items: flex-start; }
        .audit-keyword[b-g1ctmizyzr] { width: 100%; max-width: none; flex-basis: 100%; }
    }
/* /Components/Pages/ChangePassword.razor.rz.scp.css */
.change-password-page .console-list-page__content[b-x94ey77o9m] {
    overflow: auto;
}

.change-password-surface[b-x94ey77o9m] {
    width: min(100%, 720px);
    margin-inline: auto;
    padding: 24px;
    background: var(--console-color-bg-card, #fff);
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: var(--console-radius-md, 6px);
}

@media (max-width: 600px) {
    .change-password-surface[b-x94ey77o9m] {
        padding: 16px;
    }
}
/* /Components/Pages/DataManagement/CreateDataset.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-k0nsub9pud] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-k0nsub9pud] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-k0nsub9pud] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-k0nsub9pud] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-k0nsub9pud] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
}

.back-btn:hover[b-k0nsub9pud] {
    background: #f9fafb;
    border-color: #d1d5db;
}

.page-title[b-k0nsub9pud] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

/* 卡片 */
.card[b-k0nsub9pud] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-body[b-k0nsub9pud] {
    padding: 24px;
}

/* 加载状态 */
.loading-container[b-k0nsub9pud] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}

.loading-spinner[b-k0nsub9pud] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-k0nsub9pud 1s linear infinite;
}

@keyframes spin-b-k0nsub9pud {
    to { transform: rotate(360deg); }
}

.loading-text[b-k0nsub9pud] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 表单容器 */
.form-container[b-k0nsub9pud] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 表单项 */
.form-group[b-k0nsub9pud] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-label[b-k0nsub9pud] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-k0nsub9pud]::after {
    content: "*";
    color: #ef4444;
    margin-left: 4px;
}

.form-input[b-k0nsub9pud], .form-textarea[b-k0nsub9pud] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    transition: all 0.15s;
}

.form-input:focus[b-k0nsub9pud], .form-textarea:focus[b-k0nsub9pud] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea[b-k0nsub9pud] {
    resize: vertical;
    min-height: 80px;
}

.form-error[b-k0nsub9pud] {
    font-size: 12px;
    color: #ef4444;
}

.form-hint[b-k0nsub9pud] {
    font-size: 12px;
    color: #6b7280;
}

/* 数据类型选择 */
.type-options[b-k0nsub9pud] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.type-option[b-k0nsub9pud] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    min-width: 100px;
}

.type-option:hover[b-k0nsub9pud] {
    border-color: #2563eb;
}

.type-option.selected[b-k0nsub9pud] {
    background: #eff6ff;
    border-color: #2563eb;
}

.type-option i[b-k0nsub9pud] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.type-option.selected i[b-k0nsub9pud] {
    color: #2563eb;
}

.type-option span[b-k0nsub9pud] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

/* 可见性选择 */
.visibility-options[b-k0nsub9pud] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.visibility-option[b-k0nsub9pud] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}

.visibility-option:hover:not(.disabled)[b-k0nsub9pud] {
    border-color: #2563eb;
}

.visibility-option.selected[b-k0nsub9pud] {
    background: #eff6ff;
    border-color: #2563eb;
}

.visibility-option.disabled[b-k0nsub9pud] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f9fafb;
}

.visibility-option i[b-k0nsub9pud] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.visibility-option.selected i[b-k0nsub9pud] {
    color: #2563eb;
}

.visibility-option span[b-k0nsub9pud] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.visibility-option small[b-k0nsub9pud] {
    font-size: 12px;
    color: #6b7280;
}

.option-disabled-tip[b-k0nsub9pud] {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #fef2f2;
    color: #ef4444;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    white-space: nowrap;
    margin-top: 4px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* 部门选择容器 */
.dept-select-container[b-k0nsub9pud] {
    display: flex;
    gap: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    background: #f9fafb;
}

.dept-tree-panel[b-k0nsub9pud] {
    flex: 1;
    min-width: 200px;
    max-width: 300px;
    border-right: 1px solid #e5e7eb;
    padding-right: 16px;
}

.dept-tree-header[b-k0nsub9pud] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 12px;
}

.dept-tree-body[b-k0nsub9pud] {
    max-height: 300px;
    overflow-y: auto;
}

.dept-tree-item[b-k0nsub9pud] {
    padding: 6px 8px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #374151;
    transition: all 0.15s;
}

.dept-tree-item:hover[b-k0nsub9pud] {
    background: #e5e7eb;
}

.dept-tree-item.selected[b-k0nsub9pud] {
    background: #2563eb;
    color: white;
}

.dept-tree-item i[b-k0nsub9pud] {
    font-size: 12px;
    color: #6b7280;
}

.dept-tree-item.selected i[b-k0nsub9pud] {
    color: white;
}

.tree-children[b-k0nsub9pud] {
    margin-left: 16px;
}

.empty-tree[b-k0nsub9pud] {
    color: #6b7280;
    font-size: 13px;
    text-align: center;
    padding: 20px;
}

.selected-dept-display[b-k0nsub9pud] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.selected-dept-info[b-k0nsub9pud] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #2563eb;
}

.selected-dept-info i[b-k0nsub9pud] {
    color: #2563eb;
}

.selected-dept-info span[b-k0nsub9pud] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.clear-btn[b-k0nsub9pud] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    padding: 4px;
    margin-left: auto;
}

.clear-btn:hover[b-k0nsub9pud] {
    color: #ef4444;
}

.no-selection[b-k0nsub9pud] {
    color: #9ca3af;
    font-size: 13px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

/* 当前部门显示 */
.current-dept[b-k0nsub9pud] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

.current-dept i[b-k0nsub9pud] {
    color: #6b7280;
}

/* 错误提示 */
.error-tip[b-k0nsub9pud] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fee2e2;
    border-radius: 6px;
    color: #ef4444;
    font-size: 14px;
}

.error-tip i[b-k0nsub9pud] {
    color: #fbbf24;
}

/* 按钮 */
.btn[b-k0nsub9pud] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn:disabled[b-k0nsub9pud] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-k0nsub9pud] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-k0nsub9pud] {
    background: #1d4ed8;
}

.btn-default[b-k0nsub9pud] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-k0nsub9pud] {
    background: #f9fafb;
}

/* 表单操作区 */
.form-actions[b-k0nsub9pud] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
}

/* Toast */
.toast[b-k0nsub9pud] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-k0nsub9pud 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-k0nsub9pud {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-k0nsub9pud] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-k0nsub9pud] {
    background: #fee2e2;
    color: #ef4444;
}

.toast-warning[b-k0nsub9pud] {
    background: #fef3c7;
    color: #d97706;
}

/* 响应式 */
@media (max-width: 768px) {
    .visibility-options[b-k0nsub9pud] {
        grid-template-columns: repeat(2, 1fr);
    }

    .type-options[b-k0nsub9pud] {
        flex-wrap: wrap;
    }

    .type-option[b-k0nsub9pud] {
        min-width: 80px;
    }

    .dept-select-container[b-k0nsub9pud] {
        flex-direction: column;
    }

    .dept-tree-panel[b-k0nsub9pud] {
        max-width: 100%;
        border-right: none;
        border-bottom: 1px solid #e5e7eb;
        padding-right: 0;
        padding-bottom: 16px;
    }
}
.create-page-actions[b-k0nsub9pud] { display: flex; justify-content: flex-end; margin: -6px 0 16px; }

/* Ant Design asset creation workspace */
.asset-create-card[b-k0nsub9pud] {
    width: min(100%, 960px);
    margin: 0 auto;
    border-radius: 6px;
}

.asset-create-form[b-k0nsub9pud] {
    width: 100%;
}

.asset-create-form[b-k0nsub9pud]  .ant-form-item {
    margin-bottom: 20px;
}

.asset-type-segments[b-k0nsub9pud] {
    display: flex;
    flex-wrap: wrap;
}

.asset-type-segments[b-k0nsub9pud]  .ant-radio-button-wrapper {
    min-width: 112px;
    height: 40px;
    padding: 0 16px;
    line-height: 38px;
    text-align: center;
}

.asset-type-segments[b-k0nsub9pud]  .anticon {
    margin-right: 6px;
}

.form-actions[b-k0nsub9pud] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

@media (max-width: 640px) {
    .page-container[b-k0nsub9pud] {
        padding: 12px;
    }

    .asset-create-card[b-k0nsub9pud]  .ant-card-body {
        padding: 16px !important;
    }

    .asset-type-segments[b-k0nsub9pud],
    .asset-type-segments[b-k0nsub9pud]  .ant-radio-button-wrapper {
        width: 100%;
    }
}
/* /Components/Pages/DataManagement/DatasetDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-6kg7dtlsq3] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-6kg7dtlsq3] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-6kg7dtlsq3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}

.header-left[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.back-link[b-6kg7dtlsq3] {
    color: #2563eb;
    text-decoration: none;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.back-link:hover[b-6kg7dtlsq3] {
    text-decoration: underline;
}

.page-title[b-6kg7dtlsq3] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Tab 导航 */
.tabs-container[b-6kg7dtlsq3] {
    margin-bottom: 16px;
}

.tabs[b-6kg7dtlsq3] {
    display: flex;
    gap: 4px;
    background: white;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.tabs button[b-6kg7dtlsq3] {
    padding: 10px 20px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    border-radius: 6px;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}

.tabs button:hover[b-6kg7dtlsq3] {
    background: #f3f4f6;
    color: #111827;
}

.tabs button.active[b-6kg7dtlsq3] {
    background: #2563eb;
    color: white;
}

/* 按钮 */
.btn[b-6kg7dtlsq3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-6kg7dtlsq3] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-6kg7dtlsq3] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-6kg7dtlsq3] {
    background: #1d4ed8;
}

.btn-default[b-6kg7dtlsq3] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-6kg7dtlsq3] {
    background: #f9fafb;
}

.btn-danger[b-6kg7dtlsq3] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-6kg7dtlsq3] {
    background: #dc2626;
}

.btn-danger-outline[b-6kg7dtlsq3] {
    background: white;
    color: #ef4444;
    border-color: #ef4444;
}

.btn-danger-outline:hover:not(:disabled)[b-6kg7dtlsq3] {
    background: #fef2f2;
}

.btn-link[b-6kg7dtlsq3] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-6kg7dtlsq3] {
    color: #1d4ed8;
    text-decoration: underline;
}

/* 卡片 */
.card[b-6kg7dtlsq3] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
}

.card-header[b-6kg7dtlsq3] {
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-body[b-6kg7dtlsq3] {
    padding: 16px 20px;
}

/* 信息网格 */
.info-grid[b-6kg7dtlsq3] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

.info-item[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label[b-6kg7dtlsq3] {
    font-size: 12px;
    color: #6b7280;
}

.info-value[b-6kg7dtlsq3] {
    font-size: 14px;
    color: #111827;
}

/* 表格 */
.data-table[b-6kg7dtlsq3] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-6kg7dtlsq3] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-6kg7dtlsq3] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-6kg7dtlsq3] {
    background: #f9fafb;
}

.action-cell[b-6kg7dtlsq3] {
    display: flex;
    gap: 8px;
}

/* 状态标签 */
.status-tag[b-6kg7dtlsq3] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-6kg7dtlsq3] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-6kg7dtlsq3] {
    background: #fef3c7;
    color: #d97706;
}

.status-archived[b-6kg7dtlsq3] {
    background: #f1f5f9;
    color: #64748b;
}

.status-pending[b-6kg7dtlsq3] {
    background: #fef3c7;
    color: #d97706;
}

.status-failed[b-6kg7dtlsq3] {
    background: #fee2e2;
    color: #ef4444;
}

/* 数据类型标签 */
.type-text[b-6kg7dtlsq3] {
    background: #ede9fe;
    color: #7c3aed;
}

.type-image[b-6kg7dtlsq3] {
    background: #fce7f3;
    color: #db2777;
}

.type-table[b-6kg7dtlsq3] {
    background: #ffedd5;
    color: #ea580c;
}

.type-other[b-6kg7dtlsq3] {
    background: #e5e7eb;
    color: #6b7280;
}

/* 可见性标签 */
.visibility-private[b-6kg7dtlsq3] {
    background: #e5e7eb;
    color: #6b7280;
}

.visibility-dept[b-6kg7dtlsq3] {
    background: #dbeafe;
    color: #2563eb;
}

.visibility-organization[b-6kg7dtlsq3] {
    background: #dcfce7;
    color: #16a34a;
}

.visibility-public[b-6kg7dtlsq3] {
    background: #cffafe;
    color: #0891b2;
}

/* 版本标签 */
.version-latest[b-6kg7dtlsq3] {
    background: #dbeafe;
    color: #2563eb;
}

.version-old[b-6kg7dtlsq3] {
    background: #e5e7eb;
    color: #6b7280;
}

/* 加载状态 */
.loading-container[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-6kg7dtlsq3] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-6kg7dtlsq3 1s linear infinite;
}

@keyframes spin-b-6kg7dtlsq3 {
    to { transform: rotate(360deg); }
}

.loading-text[b-6kg7dtlsq3] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 错误状态 */
.error-state[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.error-icon[b-6kg7dtlsq3] {
    font-size: 48px;
    color: #fbbf24;
    margin-bottom: 16px;
}

.error-title[b-6kg7dtlsq3] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 20px 0;
}

/* 空状态 */
.empty-state[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.empty-state.small[b-6kg7dtlsq3] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-6kg7dtlsq3] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-state.small .empty-icon[b-6kg7dtlsq3] {
    font-size: 36px;
}

.empty-title[b-6kg7dtlsq3] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-state.small .empty-title[b-6kg7dtlsq3] {
    font-size: 16px;
}

.empty-desc[b-6kg7dtlsq3] {
    font-size: 14px;
    color: #6b7280;
    margin: 0;
}

/* 弹窗 */
.modal-overlay[b-6kg7dtlsq3] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-content[b-6kg7dtlsq3] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.modal-large[b-6kg7dtlsq3] {
    width: 700px;
    max-width: 95vw;
}

/* 文件浏览器样式 */
.breadcrumb-container[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 12px;
    padding: 8px 12px;
    background: #f3f4f6;
    border-radius: 6px;
}

.breadcrumb-separator[b-6kg7dtlsq3] {
    color: #9ca3af;
}

.btn-sm[b-6kg7dtlsq3] {
    padding: 4px 8px;
    font-size: 12px;
}

.files-actions[b-6kg7dtlsq3] {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.file-name-btn[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.file-item[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
}

.folder-row[b-6kg7dtlsq3] {
    cursor: pointer;
}

.folder-row:hover[b-6kg7dtlsq3] {
    background: #eff6ff;
}

.file-row:hover[b-6kg7dtlsq3] {
    background: #f9fafb;
}

.current-path[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

.empty-hint[b-6kg7dtlsq3] {
    font-size: 12px;
    color: #9ca3af;
}

.warning-message[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px;
}

.warning-icon[b-6kg7dtlsq3] {
    font-size: 48px;
    color: #fbbf24;
}

.warning-hint[b-6kg7dtlsq3] {
    font-size: 13px;
    color: #6b7280;
}

/* 文件列表弹窗样式 */
.loading-files[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px;
    color: #6b7280;
    font-size: 14px;
}

.empty-files[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 40px;
    color: #9ca3af;
}

.empty-files i[b-6kg7dtlsq3] {
    font-size: 48px;
}

.empty-files p[b-6kg7dtlsq3] {
    font-size: 14px;
    margin: 0;
}

.files-table[b-6kg7dtlsq3] {
    width: 100%;
    border-collapse: collapse;
}

.files-table th[b-6kg7dtlsq3] {
    text-align: left;
    padding: 10px 12px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.files-table td[b-6kg7dtlsq3] {
    padding: 10px 12px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.files-table tbody tr:hover[b-6kg7dtlsq3] {
    background: #f9fafb;
}

.file-icon[b-6kg7dtlsq3] {
    margin-right: 8px;
    color: #6b7280;
}

.file-name[b-6kg7dtlsq3] {
    font-size: 13px;
    color: #111827;
}

.type-tag[b-6kg7dtlsq3] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.type-folder[b-6kg7dtlsq3] {
    background: #dbeafe;
    color: #2563eb;
}

.type-file[b-6kg7dtlsq3] {
    background: #f3f4f6;
    color: #6b7280;
}

.files-summary[b-6kg7dtlsq3] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
    font-size: 13px;
    color: #6b7280;
}

.modal-header[b-6kg7dtlsq3] {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-title[b-6kg7dtlsq3] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close[b-6kg7dtlsq3] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    font-size: 16px;
    padding: 4px;
}

.modal-close:hover[b-6kg7dtlsq3] {
    color: #111827;
}

.modal-body[b-6kg7dtlsq3] {
    padding: 20px;
}

.modal-footer[b-6kg7dtlsq3] {
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 表单 */
.form-item[b-6kg7dtlsq3] {
    margin-bottom: 16px;
}

.form-label[b-6kg7dtlsq3] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-input[b-6kg7dtlsq3], .form-textarea[b-6kg7dtlsq3] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
}

.form-input:focus[b-6kg7dtlsq3], .form-textarea:focus[b-6kg7dtlsq3] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea[b-6kg7dtlsq3] {
    resize: vertical;
    min-height: 80px;
}

.file-input[b-6kg7dtlsq3] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
}

.selected-file[b-6kg7dtlsq3] {
    margin-top: 8px;
    padding: 8px 12px;
    background: #f0f5ff;
    border-radius: 4px;
    color: #2563eb;
    font-size: 13px;
}

/* 部门选择相关样式 */
.current-dept[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

.loading-dept[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #6b7280;
    font-size: 14px;
}

.error-tip[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fee2e2;
    border-radius: 6px;
    color: #ef4444;
    font-size: 14px;
}

.error-tip i[b-6kg7dtlsq3] {
    color: #fbbf24;
}

.form-hint[b-6kg7dtlsq3] {
    margin-top: 6px;
    font-size: 12px;
    color: #6b7280;
}

.text-muted[b-6kg7dtlsq3] {
    color: #9ca3af;
}

.form-select[b-6kg7dtlsq3] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
}

.form-select:focus[b-6kg7dtlsq3] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.required[b-6kg7dtlsq3] {
    color: #ef4444;
}

/* Radio 单选组 */
.radio-group[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.radio-option[b-6kg7dtlsq3] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    transition: all 0.15s;
    cursor: pointer;
}

.radio-option:hover[b-6kg7dtlsq3] {
    background: #f9fafb;
}

.radio-option input[type="radio"][b-6kg7dtlsq3] {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    accent-color: #2563eb;
}

.radio-option input[type="radio"]:checked[b-6kg7dtlsq3] {
    background: #2563eb;
}

.radio-label[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
}

.radio-title[b-6kg7dtlsq3] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}

.radio-desc[b-6kg7dtlsq3] {
    font-size: 13px;
    color: #6b7280;
}

/* 弃用区域 */
.deprecated-section[b-6kg7dtlsq3] {
    opacity: 0.7;
    padding: 12px;
    border: 1px solid #f3f4f6;
    border-radius: 8px;
    background: #f9fafb;
}

.deprecated-label[b-6kg7dtlsq3] {
    color: #9ca3af !important;
}

.deprecated-label i[b-6kg7dtlsq3] {
    color: #fbbf24;
    margin-right: 4px;
}

.deprecated-hint[b-6kg7dtlsq3] {
    font-size: 12px;
    color: #9ca3af;
    margin-bottom: 8px;
}

/* Toast */
.toast[b-6kg7dtlsq3] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-6kg7dtlsq3 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-6kg7dtlsq3 {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-6kg7dtlsq3] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-6kg7dtlsq3] {
    background: #fee2e2;
    color: #ef4444;
}

/* Tab 卡片样式 */
.tab-card[b-6kg7dtlsq3] {
    padding: 0;
}

.tab-header[b-6kg7dtlsq3] {
    display: flex;
    gap: 0;
    border-bottom: 1px solid #e5e7eb;
    padding: 0;
}

.tab-item[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    border-bottom: 2px solid transparent;
    transition: all 0.15s;
    background: transparent;
}

.tab-item:hover[b-6kg7dtlsq3] {
    color: #374151;
    background: #f9fafb;
}

.tab-item.active[b-6kg7dtlsq3] {
    color: #2563eb;
    border-bottom-color: #2563eb;
    background: #fff;
}

.tab-item i[b-6kg7dtlsq3] {
    font-size: 14px;
}

.tab-count[b-6kg7dtlsq3] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

.tab-content[b-6kg7dtlsq3] {
    padding: 20px;
}

/* 版本选择器样式 */
.version-selector-row[b-6kg7dtlsq3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.version-selector-left[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.selector-label[b-6kg7dtlsq3] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.version-select[b-6kg7dtlsq3] {
    min-width: 200px;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
}

.file-explorer-wrapper[b-6kg7dtlsq3] {
    /* 样式已下沉到 FileExplorer 组件内部的 .file-explorer-root，保持外部 wrapper 透明 */
}

/* README 样式 */
.loading-container.small[b-6kg7dtlsq3] {
    min-height: 100px;
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.loading-container.small i[b-6kg7dtlsq3] {
    font-size: 16px;
    color: #2563eb;
}

.empty-readme[b-6kg7dtlsq3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    text-align: center;
}

.empty-readme .empty-icon[b-6kg7dtlsq3] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-readme .empty-text[b-6kg7dtlsq3] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-readme .empty-hint[b-6kg7dtlsq3] {
    font-size: 13px;
    color: #9ca3af;
    margin: 0;
}

.readme-body[b-6kg7dtlsq3] {
    padding: 16px;
    font-size: 14px;
    color: #374151;
    line-height: 1.7;
}

.readme-body h1[b-6kg7dtlsq3] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e7eb;
}

.readme-body h2[b-6kg7dtlsq3] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 16px 0 8px 0;
}

.readme-body h3[b-6kg7dtlsq3] {
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin: 12px 0 6px 0;
}

.readme-body code[b-6kg7dtlsq3] {
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 13px;
    color: #ef4444;
}

.readme-body pre[b-6kg7dtlsq3] {
    background: #f3f4f6;
    padding: 12px 16px;
    border-radius: 6px;
    overflow-x: auto;
    margin: 12px 0;
}

.readme-body pre code[b-6kg7dtlsq3] {
    background: transparent;
    padding: 0;
    color: #374151;
}

.readme-body a[b-6kg7dtlsq3] {
    color: #2563eb;
    text-decoration: none;
}

.readme-body a:hover[b-6kg7dtlsq3] {
    text-decoration: underline;
}

/* 版本单元格样式 */
.version-cell[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.latest-badge[b-6kg7dtlsq3] {
    background: #2563eb;
    color: white;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.version-name[b-6kg7dtlsq3] {
    font-weight: 500;
    color: #111827;
}

.version-desc[b-6kg7dtlsq3] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

.table-wrapper[b-6kg7dtlsq3] {
    overflow-x: auto;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-6kg7dtlsq3] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .tabs[b-6kg7dtlsq3] {
        flex-wrap: wrap;
    }
    
    .info-grid[b-6kg7dtlsq3] {
        grid-template-columns: 1fr;
    }
    
    .data-table[b-6kg7dtlsq3] {
        display: block;
        overflow-x: auto;
    }
    
    .tab-header[b-6kg7dtlsq3] {
        flex-wrap: wrap;
    }
    
    .version-selector-row[b-6kg7dtlsq3] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

/* 资产详情工作区：标题与页签固定，仅内容区滚动。 */
.page-container[b-6kg7dtlsq3] {
    height: calc(100vh - 112px);
    min-height: 620px;
    padding: 16px;
    overflow: hidden;
    background: #f6f8fb;
}

.main-content[b-6kg7dtlsq3] {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.asset-toolbar[b-6kg7dtlsq3],
.asset-actions[b-6kg7dtlsq3],
.asset-tags[b-6kg7dtlsq3],
.asset-metrics[b-6kg7dtlsq3],
.modal-ant-actions[b-6kg7dtlsq3] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.asset-toolbar[b-6kg7dtlsq3] {
    justify-content: space-between;
    margin-bottom: 10px;
}

.asset-actions[b-6kg7dtlsq3],
.asset-tags[b-6kg7dtlsq3] {
    flex-wrap: wrap;
}

.asset-tags[b-6kg7dtlsq3] {
    gap: 4px;
}

.asset-tags[b-6kg7dtlsq3]  .ant-tag {
    margin-inline-end: 0;
}

.asset-hero[b-6kg7dtlsq3] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
}

.asset-mark[b-6kg7dtlsq3] {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: #e6f4ff;
    color: #1677ff;
    font-size: 22px;
}

.asset-identity[b-6kg7dtlsq3] {
    min-width: 0;
    flex: 1;
}

.asset-kind[b-6kg7dtlsq3] {
    color: #8c8c8c;
    font-size: 12px;
}

.asset-identity h1[b-6kg7dtlsq3] {
    margin: 2px 0 4px;
    font-size: 22px;
    line-height: 30px;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.asset-identity p[b-6kg7dtlsq3] {
    margin: 0 0 10px;
    color: #595959;
}

.asset-summary-meta[b-6kg7dtlsq3] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-bottom: 10px;
    color: #6b7280;
    font-size: 13px;
}

.asset-summary-meta span[b-6kg7dtlsq3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.asset-metrics[b-6kg7dtlsq3] {
    flex: 0 0 auto;
    align-self: center;
}

.asset-metric[b-6kg7dtlsq3] {
    min-width: 72px;
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 6px;
    align-items: center;
    padding: 0 12px;
    border-right: 1px solid #f0f0f0;
}

.asset-metric span[b-6kg7dtlsq3] {
    grid-column: 1 / -1;
    color: #8c8c8c;
    font-size: 12px;
    text-align: center;
}

.asset-detail-layout[b-6kg7dtlsq3] {
    min-height: 0;
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
    margin-top: 12px;
    overflow: hidden;
}

.asset-primary-content[b-6kg7dtlsq3],
.asset-sidebar[b-6kg7dtlsq3],
.asset-content-card[b-6kg7dtlsq3] {
    min-height: 0;
}

.asset-primary-content[b-6kg7dtlsq3] {
    height: 100%;
    overflow: hidden;
}

.asset-primary-content[b-6kg7dtlsq3]  .asset-content-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.asset-primary-content[b-6kg7dtlsq3]  .asset-content-card .ant-card-head {
    flex: 0 0 auto;
}

.asset-primary-content[b-6kg7dtlsq3]  .asset-content-card .ant-card-body {
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.asset-sidebar[b-6kg7dtlsq3] {
    overflow-y: auto;
}

.asset-content-card[b-6kg7dtlsq3]  .ant-tabs-nav {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 20px;
}

/* 页签内容由下方 asset-tab-content 渲染；AntDesign 生成的空 holder 会占掉一半高度。 */
.asset-primary-content[b-6kg7dtlsq3]  .asset-content-card .ant-tabs-content-holder {
    display: none !important;
}

.asset-primary-content[b-6kg7dtlsq3]  .asset-tab-content {
    min-height: 0;
    flex: 1 1 auto;
    overflow: auto;
}

.asset-tab-content[b-6kg7dtlsq3] {
    min-height: 0;
    flex: 1 1 0;
    overflow: auto;
    padding: 24px;
}

.asset-tab-content.readme[b-6kg7dtlsq3] {
    overflow: hidden;
    padding: 0;
}

.readme-scroll-panel[b-6kg7dtlsq3] {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-y: scroll;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 24px;
}

.asset-tab-content.files[b-6kg7dtlsq3] {
    padding: 16px;
}

.asset-tab-content.files[b-6kg7dtlsq3]  .file-explorer-root {
    min-height: 100%;
}

.asset-state[b-6kg7dtlsq3] {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.readme-body[b-6kg7dtlsq3] {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 !important;
    overflow-wrap: anywhere;
}

.asset-description-body[b-6kg7dtlsq3] { width: 100%; max-width: 1100px; margin: 0 auto; }
.asset-description-label[b-6kg7dtlsq3] { color: #8c8c8c; font-size: 12px; margin-bottom: 8px; }
.asset-description-body p[b-6kg7dtlsq3] { white-space: pre-wrap; line-height: 1.8; margin: 0; }

.readme-body p[b-6kg7dtlsq3],
.readme-body ul[b-6kg7dtlsq3],
.readme-body ol[b-6kg7dtlsq3],
.readme-body blockquote[b-6kg7dtlsq3],
.readme-body table[b-6kg7dtlsq3] {
    margin: 12px 0;
}

.readme-body ul[b-6kg7dtlsq3],
.readme-body ol[b-6kg7dtlsq3] {
    padding-left: 24px;
}

.readme-body li + li[b-6kg7dtlsq3] {
    margin-top: 4px;
}

.readme-body blockquote[b-6kg7dtlsq3] {
    padding: 8px 14px;
    border-left: 3px solid #d9d9d9;
    background: #fafafa;
    color: #595959;
}

.readme-body table[b-6kg7dtlsq3] {
    width: 100%;
    border-collapse: collapse;
    display: block;
    overflow-x: auto;
}

.readme-body th[b-6kg7dtlsq3],
.readme-body td[b-6kg7dtlsq3] {
    padding: 8px 10px;
    border: 1px solid #e5e7eb;
    text-align: left;
    vertical-align: top;
}

.readme-body th[b-6kg7dtlsq3] {
    background: #fafafa;
    color: #262626;
}

.readme-body img[b-6kg7dtlsq3] {
    display: block;
    max-width: 100%;
    height: auto;
}

.modal-ant-actions[b-6kg7dtlsq3] {
    justify-content: flex-end;
}

.asset-tag-editor-field[b-6kg7dtlsq3] {
    display: grid;
    gap: 8px;
}

.asset-tag-editor-field label[b-6kg7dtlsq3] {
    color: #262626;
    font-size: 14px;
    font-weight: 500;
}

@media (max-width: 992px) {
    .page-container[b-6kg7dtlsq3] {
        height: auto;
        min-height: 100%;
        overflow: visible;
    }

    .asset-hero[b-6kg7dtlsq3] {
        flex-wrap: wrap;
    }

    .asset-metrics[b-6kg7dtlsq3] {
        width: 100%;
        justify-content: flex-start;
    }

    .asset-detail-layout[b-6kg7dtlsq3] {
        display: block;
        overflow: visible;
    }

    .asset-primary-content[b-6kg7dtlsq3] {
        height: auto;
        min-height: 0;
        margin-bottom: 16px;
    }

    .asset-content-card[b-6kg7dtlsq3],
    .asset-content-card[b-6kg7dtlsq3]  .ant-card-body {
        height: auto;
    }

    .asset-tab-content[b-6kg7dtlsq3] {
        overflow: visible;
    }

    .asset-tab-content.readme[b-6kg7dtlsq3] {
        overflow: visible;
    }

    .readme-scroll-panel[b-6kg7dtlsq3] {
        height: auto;
        max-height: min(640px, 68vh);
        overflow-y: auto;
        padding: 20px;
    }

    .asset-tab-content.files[b-6kg7dtlsq3] {
        max-height: min(640px, 68vh);
        overflow: auto;
    }

    .asset-sidebar[b-6kg7dtlsq3] {
        display: none;
    }
}

@media (max-width: 640px) {
    .page-container[b-6kg7dtlsq3] {
        padding: 12px;
    }

    .asset-toolbar[b-6kg7dtlsq3] {
        align-items: flex-start;
        flex-direction: column;
    }

    .asset-actions[b-6kg7dtlsq3] {
        width: 100%;
    }

    .asset-metrics[b-6kg7dtlsq3] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/DataManagement/DatasetList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

/* 页面头部 */
.page-header[b-nbxdfnwcnt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--console-color-split);
}

.header-left[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-nbxdfnwcnt] {
    color: #6b7280;
    font-size: 20px;
}

.page-title[b-nbxdfnwcnt] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 搜索框 */
.search-box[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 6px 12px;
    gap: 8px;
    min-width: 200px;
}

.search-icon[b-nbxdfnwcnt] {
    color: #9ca3af;
    font-size: 14px;
}

.search-input[b-nbxdfnwcnt] {
    border: none;
    outline: none;
    font-size: 14px;
    color: #111827;
    background: transparent;
    width: 150px;
}

.search-input[b-nbxdfnwcnt]::placeholder {
    color: #9ca3af;
}

.search-clear[b-nbxdfnwcnt] {
    background: none;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 2px;
    font-size: 12px;
}

.search-clear:hover[b-nbxdfnwcnt] {
    color: #6b7280;
}

/* 部门名称 */
.dept-name[b-nbxdfnwcnt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #6b7280;
}

.dept-name i[b-nbxdfnwcnt] {
    font-size: 12px;
}

.dept-name.empty[b-nbxdfnwcnt] {
    color: #9ca3af;
}

.search-hint[b-nbxdfnwcnt] {
    font-size: 12px;
    color: #9ca3af;
    margin-left: 4px;
}

/* 区块标题 */
.section-header[b-nbxdfnwcnt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.section-title-left[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
}

.section-title-left i[b-nbxdfnwcnt] {
    color: #6b7280;
}

.section-title-right[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
}

.section-title[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
}

.section-title i[b-nbxdfnwcnt] {
    color: #6b7280;
}

.count-badge[b-nbxdfnwcnt] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

/* 按钮 */
.btn[b-nbxdfnwcnt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-nbxdfnwcnt] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-sm[b-nbxdfnwcnt] {
    padding: 4px 10px;
    font-size: 12px;
}

.btn-primary[b-nbxdfnwcnt] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-nbxdfnwcnt] {
    background: #1d4ed8;
}

.btn-default[b-nbxdfnwcnt] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-nbxdfnwcnt] {
    background: #f9fafb;
}

.btn-link[b-nbxdfnwcnt] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-nbxdfnwcnt] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-link-danger[b-nbxdfnwcnt] {
    background: none;
    border: none;
    color: #ef4444;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link-danger:hover[b-nbxdfnwcnt] {
    color: #dc2626;
    text-decoration: underline;
}

/* 卡片 */
.card[b-nbxdfnwcnt] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: white;
    border-radius: var(--console-radius-base);
    border: 1px solid var(--console-color-border);
    box-shadow: var(--console-shadow-card, 0 1px 2px rgba(0,0,0,.03));
}

/* 表格 */
.data-table[b-nbxdfnwcnt] {
    width: 100%;
    min-width: 1380px;
    border-collapse: collapse;
}

.dataset-pagination[b-nbxdfnwcnt] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
}

.dataset-total[b-nbxdfnwcnt] {
    color: #6b7280;
    font-size: 14px;
    white-space: nowrap;
}

.dataset-pagination[b-nbxdfnwcnt]  .ant-pagination {
    margin: 0;
}

@media (max-width: 640px) {
    .dataset-pagination[b-nbxdfnwcnt] {
        align-items: flex-start;
        flex-direction: column;
    }
}

.table-wrapper[b-nbxdfnwcnt] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    overflow: auto;
    overscroll-behavior-x: contain;
}
.asset-list-tags[b-nbxdfnwcnt] { display: flex; min-width: 240px; max-width: 320px; flex-wrap: wrap; gap: 4px; }
.cell-ellipsis[b-nbxdfnwcnt] { display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #595959; }
.metric-cell[b-nbxdfnwcnt] { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: #595959; }
.name-link[b-nbxdfnwcnt] { white-space: nowrap; }

.main-content > .empty-state[b-nbxdfnwcnt],
.main-content > .loading-container[b-nbxdfnwcnt] {
    flex: 1 1 auto;
    min-height: 0;
}

.data-table thead[b-nbxdfnwcnt] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.data-table th[b-nbxdfnwcnt] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-nbxdfnwcnt] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-nbxdfnwcnt] {
    background: #f9fafb;
}

.name-link[b-nbxdfnwcnt] {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.name-link:hover[b-nbxdfnwcnt] {
    text-decoration: underline;
}

.task-desc[b-nbxdfnwcnt] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

.action-cell[b-nbxdfnwcnt] {
    display: flex;
    gap: 8px;
}

/* 状态标签 */
.status-tag[b-nbxdfnwcnt] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-nbxdfnwcnt] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-nbxdfnwcnt] {
    background: #fef3c7;
    color: #d97706;
}

.status-archived[b-nbxdfnwcnt] {
    background: #f1f5f9;
    color: #64748b;
}

/* 数据类型标签 */
.type-text[b-nbxdfnwcnt] {
    background: #ede9fe;
    color: #7c3aed;
}

.type-image[b-nbxdfnwcnt] {
    background: #fce7f3;
    color: #db2777;
}

.type-table[b-nbxdfnwcnt] {
    background: #ffedd5;
    color: #ea580c;
}

.type-other[b-nbxdfnwcnt] {
    background: #e5e7eb;
    color: #6b7280;
}

/* 可见性标签 */
.visibility-private[b-nbxdfnwcnt] {
    background: #e5e7eb;
    color: #6b7280;
}

.visibility-dept[b-nbxdfnwcnt] {
    background: #dbeafe;
    color: #2563eb;
}

.visibility-organization[b-nbxdfnwcnt] {
    background: #dcfce7;
    color: #16a34a;
}

.visibility-public[b-nbxdfnwcnt] {
    background: #cffafe;
    color: #0891b2;
}

/* 加载状态 */
.loading-container[b-nbxdfnwcnt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-nbxdfnwcnt] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-nbxdfnwcnt 1s linear infinite;
}

@keyframes spin-b-nbxdfnwcnt {
    to { transform: rotate(360deg); }
}

/* 删除遮罩层 */
.delete-overlay[b-nbxdfnwcnt] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.delete-overlay-box[b-nbxdfnwcnt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: white;
    border-radius: 8px;
    padding: 32px 40px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.loading-text[b-nbxdfnwcnt] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 空状态 */
.empty-state[b-nbxdfnwcnt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.empty-icon[b-nbxdfnwcnt] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-nbxdfnwcnt] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-nbxdfnwcnt] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

/* 弹窗 */
.modal-overlay[b-nbxdfnwcnt] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-content[b-nbxdfnwcnt] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.modal-header[b-nbxdfnwcnt] {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-title[b-nbxdfnwcnt] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close[b-nbxdfnwcnt] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    font-size: 16px;
    padding: 4px;
}

.modal-close:hover[b-nbxdfnwcnt] {
    color: #111827;
}

.modal-body[b-nbxdfnwcnt] {
    padding: 20px;
}

.modal-footer[b-nbxdfnwcnt] {
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 表单 */
.form-item[b-nbxdfnwcnt] {
    margin-bottom: 16px;
}

.form-label[b-nbxdfnwcnt] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-label .required[b-nbxdfnwcnt] {
    color: #ef4444;
}

.form-hint[b-nbxdfnwcnt] {
    font-size: 12px;
    color: #9ca3af;
    display: flex;
    align-items: center;
    gap: 6px;
}

.selected-department[b-nbxdfnwcnt] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #eff6ff;
    border-radius: 6px;
    color: #2563eb;
    font-size: 14px;
}

.form-input[b-nbxdfnwcnt], .form-select[b-nbxdfnwcnt], .form-textarea[b-nbxdfnwcnt] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
}

.form-input:focus[b-nbxdfnwcnt], .form-select:focus[b-nbxdfnwcnt], .form-textarea:focus[b-nbxdfnwcnt] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea[b-nbxdfnwcnt] {
    resize: vertical;
    min-height: 80px;
}

/* Toast */
.toast[b-nbxdfnwcnt] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-nbxdfnwcnt 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-nbxdfnwcnt {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-nbxdfnwcnt] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-nbxdfnwcnt] {
    background: #fee2e2;
    color: #ef4444;
}

/* 部门布局 */
.department-layout[b-nbxdfnwcnt] {
    display: flex;
    gap: 20px;
    min-height: 500px;
}

.department-sidebar[b-nbxdfnwcnt] {
    width: 280px;
    flex-shrink: 0;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.sidebar-header[b-nbxdfnwcnt] {
    padding: 16px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-weight: 600;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 8px;
}

.department-tree[b-nbxdfnwcnt] {
    padding: 8px;
    max-height: 500px;
    overflow-y: auto;
}

.tree-item[b-nbxdfnwcnt] {
    padding: 8px 12px;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
}

.tree-item:hover[b-nbxdfnwcnt] {
    background: #f3f4f6;
}

.tree-item.selected[b-nbxdfnwcnt] {
    background: #eff6ff;
    color: #2563eb;
}

.tree-item i[b-nbxdfnwcnt] {
    color: #9ca3af;
    font-size: 12px;
}

.tree-children[b-nbxdfnwcnt] {
    margin-left: 20px;
}

.department-content[b-nbxdfnwcnt] {
    flex: 1;
    min-width: 0;
}

/* 高级筛选面板 */
.advanced-filter-panel[b-nbxdfnwcnt] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.filter-row[b-nbxdfnwcnt] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}

.filter-item[b-nbxdfnwcnt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-label[b-nbxdfnwcnt] {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.filter-select[b-nbxdfnwcnt], .filter-date[b-nbxdfnwcnt] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    min-width: 140px;
}

.filter-select:focus[b-nbxdfnwcnt], .filter-date:focus[b-nbxdfnwcnt] {
    outline: none;
    border-color: #2563eb;
}

.filter-actions[b-nbxdfnwcnt] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.filter-active-badge[b-nbxdfnwcnt] {
    color: #2563eb;
    font-size: 10px;
    margin-left: 4px;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-nbxdfnwcnt] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .tabs[b-nbxdfnwcnt] {
        flex-wrap: wrap;
    }

    .section-header[b-nbxdfnwcnt] {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .section-title-right[b-nbxdfnwcnt] {
        width: 100%;
        min-width: 0;
        flex-wrap: wrap;
    }

    .section-title-right[b-nbxdfnwcnt]  .ant-input-affix-wrapper {
        width: auto !important;
        min-width: 0;
        flex: 1 1 160px;
    }
    
    .data-table[b-nbxdfnwcnt] {
        display: table;
    }
    
    .department-layout[b-nbxdfnwcnt] {
        flex-direction: column;
    }
    
    .department-sidebar[b-nbxdfnwcnt] {
        width: 100%;
    }
}
/* /Components/Pages/DebugManagement/CreateDebugTask.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-k1qtayfp9h] {
        min-height: 80vh;
        background: #f9fafb;
        padding: 24px;
        height: 100%;
    }

    .main-content[b-k1qtayfp9h] {
        margin: 0 auto;
    }

    .page-header[b-k1qtayfp9h] {
        margin-bottom: 16px;
    }

    .header-left[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .back-link[b-k1qtayfp9h] {
        color: #2563eb;
        text-decoration: none;
        font-size: 14px;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .back-link:hover[b-k1qtayfp9h] {
        text-decoration: underline;
    }

    .header-icon[b-k1qtayfp9h] {
        color: #6b7280;
        font-size: 24px;
        margin-top: 2px;
    }

    .page-title[b-k1qtayfp9h] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0;
    }

    .info-card[b-k1qtayfp9h] {
        background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
        border: 1px solid #bfdbfe;
        border-radius: 8px;
        padding: 16px 20px;
        margin-bottom: 20px;
        display: flex;
        align-items: flex-start;
        gap: 16px;
    }

    .info-icon[b-k1qtayfp9h], .loading-card i[b-k1qtayfp9h] {
        width: 40px;
        height: 40px;
        background: #2563eb;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: white;
        font-size: 18px;
        flex-shrink: 0;
    }

    .info-content h4[b-k1qtayfp9h] {
        margin: 0 0 4px 0;
        font-size: 14px;
        font-weight: 600;
        color: #1e40af;
    }

    .info-content p[b-k1qtayfp9h] {
        margin: 0;
        font-size: 13px;
        color: #3b82f6;
        line-height: 1.5;
    }

    .loading-card[b-k1qtayfp9h] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 32px 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        color: #374151;
    }

    .loading-card i[b-k1qtayfp9h] {
        background: transparent;
        color: #2563eb;
        width: auto;
        height: auto;
        font-size: 20px;
    }

    .form-card[b-k1qtayfp9h] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        overflow: hidden;
    }

    .form-section[b-k1qtayfp9h] {
        padding: 24px;
        border-bottom: 1px solid #e5e7eb;
    }

    .form-section:last-of-type[b-k1qtayfp9h] {
        border-bottom: none;
    }

    .section-header-row[b-k1qtayfp9h] {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        align-items: flex-start;
        margin-bottom: 16px;
    }

    .section-title[b-k1qtayfp9h] {
        font-size: 15px;
        font-weight: 600;
        color: #111827;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .section-title i[b-k1qtayfp9h], .subsection-title i[b-k1qtayfp9h] {
        color: #6b7280;
    }

    .section-desc[b-k1qtayfp9h] {
        font-size: 13px;
        color: #6b7280;
        margin: 6px 0 0 0;
        line-height: 1.6;
    }

    .section-badge[b-k1qtayfp9h] {
        flex-shrink: 0;
        font-size: 12px;
        font-weight: 600;
        color: #1d4ed8;
        background: #dbeafe;
        border-radius: 999px;
        padding: 6px 10px;
    }

    .section-badge.optional[b-k1qtayfp9h] {
        color: #92400e;
        background: #fef3c7;
    }

    .subsection-header[b-k1qtayfp9h] {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
        margin-bottom: 12px;
    }

    .subsection-title[b-k1qtayfp9h] {
        margin: 0;
        font-size: 14px;
        font-weight: 600;
        color: #111827;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .template-summary[b-k1qtayfp9h] {
        font-size: 12px;
        color: #2563eb;
        background: #eff6ff;
        border-radius: 999px;
        padding: 6px 10px;
        white-space: nowrap;
    }

    .form-grid[b-k1qtayfp9h] {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .basic-top-row[b-k1qtayfp9h] {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
        align-items: start;
    }

    .basic-top-row > .form-group[b-k1qtayfp9h] {
        min-width: 0;
    }

    .basic-top-row .form-label[b-k1qtayfp9h],
    .basic-top-row .cluster-selector > .form-label[b-k1qtayfp9h] {
        min-height: 36px;
        display: flex;
        align-items: flex-end;
    }

    .basic-top-row .cluster-selector[b-k1qtayfp9h],
    .basic-top-row[b-k1qtayfp9h]  .ant-select {
        width: 100%;
        min-width: 0;
    }

    .basic-top-row .cluster-row[b-k1qtayfp9h] {
        gap: 0;
    }

    .basic-top-row .cluster-selector-loading[b-k1qtayfp9h],
    .basic-top-row .cluster-selector-empty[b-k1qtayfp9h] {
        min-height: 38px;
        display: flex;
        align-items: center;
        padding: 8px 12px;
        border: 1px solid #d1d5db;
        border-radius: 6px;
    }

    .compact-grid[b-k1qtayfp9h] {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }

    .form-group[b-k1qtayfp9h] {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .form-group.full-width[b-k1qtayfp9h] {
        grid-column: 1 / -1;
    }

    .form-grid + .form-group.full-width[b-k1qtayfp9h] {
        margin-top: 16px;
    }

    .form-label[b-k1qtayfp9h] {
        font-size: 13px;
        font-weight: 500;
        color: #374151;
    }

    .form-label.required[b-k1qtayfp9h]::after {
        content: " *";
        color: #ef4444;
    }

    .label-note[b-k1qtayfp9h] {
        font-size: 12px;
        font-weight: 400;
        color: #9ca3af;
        margin-left: 4px;
    }

    .form-hint-text[b-k1qtayfp9h] {
        font-size: 12px;
        color: #9ca3af;
    }

    .toggle-row[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-top: 4px;
    }

    .toggle-label[b-k1qtayfp9h] {
        font-size: 13px;
        color: #6b7280;
    }

    .port-editor-table[b-k1qtayfp9h] {
        overflow-x: auto;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        background: #fff;
    }

    .port-editor-header[b-k1qtayfp9h],
    .port-editor-row[b-k1qtayfp9h] {
        display: grid;
        grid-template-columns: minmax(180px, 2fr) minmax(120px, 1fr) minmax(100px, 0.8fr) minmax(140px, 1fr) 56px;
        gap: 12px;
        align-items: center;
        min-width: 720px;
        padding: 9px 12px;
    }

    .port-editor-header[b-k1qtayfp9h] {
        color: #4b5563;
        background: #f9fafb;
        border-bottom: 1px solid #e5e7eb;
        font-size: 13px;
        font-weight: 600;
    }

    .port-editor-row + .port-editor-row[b-k1qtayfp9h] {
        border-top: 1px solid #eef2f7;
    }

    .port-editor-row:hover[b-k1qtayfp9h] {
        background: #fafcff;
    }

    .port-exposure-toggle[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #374151;
        font-size: 13px;
        cursor: pointer;
        white-space: nowrap;
    }

    .port-exposure-toggle input[b-k1qtayfp9h] {
        width: 16px;
        height: 16px;
        margin: 0;
        accent-color: #2563eb;
    }

    .port-delete-button[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        justify-self: center;
        padding: 0;
    }

    .port-editor-hint[b-k1qtayfp9h] {
        display: block;
        margin-top: 8px;
    }

    .port-editor-footer[b-k1qtayfp9h] {
        margin-top: 10px;
    }

    .compact-header[b-k1qtayfp9h] {
        margin-bottom: 12px;
    }

    .resource-table-wrapper[b-k1qtayfp9h] {
        overflow-x: auto;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        background: #fff;
    }

    .resource-table[b-k1qtayfp9h] {
        width: 100%;
        min-width: 860px;
        border-collapse: collapse;
        font-size: 13px;
    }

    .resource-table th[b-k1qtayfp9h] {
        text-align: left;
        padding: 10px 12px;
        color: #4b5563;
        background: #f9fafb;
        border-bottom: 1px solid #e5e7eb;
        font-weight: 600;
        white-space: nowrap;
    }

    .resource-table td[b-k1qtayfp9h] {
        padding: 12px;
        border-bottom: 1px solid #eef2f7;
        color: #374151;
        vertical-align: middle;
    }

    .resource-table tbody tr[b-k1qtayfp9h] {
        cursor: pointer;
        transition: background 0.15s, box-shadow 0.15s;
    }

    .resource-table tbody tr:hover[b-k1qtayfp9h] {
        background: #f8fafc;
    }

    .resource-table tbody tr.selected[b-k1qtayfp9h] {
        background: #eff6ff;
        box-shadow: inset 3px 0 0 #2563eb;
    }

    .resource-table tbody tr.custom[b-k1qtayfp9h] {
        background-image: linear-gradient(90deg, rgba(245, 158, 11, 0.05), transparent);
    }

    .resource-table tbody tr:last-child td[b-k1qtayfp9h] {
        border-bottom: none;
    }

    .select-col[b-k1qtayfp9h] {
        width: 68px;
        text-align: center;
    }

    .resource-radio[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 20px;
        height: 20px;
        border: 1px solid #cbd5e1;
        border-radius: 50%;
        color: #fff;
        background: #fff;
        font-size: 10px;
    }

    .resource-radio.checked[b-k1qtayfp9h] {
        border-color: #2563eb;
        background: #2563eb;
    }

    .resource-name-row[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 4px;
    }

    .resource-chip[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 3px 8px;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 600;
        white-space: nowrap;
    }

    .resource-chip.gpu[b-k1qtayfp9h] {
        color: #1d4ed8;
        background: #dbeafe;
    }

    .resource-chip.cpu-only[b-k1qtayfp9h] {
        color: #166534;
        background: #dcfce7;
    }

    .resource-scene[b-k1qtayfp9h] {
        min-width: 220px;
        line-height: 1.5;
    }

    .template-name[b-k1qtayfp9h] {
        font-size: 14px;
        font-weight: 600;
        color: #111827;
    }

    .template-tag[b-k1qtayfp9h] {
        font-size: 11px;
        color: #92400e;
        background: #fef3c7;
        border-radius: 999px;
        padding: 2px 8px;
    }

    .template-description[b-k1qtayfp9h] {
        margin: 0;
        font-size: 12px;
        color: #6b7280;
        line-height: 1.5;
    }

    .custom-resource-editor[b-k1qtayfp9h] {
        margin-top: 16px;
        padding: 16px;
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
    }

    .details-panel[b-k1qtayfp9h] {
        margin-top: 20px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        overflow: hidden;
        background: #fff;
    }

    .details-panel summary[b-k1qtayfp9h] {
        list-style: none;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        padding: 14px 16px;
        background: #f9fafb;
        font-size: 14px;
        font-weight: 600;
        color: #111827;
    }

    .details-panel summary[b-k1qtayfp9h]::-webkit-details-marker {
        display: none;
    }

    .details-hint[b-k1qtayfp9h] {
        font-size: 12px;
        font-weight: 400;
        color: #6b7280;
    }

    .details-content[b-k1qtayfp9h] {
        padding: 16px;
        border-top: 1px solid #e5e7eb;
    }

    .advanced-block-first[b-k1qtayfp9h] {
        margin-top: 0;
        padding-top: 0;
        border-top: none;
    }

    /* 三列并排选择器：内容区不足时优先两列，模型文件占满一行避免被侧栏挤到不可见位置。 */
    .selector-columns[b-k1qtayfp9h] {
        container-type: inline-size;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
        align-items: start;
    }

    .selector-column[b-k1qtayfp9h] {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    @container (max-width: 1180px) {
        .selector-columns[b-k1qtayfp9h] {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .selector-column:last-child[b-k1qtayfp9h] {
            grid-column: 1 / -1;
        }
    }

    @container (max-width: 680px) {
        .selector-columns[b-k1qtayfp9h] {
            grid-template-columns: 1fr;
        }

        .selector-column:last-child[b-k1qtayfp9h] {
            grid-column: auto;
        }
    }

    .advanced-block + .advanced-block[b-k1qtayfp9h] {
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px dashed #e5e7eb;
    }

    .custom-resource-editor-inline[b-k1qtayfp9h] {
        margin-top: 12px;
    }

    .env-list[b-k1qtayfp9h] {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-bottom: 12px;
    }

    .env-item[b-k1qtayfp9h] {
        display: flex;
        gap: 8px;
        align-items: center;
    }

    .env-key[b-k1qtayfp9h] {
        width: 160px;
        flex-shrink: 0;
    }

    .env-value[b-k1qtayfp9h] {
        flex: 1;
    }

    .form-actions[b-k1qtayfp9h] {
        padding: 20px 24px;
        display: flex;
        gap: 12px;
        justify-content: flex-end;
        background: #f9fafb;
        border-top: 1px solid #e5e7eb;
    }
    .alert-success[b-k1qtayfp9h], .alert-error[b-k1qtayfp9h] {
        margin: 16px 24px;
        padding: 12px 16px;
        border-radius: 6px;
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 14px;
    }

    .alert-success[b-k1qtayfp9h] {
        background: #dcfce7;
        border: 1px solid #86efac;
        color: #166534;
    }

    .alert-error[b-k1qtayfp9h] {
        background: #fee2e2;
        border: 1px solid #fecaca;
        color: #991b1b;
    }

    .snapshot-badge[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 4px 12px;
        background: #e8f5e9;
        color: #2e7d32;
        border-radius: 16px;
        font-size: 0.85rem;
        font-weight: 500;
        margin-left: 12px;
    }

    .gpu-device-grid[b-k1qtayfp9h] {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 8px;
        margin-bottom: 8px;
    }

    .gpu-device-item[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        cursor: pointer;
        font-size: 13px;
        color: #374151;
        transition: all 0.15s;
    }

    .gpu-device-item:hover[b-k1qtayfp9h] {
        border-color: #9ca3af;
        background: #f9fafb;
    }

    .gpu-device-item.selected[b-k1qtayfp9h] {
        background: #eff6ff;
        border-color: #2563eb;
        color: #1d4ed8;
    }

    .gpu-device-item.excluded[b-k1qtayfp9h] {
        background: #fef2f2;
        border-color: #ef4444;
        color: #991b1b;
    }

    .gpu-uuid-hint[b-k1qtayfp9h] {
        font-family: monospace;
        font-size: 11px;
        color: #9ca3af;
    }

    .debug-modal-backdrop[b-k1qtayfp9h] {
        position: fixed;
        inset: 0;
        z-index: 1200;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px;
        background: rgba(15, 23, 42, 0.42);
    }

    .debug-modal[b-k1qtayfp9h] {
        width: min(720px, 100%);
        max-height: calc(100vh - 48px);
        overflow: auto;
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
    }

    .debug-modal-header[b-k1qtayfp9h] {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 16px;
        padding: 22px 24px 16px;
        border-bottom: 1px solid #e5e7eb;
    }

    .debug-modal-header h3[b-k1qtayfp9h],
    .creating-modal h3[b-k1qtayfp9h] {
        margin: 0;
        color: #111827;
        font-size: 18px;
        font-weight: 600;
    }

    .debug-modal-header p[b-k1qtayfp9h],
    .creating-modal p[b-k1qtayfp9h] {
        margin: 6px 0 0;
        color: #6b7280;
        font-size: 13px;
    }

    .debug-modal-close[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        color: #6b7280;
        background: #fff;
        cursor: pointer;
    }

    .debug-modal-close:hover:not(:disabled)[b-k1qtayfp9h] {
        color: #111827;
        background: #f9fafb;
    }

    .confirm-summary-grid[b-k1qtayfp9h] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding: 20px 24px;
    }

    .confirm-summary-item[b-k1qtayfp9h] {
        min-width: 0;
        padding: 12px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        background: #f9fafb;
    }

    .confirm-summary-item.wide[b-k1qtayfp9h] {
        grid-column: 1 / -1;
    }

    .confirm-summary-item span[b-k1qtayfp9h] {
        display: block;
        margin-bottom: 4px;
        color: #6b7280;
        font-size: 12px;
    }

    .confirm-summary-item strong[b-k1qtayfp9h] {
        display: block;
        overflow: hidden;
        color: #111827;
        font-size: 14px;
        font-weight: 600;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .cpu-confirm-note[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0 24px 20px;
        padding: 10px 12px;
        color: #166534;
        background: #f0fdf4;
        border: 1px solid #bbf7d0;
        border-radius: 8px;
        font-size: 13px;
    }

    .debug-modal-actions[b-k1qtayfp9h] {
        display: flex;
        justify-content: flex-end;
        gap: 12px;
        padding: 16px 24px 22px;
        border-top: 1px solid #e5e7eb;
        background: #f9fafb;
    }

    .creating-modal[b-k1qtayfp9h] {
        width: min(420px, 100%);
        padding: 32px 28px;
        text-align: center;
    }

    .creating-spinner[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 56px;
        height: 56px;
        margin-bottom: 16px;
        border-radius: 50%;
        color: #2563eb;
        background: #eff6ff;
        font-size: 24px;
    }

    .creating-resource-pills[b-k1qtayfp9h] {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 18px;
    }

    .creating-resource-pills span[b-k1qtayfp9h] {
        padding: 5px 10px;
        color: #1f2937;
        background: #f3f4f6;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 600;
    }

    @media (max-width: 768px) {
        .form-grid[b-k1qtayfp9h] {
            grid-template-columns: 1fr;
        }

        .basic-top-row[b-k1qtayfp9h] {
            grid-template-columns: 1fr;
        }

        .page-header[b-k1qtayfp9h],
        .section-header-row[b-k1qtayfp9h],
        .subsection-header[b-k1qtayfp9h],

        .details-panel summary[b-k1qtayfp9h],
        .form-actions[b-k1qtayfp9h] {
            flex-direction: column;
            align-items: stretch;
        }

        .form-actions[b-k1qtayfp9h]  .ant-btn {
            width: 100%;
        }

        .env-item[b-k1qtayfp9h] {
            flex-direction: column;
            align-items: stretch;
        }

        .env-key[b-k1qtayfp9h] {
            width: 100%;
        }

        .confirm-summary-grid[b-k1qtayfp9h] {
            grid-template-columns: 1fr;
        }

        .debug-modal-actions[b-k1qtayfp9h] {
            flex-direction: column-reverse;
        }

        .debug-modal-actions[b-k1qtayfp9h]  .ant-btn {
            width: 100%;
        }
    }

    .inline-upload-trigger[b-k1qtayfp9h] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-height: 100px;
        border: 2px dashed #93c5fd;
        border-radius: 8px;
        background: #f8fbff;
        cursor: pointer;
        transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
    }

    .inline-upload-trigger:hover[b-k1qtayfp9h] {
        border-color: #2563eb;
        background: #eff6ff;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
    }

    .inline-upload-trigger.disabled[b-k1qtayfp9h] {
        cursor: not-allowed;
        opacity: 0.55;
        background: #f9fafb;
        border-color: #d1d5db;
    }

    .inline-upload-trigger i[b-k1qtayfp9h] {
        font-size: 22px;
        color: #2563eb;
    }

    .inline-upload-trigger span[b-k1qtayfp9h] {
        font-size: 14px;
        font-weight: 500;
        color: #111827;
    }

    .inline-upload-trigger small[b-k1qtayfp9h] {
        font-size: 12px;
        color: #9ca3af;
    }

    .file-list[b-k1qtayfp9h] {
        margin-top: 8px;
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .file-list-more[b-k1qtayfp9h] {
        margin-top: 6px;
        font-size: 12px;
        color: #9ca3af;
        text-align: center;
    }

    .file-item[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
    }

    .file-item i[b-k1qtayfp9h] {
        color: #6b7280;
        flex-shrink: 0;
        font-size: 14px;
    }

    .file-info[b-k1qtayfp9h] {
        flex: 1;
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    .file-name[b-k1qtayfp9h] {
        font-size: 13px;
        color: #111827;
        font-family: monospace;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .file-size[b-k1qtayfp9h] {
        font-size: 12px;
        color: #9ca3af;
        flex-shrink: 0;
    }

    .file-remove-btn[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        border: none;
        border-radius: 4px;
        background: transparent;
        color: #9ca3af;
        cursor: pointer;
        font-size: 12px;
        flex-shrink: 0;
        transition: background 0.15s, color 0.15s;
    }

    .file-remove-btn:hover[b-k1qtayfp9h] {
        background: #fee2e2;
        color: #ef4444;
    }

    .loading-spinner-small[b-k1qtayfp9h] {
        width: 16px;
        height: 16px;
        border: 2px solid #93c5fd;
        border-top-color: #2563eb;
        border-radius: 50%;
        flex-shrink: 0;
    }


    .form-card[b-k1qtayfp9h] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        overflow: hidden;
    }

    .form-section[b-k1qtayfp9h] {
        padding: 24px;
        border-bottom: 1px solid #e5e7eb;
    }

    .form-section:last-of-type[b-k1qtayfp9h] {
        border-bottom: none;
    }

    .collapsible-section .section-header[b-k1qtayfp9h] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        cursor: pointer;
        padding: 10px 12px;
        margin-bottom: 0;
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        transition: all 0.15s;
    }

    .collapsible-section .section-header:hover[b-k1qtayfp9h] {
        background: #f3f4f6;
        border-color: #d1d5db;
    }

    .collapsible-section .section-header .section-title[b-k1qtayfp9h] {
        margin: 0;
        padding: 6px 0;
    }

    .collapsible-section .section-header .section-badge[b-k1qtayfp9h] {
        margin-right: auto;
    }

    .section-title[b-k1qtayfp9h] {
        font-size: 15px;
        font-weight: 600;
        color: #111827;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .section-title i[b-k1qtayfp9h] {
        color: #2563eb;
    }

    .section-badge[b-k1qtayfp9h] {
        display: inline-flex;
        align-items: center;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 11px;
        font-weight: 500;
        background: #dbeafe;
        color: #1d4ed8;
    }

    .section-badge.optional[b-k1qtayfp9h] {
        background: #f3f4f6;
        color: #6b7280;
    }

    .collapse-toggle[b-k1qtayfp9h] {
        color: #6b7280;
        font-size: 12px;
        display: flex;
        align-items: center;
        padding: 2px 4px;
        transition: all 0.15s;
    }

    .collapse-toggle:hover[b-k1qtayfp9h] {
        color: #2563eb;
    }

    .collapse-content[b-k1qtayfp9h] {
        padding: 16px;
        border: 1px solid #e5e7eb;
        border-top: none;
        border-radius: 0 0 6px 6px;
        background: white;
        animation: fadeIn 0.2s ease;
    }
/* /Components/Pages/DebugManagement/DebugTaskDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-zz3zdbf1ff] {
        min-height: 80vh;
        background: #f9fafb;
        padding: 24px;
        height: 100%;
    }

    .main-content[b-zz3zdbf1ff] {
        margin: 0 auto;
    }

    /* 页面头部 */
    .page-header[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
        flex-wrap: wrap;
        gap: 12px;
    }

    .header-left[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
    }

    .back-link[b-zz3zdbf1ff] {
        color: #2563eb;
        text-decoration: none;
        font-size: 14px;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .back-link:hover[b-zz3zdbf1ff] {
        text-decoration: underline;
    }

    .page-title[b-zz3zdbf1ff] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0;
    }

    .header-right[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    /* 按钮 */
    .btn[b-zz3zdbf1ff] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 16px;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        border: 1px solid transparent;
        transition: all 0.15s;
    }

    .btn:disabled[b-zz3zdbf1ff] {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .btn-primary[b-zz3zdbf1ff] {
        background: #2563eb;
        color: white;
    }

    .btn-primary:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #1d4ed8;
    }

    .btn-default[b-zz3zdbf1ff] {
        background: white;
        color: #374151;
        border-color: #d1d5db;
    }

    .btn-default:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #f9fafb;
    }

    .btn-success[b-zz3zdbf1ff] {
        background: #16a34a;
        color: white;
    }

    .btn-success:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #15803d;
    }

    .btn-warning[b-zz3zdbf1ff] {
        background: #d97706;
        color: white;
    }

    .btn-warning:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #b45309;
    }

    .btn-info[b-zz3zdbf1ff] {
        background: #0891b2;
        color: white;
    }

    .btn-info:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #0e7490;
    }

    /* 状态标签 */
    .status-tag[b-zz3zdbf1ff] {
        display: inline-block;
        padding: 4px 10px;
        border-radius: 4px;
        font-size: 12px;
        font-weight: 500;
    }

    .status-pending[b-zz3zdbf1ff] { background: #fef3c7; color: #d97706; }
    .status-creating[b-zz3zdbf1ff] { background: #dbeafe; color: #2563eb; }
    .status-running[b-zz3zdbf1ff] { background: #dcfce7; color: #16a34a; }
    .status-stopping[b-zz3zdbf1ff] { background: #fef3c7; color: #d97706; }
    .status-stopped[b-zz3zdbf1ff] { background: #f1f5f9; color: #64748b; }
    .status-failed[b-zz3zdbf1ff] { background: #fee2e2; color: #ef4444; }
    .status-expired[b-zz3zdbf1ff] { background: #fef3c7; color: #d97706; }

    /* 信息卡片 */
    .info-card[b-zz3zdbf1ff] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 20px;
        margin-bottom: 16px;
    }

    .info-grid[b-zz3zdbf1ff] {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: 16px;
    }

    .info-item[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .info-label[b-zz3zdbf1ff] {
        font-size: 12px;
        font-weight: 500;
        color: #6b7280;
    }

    .info-value[b-zz3zdbf1ff] {
        font-size: 14px;
        color: #111827;
    }

    .info-description[b-zz3zdbf1ff] {
        margin-top: 16px;
        padding-top: 16px;
        border-top: 1px solid #e5e7eb;
    }

    .code-text[b-zz3zdbf1ff] {
        font-family: monospace;
        font-size: 13px;
        background: #f3f4f6;
        padding: 2px 6px;
        border-radius: 4px;
        word-break: break-all;
    }

    .code-small[b-zz3zdbf1ff] {
        font-family: monospace;
        font-size: 12px;
        background: #f3f4f6;
        padding: 2px 4px;
        border-radius: 2px;
    }

    .alert-warning[b-zz3zdbf1ff] {
        margin-top: 16px;
        padding: 12px 16px;
        background: #fef3c7;
        border: 1px solid #fcd34d;
        border-radius: 6px;
        display: flex;
        align-items: center;
        gap: 8px;
        color: #92400e;
        font-size: 14px;
    }

    .jupyter-access-card[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 16px;
        padding: 18px 20px;
        margin-bottom: 16px;
        border: 1px solid #bfdbfe;
        border-radius: 10px;
        background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
    }

    .jupyter-access-main[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 14px;
        min-width: 0;
    }

    .jupyter-access-icon[b-zz3zdbf1ff] {
        width: 46px;
        height: 46px;
        border-radius: 12px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #1d4ed8;
        background: #dbeafe;
        flex-shrink: 0;
        font-size: 18px;
    }

    .jupyter-access-card h3[b-zz3zdbf1ff] {
        margin: 0;
        font-size: 16px;
        font-weight: 600;
        color: #111827;
    }

    .jupyter-access-card p[b-zz3zdbf1ff] {
        margin: 6px 0 0 0;
        color: #4b5563;
        font-size: 13px;
        line-height: 1.6;
    }

    .jupyter-access-btn[b-zz3zdbf1ff] {
        flex-shrink: 0;
        min-width: 150px;
    }

    /* 标签页导航 */
    .tab-navigation[b-zz3zdbf1ff] {
        display: flex;
        gap: 4px;
        background: white;
        padding: 4px;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        margin-bottom: 16px;
    }

    .tab-btn[b-zz3zdbf1ff] {
        padding: 8px 16px;
        border: none;
        background: transparent;
        color: #6b7280;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        border-radius: 6px;
        transition: all 0.15s;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .tab-btn:hover[b-zz3zdbf1ff] {
        background: #f3f4f6;
        color: #374151;
    }

    .tab-btn.active[b-zz3zdbf1ff] {
        background: #2563eb;
        color: white;
    }

    /* 标签页内容 */
    .tab-content[b-zz3zdbf1ff] {
        background: transparent;
        border: none;
        border-radius: 0;
        padding: 0;
    }

    /* 终端区域 */
    .terminal-section[b-zz3zdbf1ff] {
        min-height: 500px;
    }

    .terminal-toolbar[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 12px;
    }

    .connection-status[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 14px;
        font-weight: 500;
    }

    .connection-status.connected[b-zz3zdbf1ff] {
        color: #16a34a;
    }

    .connection-status.disconnected[b-zz3zdbf1ff] {
        color: #6b7280;
    }

    .connection-hint[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 14px;
        color: #d97706;
        padding: 8px 12px;
        background: #fef3c7;
        border-radius: 6px;
    }

    .connection-hint.error[b-zz3zdbf1ff] {
        color: #b91c1c;
        background: #fee2e2;
        margin-bottom: 12px;
    }

    .terminal-container[b-zz3zdbf1ff] {
        height: 520px;
        background: #1e1e1e;
        border-radius: 8px;
        padding: 12px;
        box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    /* 文件管理区域 */
    .files-section[b-zz3zdbf1ff] {
        min-height: 400px;
    }

    .files-toolbar[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 16px;
        flex-wrap: wrap;
    }

    .files-current-path[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 12px;
        flex-wrap: wrap;
    }

    .path-input-group[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 8px;
        flex: 1;
        max-width: 400px;
        background: white;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        padding: 0 12px;
    }

    .path-input[b-zz3zdbf1ff] {
        flex: 1;
        border: none;
        outline: none;
        padding: 8px 0;
        font-size: 14px;
        font-family: monospace;
    }

    .file-message[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 12px;
        padding: 10px 12px;
        border-radius: 6px;
        font-size: 13px;
    }

    .file-message.success[b-zz3zdbf1ff] {
        background: #ecfdf5;
        border: 1px solid #a7f3d0;
        color: #047857;
    }

    .file-message.error[b-zz3zdbf1ff] {
        background: #fef2f2;
        border: 1px solid #fecaca;
        color: #b91c1c;
    }

    .import-progress[b-zz3zdbf1ff] {
        margin-bottom: 16px;
        padding: 12px;
        border: 1px solid #bfdbfe;
        border-radius: 8px;
        background: #eff6ff;
        color: #1e40af;
    }

    .import-progress-header[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        font-size: 13px;
        font-weight: 600;
    }

    .import-progress-count[b-zz3zdbf1ff] {
        color: #2563eb;
        white-space: nowrap;
    }

    .import-progress-bar[b-zz3zdbf1ff] {
        height: 6px;
        margin-top: 10px;
        overflow: hidden;
        border-radius: 999px;
        background: #dbeafe;
    }

    .import-progress-bar-value[b-zz3zdbf1ff] {
        width: 45%;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg, #2563eb, #60a5fa, #2563eb);
        background-size: 200% 100%;
        animation: import-progress-b-zz3zdbf1ff 1.1s linear infinite;
    }

    /* 有 total 时切换到"确定进度"模式：宽度按百分比控制，不再动画 */
    .import-progress-bar.determinate .import-progress-bar-value[b-zz3zdbf1ff] {
        animation: none;
        background: #2563eb;
        transition: width 0.2s ease-out;
    }

    .import-progress-percent[b-zz3zdbf1ff] {
        margin-top: 4px;
        font-size: 12px;
        font-weight: 600;
        color: #2563eb;
        display: flex;
        justify-content: space-between;
        gap: 8px;
    }

    .import-progress-current[b-zz3zdbf1ff] {
        margin-top: 6px;
        font-size: 12px;
        color: #374151;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .import-progress-current i[b-zz3zdbf1ff] {
        margin-right: 4px;
        color: #6b7280;
    }

    .import-progress-current-name[b-zz3zdbf1ff] {
        font-family: monospace;
    }

    .import-progress-current-size[b-zz3zdbf1ff] {
        color: #6b7280;
        margin-left: 2px;
    }

    .import-progress-phase[b-zz3zdbf1ff] {
        color: #2563eb;
        margin-left: 6px;
    }

    .import-progress-hint[b-zz3zdbf1ff] {
        margin: 8px 0 0;
        font-size: 12px;
        color: #2563eb;
    }

    @keyframes import-progress-b-zz3zdbf1ff {
        from { transform: translateX(-100%); background-position: 0 0; }
        to { transform: translateX(240%); background-position: 200% 0; }
    }

    .file-name[b-zz3zdbf1ff] {
        font-family: monospace;
        font-size: 13px;
    }

    .directory-row[b-zz3zdbf1ff] {
        background: #fafafa;
    }

    .file-row-clickable[b-zz3zdbf1ff] {
        cursor: pointer;
    }

    .file-row-clickable:hover[b-zz3zdbf1ff] {
        background: #eff6ff !important;
    }

    .clickable-file-name[b-zz3zdbf1ff] {
        color: #1d4ed8;
        font-weight: 600;
    }

    .file-enter-hint[b-zz3zdbf1ff] {
        display: inline-flex;
        align-items: center;
        margin-left: 8px;
        color: #6b7280;
        font-size: 12px;
    }

    /* 镜像快照 */
    .snapshot-status-pending[b-zz3zdbf1ff] { background: #fef3c7; color: #d97706; }
    .snapshot-status-running[b-zz3zdbf1ff] { background: #dbeafe; color: #2563eb; }
    .snapshot-status-succeeded[b-zz3zdbf1ff] { background: #dcfce7; color: #16a34a; }
    .snapshot-status-failed[b-zz3zdbf1ff] { background: #fee2e2; color: #ef4444; }

    /* 监控指标 */
    .metrics-section[b-zz3zdbf1ff] {
        min-height: 400px;
    }

    .metrics-grid[b-zz3zdbf1ff] {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 16px;
        margin-bottom: 20px;
    }

    .metric-card[b-zz3zdbf1ff] {
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 16px;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .metric-icon[b-zz3zdbf1ff] {
        width: 48px;
        height: 48px;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        color: white;
    }

    .metric-icon.cpu[b-zz3zdbf1ff] { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
    .metric-icon.memory[b-zz3zdbf1ff] { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
    .metric-icon.gpu[b-zz3zdbf1ff] { background: linear-gradient(135deg, #4ade80 0%, #16a34a 100%); }
    .metric-icon.power[b-zz3zdbf1ff] { background: linear-gradient(135deg, #fbbf24 0%, #d97706 100%); }
    .metric-icon.temp[b-zz3zdbf1ff] { background: linear-gradient(135deg, #fb923c 0%, #ea580c 100%); }

    .metric-info[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .metric-label[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #6b7280;
    }

    .metric-value[b-zz3zdbf1ff] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
    }

    .metrics-footer[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 8px;
        color: #9ca3af;
        font-size: 13px;
        padding-top: 16px;
        border-top: 1px solid #e5e7eb;
    }

    /* 卡片 */
    .card[b-zz3zdbf1ff] {
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        overflow: hidden;
        margin-bottom: 16px;
    }

    .card-header[b-zz3zdbf1ff] {
        padding: 12px 20px;
        border-bottom: 1px solid #e5e7eb;
        font-size: 14px;
        font-weight: 600;
        color: #111827;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .card-header .header-row[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .card-body[b-zz3zdbf1ff] {
        padding: 16px 20px;
    }

    /* 表格 */
    .data-table[b-zz3zdbf1ff] {
        width: 100%;
        border-collapse: collapse;
    }

    .data-table th[b-zz3zdbf1ff] {
        text-align: left;
        padding: 12px 16px;
        background: #f9fafb;
        font-size: 12px;
        font-weight: 500;
        color: #6b7280;
        text-transform: uppercase;
        border-bottom: 1px solid #e5e7eb;
    }

    .data-table td[b-zz3zdbf1ff] {
        padding: 12px 16px;
        font-size: 14px;
        color: #111827;
        border-bottom: 1px solid #f3f4f6;
        vertical-align: middle;
    }

    .data-table tbody tr:hover[b-zz3zdbf1ff] {
        background: #f9fafb;
    }

    /* 加载状态 */
    .loading-container[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 300px;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
    }

    .loading-container.small[b-zz3zdbf1ff] {
        min-height: 200px;
    }

    .loading-spinner[b-zz3zdbf1ff] {
        width: 40px;
        height: 40px;
        border: 3px solid #e5e7eb;
        border-top-color: #2563eb;
        border-radius: 50%;
        animation: spin-b-zz3zdbf1ff 1s linear infinite;
    }

    @keyframes spin-b-zz3zdbf1ff {
        to { transform: rotate(360deg); }
    }

    .loading-text[b-zz3zdbf1ff] {
        margin-top: 16px;
        color: #6b7280;
        font-size: 14px;
    }

    /* 空状态 */
    .empty-state[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 200px;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        padding: 40px;
    }

    .empty-state.small[b-zz3zdbf1ff] {
        min-height: 150px;
        padding: 24px;
    }

    .empty-icon[b-zz3zdbf1ff] {
        font-size: 36px;
        color: #d1d5db;
        margin-bottom: 12px;
    }

    .empty-title[b-zz3zdbf1ff] {
        font-size: 16px;
        font-weight: 600;
        color: #111827;
        margin: 0 0 8px 0;
    }

    .empty-desc[b-zz3zdbf1ff] {
        font-size: 14px;
        color: #6b7280;
        margin: 0;
    }

    /* 模态框 */
    .modal-overlay[b-zz3zdbf1ff] {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 1050;
        padding: 20px;
        overflow: auto;
    }

    .modal-container[b-zz3zdbf1ff] {
        background: white;
        border-radius: 12px;
        width: 100%;
        max-width: 420px;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    .modal-container.wide[b-zz3zdbf1ff] {
        max-width: 500px;
    }

    .modal-header[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 16px 20px;
        border-bottom: 1px solid #e5e7eb;
    }

    .modal-title[b-zz3zdbf1ff] {
        font-size: 16px;
        font-weight: 600;
        color: #111827;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .modal-close[b-zz3zdbf1ff] {
        background: none;
        border: none;
        color: #6b7280;
        cursor: pointer;
        padding: 4px;
        font-size: 16px;
    }

    .modal-close:hover[b-zz3zdbf1ff] {
        color: #374151;
    }

    .modal-body[b-zz3zdbf1ff] {
        padding: 20px;
    }

    .modal-footer[b-zz3zdbf1ff] {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        padding: 16px 20px;
        border-top: 1px solid #e5e7eb;
    }

    .form-group[b-zz3zdbf1ff] {
        margin-bottom: 16px;
    }

    .form-group:last-child[b-zz3zdbf1ff] {
        margin-bottom: 0;
    }

    .form-label[b-zz3zdbf1ff] {
        display: block;
        font-size: 14px;
        font-weight: 500;
        color: #374151;
        margin-bottom: 6px;
    }

    .form-label-note[b-zz3zdbf1ff] {
        color: #9ca3af;
        font-weight: 400;
    }

    .form-input[b-zz3zdbf1ff] {
        width: 100%;
        padding: 10px 12px;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        font-size: 14px;
        outline: none;
        transition: border-color 0.15s;
        box-sizing: border-box;
    }

    .form-input:focus[b-zz3zdbf1ff] {
        border-color: #2563eb;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
    }

    .form-hint[b-zz3zdbf1ff] {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        padding: 12px;
        background: #f0f9ff;
        border: 1px solid #bae6fd;
        border-radius: 6px;
        font-size: 13px;
        color: #0369a1;
        margin-top: 12px;
    }

    .snapshot-modal-overlay[b-zz3zdbf1ff] {
        align-items: center;
    }

    .snapshot-modal[b-zz3zdbf1ff] {
        max-width: min(1120px, calc(100vw - 40px));
        max-height: calc(100vh - 40px);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .snapshot-modal-body[b-zz3zdbf1ff] {
        flex: 1;
        min-height: 0;
        overflow: auto;
    }

    .snapshot-modal-body-progress[b-zz3zdbf1ff] {
        overflow: auto;
    }

    .snapshot-modal-layout[b-zz3zdbf1ff] {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
        gap: 16px;
        align-items: start;
        min-width: 0;
    }

    .snapshot-modal-layout-progress[b-zz3zdbf1ff] {
        grid-template-columns: minmax(0, 0.9fr) minmax(340px, 1.1fr);
    }

    .snapshot-pane[b-zz3zdbf1ff] {
        min-width: 0;
    }

    .snapshot-pane-main[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .snapshot-pane-side[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 12px;
        min-width: 0;
    }

    .snapshot-readonly-field[b-zz3zdbf1ff] {
        padding: 10px 12px;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        background: #f9fafb;
        color: #374151;
        font-family: monospace;
        word-break: break-all;
        overflow-x: auto;
        white-space: nowrap;
    }

    .snapshot-readme-group[b-zz3zdbf1ff] {
        min-width: 0;
    }

    .snapshot-textarea[b-zz3zdbf1ff] {
        min-height: 120px;
        resize: vertical;
        font-family: monospace;
    }

    .snapshot-hint[b-zz3zdbf1ff] {
        margin-top: 0;
    }

    .snapshot-hint-loading[b-zz3zdbf1ff] {
        background: #fffbeb;
        border-color: #fcd34d;
        color: #92400e;
    }

    .snapshot-ack-row[b-zz3zdbf1ff] {
        margin-top: 0;
    }

    .snapshot-alert[b-zz3zdbf1ff] {
        padding: 10px 14px;
        border-radius: 6px;
        font-size: 13px;
        display: flex;
        align-items: flex-start;
        gap: 8px;
        word-break: break-word;
    }

    .snapshot-alert.is-error[b-zz3zdbf1ff] {
        background: #fef2f2;
        border: 1px solid #fecaca;
        color: #b91c1c;
    }

    .snapshot-alert.is-success[b-zz3zdbf1ff] {
        background: #f0fdf4;
        border: 1px solid #bbf7d0;
        color: #16a34a;
    }

    .snapshot-running-text[b-zz3zdbf1ff] {
        font-size: 13px;
        color: #6b7280;
    }

    .snapshot-progress-card[b-zz3zdbf1ff] {
        position: relative;
    }

    .snapshot-ref-card[b-zz3zdbf1ff] {
        padding: 12px 14px;
        background: #f9fafb;
        border-radius: 6px;
        border: 1px solid #e5e7eb;
    }

    .snapshot-ref-label[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #6b7280;
        margin-bottom: 4px;
    }

    .snapshot-ref-value[b-zz3zdbf1ff] {
        font-size: 13px;
        color: #111827;
        white-space: nowrap;
        overflow-x: auto;
        display: block;
    }

    .snapshot-progress-wrap[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .snapshot-progress-track[b-zz3zdbf1ff] {
        margin-top: 0;
    }

    .snapshot-progress-summary[b-zz3zdbf1ff] {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        margin-top: 0;
        font-size: 12px;
        color: #6b7280;
        word-break: break-word;
    }

    .snapshot-log-section[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .snapshot-log-toggle[b-zz3zdbf1ff] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        cursor: pointer;
        font-size: 13px;
        color: #6b7280;
        user-select: none;
    }

    .snapshot-log-box[b-zz3zdbf1ff] {
        margin-top: 0;
    }

    .snapshot-size-summary[b-zz3zdbf1ff] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding: 12px;
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
    }

    .snapshot-size-summary div[b-zz3zdbf1ff] {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .snapshot-size-summary span[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #6b7280;
    }

    .snapshot-size-summary strong[b-zz3zdbf1ff] {
        font-size: 13px;
        color: #111827;
        word-break: break-all;
    }

    .snapshot-warnings[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    @media (max-width: 960px) {
        .snapshot-modal-layout[b-zz3zdbf1ff] {
            grid-template-columns: 1fr;
        }

        .snapshot-modal[b-zz3zdbf1ff] {
            max-width: calc(100vw - 24px);
            max-height: calc(100vh - 24px);
        }
    }

    @media (max-width: 640px) {
        .snapshot-modal-layout[b-zz3zdbf1ff] {
            gap: 12px;
        }

        .snapshot-size-summary[b-zz3zdbf1ff] {
            grid-template-columns: 1fr;
        }

        .snapshot-progress-summary[b-zz3zdbf1ff] {
            flex-direction: column;
            gap: 4px;
        }
    }

    /* 日志区域 */
    .logs-section[b-zz3zdbf1ff] {
        min-height: 400px;
    }

    .logs-toolbar[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 12px;
        flex-wrap: wrap;
    }

    .logs-pod-info[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .logs-pod-name[b-zz3zdbf1ff] {
        font-family: monospace;
        font-size: 13px;
        color: #374151;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .logs-controls[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .logs-label[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #6b7280;
        font-weight: 500;
    }

    .logs-tail-select[b-zz3zdbf1ff] {
        padding: 4px 8px;
        font-size: 13px;
        min-width: 100px;
    }

    .btn-sm[b-zz3zdbf1ff] {
        padding: 4px 10px;
        font-size: 13px;
    }

    .logs-loading[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 16px;
        color: #6b7280;
        font-size: 14px;
    }

    .loading-spinner.small[b-zz3zdbf1ff] {
        width: 20px;
        height: 20px;
        border-width: 2px;
    }

    .logs-empty[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 200px;
        color: #9ca3af;
        font-size: 14px;
        gap: 8px;
    }

    .logs-empty-icon[b-zz3zdbf1ff] {
        font-size: 36px;
        color: #d1d5db;
    }

    .log-toolbar[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 16px;
    }

    .log-toggle[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 13px;
        color: #595959;
        cursor: pointer;
        margin: 0;
    }

    .log-toggle.disabled[b-zz3zdbf1ff] {
        color: #bfbfbf;
        cursor: not-allowed;
    }

    .log-toggle.disabled input[b-zz3zdbf1ff] {
        cursor: not-allowed;
    }

    .log-content[b-zz3zdbf1ff] {
        background: #1f2937;
        border-radius: 6px;
        padding: 12px;
        max-height: 500px;
        overflow-y: auto;
    }

    .log-line[b-zz3zdbf1ff] {
        font-family: 'Consolas', 'Monaco', monospace;
        font-size: 12px;
        color: #e5e7eb;
        line-height: 1.6;
        white-space: pre-wrap;
        word-break: break-all;
    }

    .log-empty[b-zz3zdbf1ff] {
        text-align: center;
        color: #6b7280;
        padding: 40px;
        font-size: 14px;
    }

    .metrics-loading[b-zz3zdbf1ff] {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 40px;
        color: #6b7280;
    }

    .no-metrics[b-zz3zdbf1ff] {
        text-align: center;
        padding: 60px 20px;
        color: #6b7280;
    }

    .no-metrics i[b-zz3zdbf1ff] {
        font-size: 48px;
        margin-bottom: 16px;
        color: #d1d5db;
    }

    .no-metrics p[b-zz3zdbf1ff] {
        font-size: 14px;
        margin: 0;
    }

    .no-metrics .hint[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #9ca3af;
        margin-top: 8px;
    }

    .events-list[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .event-item[b-zz3zdbf1ff] {
        display: grid;
        grid-template-columns: 150px 70px 100px 1fr;
        gap: 12px;
        padding: 10px 12px;
        background: #f9fafb;
        border-radius: 6px;
        font-size: 13px;
    }

    .event-item.event-warning[b-zz3zdbf1ff] {
        background: #fef3c7;
    }

    .event-item.event-normal[b-zz3zdbf1ff] {
        background: #f0fdf4;
    }

    .event-time[b-zz3zdbf1ff] { color: #6b7280; }
    .event-type[b-zz3zdbf1ff] { font-weight: 500; }
    .event-reason[b-zz3zdbf1ff] { font-weight: 600; color: #2563eb; }
    .event-message[b-zz3zdbf1ff] { color: #374151; }

    .yaml-content[b-zz3zdbf1ff] {
        background: #1f2937;
        border-radius: 6px;
        padding: 16px;
        max-height: 600px;
        overflow-y: auto;
    }

    .yaml-code[b-zz3zdbf1ff] {
        font-family: 'Consolas', 'Monaco', monospace;
        font-size: 12px;
        color: #e5e7eb;
        line-height: 1.6;
        white-space: pre-wrap;
        word-break: break-all;
        margin: 0;
    }

    .connection-hint.small[b-zz3zdbf1ff] {
        font-size: 13px;
        padding: 4px 10px;
    }

    .btn-danger-outline[b-zz3zdbf1ff] {
        background: white;
        color: #ef4444;
        border: 1px solid #ef4444;
    }

    .btn-danger-outline:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #fef2f2;
    }

    .btn-warning-outline[b-zz3zdbf1ff] {
        background: white;
        color: #d97706;
        border: 1px solid #d97706;
    }

    .btn-warning-outline:hover:not(:disabled)[b-zz3zdbf1ff] {
        background: #fffbeb;
    }

    .pod-phase-running[b-zz3zdbf1ff] { background: #dcfce7; color: #16a34a; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }
    .pod-phase-pending[b-zz3zdbf1ff] { background: #fef3c7; color: #d97706; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }
    .pod-phase-failed[b-zz3zdbf1ff] { background: #fee2e2; color: #ef4444; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }
    .pod-phase-unknown[b-zz3zdbf1ff] { background: #f3f4f6; color: #6b7280; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }

    @media (max-width: 768px) {
        .jupyter-access-card[b-zz3zdbf1ff],
        .jupyter-access-main[b-zz3zdbf1ff] {
            flex-direction: column;
            align-items: stretch;
        }

        .jupyter-access-btn[b-zz3zdbf1ff] {
            width: 100%;
        }
    }

    /* ── 快照步骤条 ─────────────────────────── */
    .snap-steps[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 4px 0;
    }
    .snap-step[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        min-width: 0;
    }
    .snap-step-icon[b-zz3zdbf1ff] {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        font-weight: 600;
        transition: all .3s;
    }
    .snap-wait[b-zz3zdbf1ff] {
        background: #f3f4f6;
        color: #9ca3af;
        border: 2px solid #e5e7eb;
    }
    .snap-active[b-zz3zdbf1ff] {
        background: #eff6ff;
        color: #2563eb;
        border: 2px solid #3b82f6;
        box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
    }
    .snap-done[b-zz3zdbf1ff] {
        background: #16a34a;
        color: #fff;
        border: 2px solid #16a34a;
    }
    .snap-failed[b-zz3zdbf1ff] {
        background: #fef2f2;
        color: #dc2626;
        border: 2px solid #dc2626;
    }
    .snap-step-label[b-zz3zdbf1ff] {
        min-width: 0;
        font-size: 13px;
        color: #374151;
        font-weight: 500;
        line-height: 1.4;
        word-break: break-word;
    }
    .snap-step-label-wait[b-zz3zdbf1ff] {
        color: #9ca3af;
    }
    .snap-step-line[b-zz3zdbf1ff] {
        width: 2px;
        height: 14px;
        background: #e5e7eb;
        min-width: 0;
        margin: 3px 0 3px 14px;
        transition: background .3s;
    }
    .snap-line-done[b-zz3zdbf1ff] {
        background: #16a34a;
    }
    .snap-log-box[b-zz3zdbf1ff] {
        margin-top: 8px;
        padding: 10px 12px;
        background: #1e1e2e;
        color: #a6e3a1;
        border-radius: 6px;
        font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
        font-size: 12px;
        line-height: 1.6;
        max-height: 120px;
        overflow-y: auto;
        white-space: pre-wrap;
        word-break: break-all;
    }

    .snapshot-include-card[b-zz3zdbf1ff] {
        margin-top: 12px;
        padding: 12px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        background: #f9fafb;
    }

    .snapshot-include-title[b-zz3zdbf1ff] {
        font-size: 13px;
        font-weight: 600;
        color: #111827;
        margin-bottom: 4px;
    }

    .snapshot-include-desc[b-zz3zdbf1ff] {
        font-size: 12px;
        color: #6b7280;
        margin-bottom: 10px;
        line-height: 1.5;
    }

    .snapshot-include-row[b-zz3zdbf1ff] {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        padding: 8px 0;
        border-top: 1px solid #eef2f7;
        cursor: pointer;
    }

    .snapshot-include-row:first-of-type[b-zz3zdbf1ff] {
        border-top: none;
    }

    .snapshot-include-main[b-zz3zdbf1ff] {
        display: flex;
        flex-direction: column;
        gap: 3px;
        min-width: 0;
    }

    .snapshot-include-name[b-zz3zdbf1ff] {
        font-size: 13px;
        font-weight: 500;
        color: #374151;
    }

    .snapshot-include-main small[b-zz3zdbf1ff] {
        color: #6b7280;
        font-size: 12px;
    }

    .snapshot-progress-fill[b-zz3zdbf1ff] {
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg, #2563eb, #60a5fa);
        transition: width .3s ease;
    }
.access-telemetry-panel[b-zz3zdbf1ff] {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
}

.access-telemetry-heading[b-zz3zdbf1ff] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.access-telemetry-heading h3[b-zz3zdbf1ff] {
    margin: 0;
    color: #111827;
    font-size: 16px;
}

.access-telemetry-heading span[b-zz3zdbf1ff],
.access-metric span[b-zz3zdbf1ff],
.access-metric small[b-zz3zdbf1ff] {
    color: #64748b;
    font-size: 12px;
}

.access-telemetry-loading[b-zz3zdbf1ff] {
    min-height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.access-telemetry-grid[b-zz3zdbf1ff] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.access-metric[b-zz3zdbf1ff] {
    min-width: 0;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.access-metric span[b-zz3zdbf1ff],
.access-metric strong[b-zz3zdbf1ff],
.access-metric small[b-zz3zdbf1ff] {
    display: block;
}

.access-metric strong[b-zz3zdbf1ff] {
    margin: 6px 0 4px;
    color: #111827;
    font-size: 17px;
}

.access-metric strong.reachable[b-zz3zdbf1ff] { color: #047857; }
.access-metric strong.unreachable[b-zz3zdbf1ff] { color: #b91c1c; }
.access-metric strong.unknown[b-zz3zdbf1ff] { color: #475569; }

@media (max-width: 900px) {
    .access-telemetry-grid[b-zz3zdbf1ff] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .access-telemetry-grid[b-zz3zdbf1ff] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Pages/DebugManagement/DebugTaskList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

    /* 页面头部 */
    .page-header[b-zp2npq6it3] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
    }

    .header-left[b-zp2npq6it3] {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .header-icon[b-zp2npq6it3] {
        color: #6b7280;
        font-size: 18px;
    }

    .page-title[b-zp2npq6it3] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0;
    }

    .header-right[b-zp2npq6it3] {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    /* 按钮 */
    .btn[b-zp2npq6it3] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 16px;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        border: 1px solid transparent;
        transition: all 0.15s;
        text-decoration: none;
    }

    .btn:disabled[b-zp2npq6it3] {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .btn-primary[b-zp2npq6it3] {
        background: #2563eb;
        color: white;
    }

    .btn-primary:hover:not(:disabled)[b-zp2npq6it3] {
        background: #1d4ed8;
    }

    .btn-default[b-zp2npq6it3] {
        background: white;
        color: #374151;
        border-color: #d1d5db;
    }

    .btn-default:hover:not(:disabled)[b-zp2npq6it3] {
        background: #f9fafb;
    }

    /* 筛选栏 */
    .filter-card[b-zp2npq6it3] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 16px 20px;
        margin-bottom: 16px;
    }

    .filter-row[b-zp2npq6it3] {
        display: flex;
        gap: 12px;
        align-items: flex-end;
        flex-wrap: wrap;
    }

    .filter-item[b-zp2npq6it3] {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .filter-label[b-zp2npq6it3] {
        font-size: 12px;
        font-weight: 500;
        color: #6b7280;
    }

    .select-input[b-zp2npq6it3], .search-input[b-zp2npq6it3] {
        padding: 8px 12px;
        border: 1px solid #d1d5db;
        border-radius: 6px;
        font-size: 14px;
        background: white;
        min-width: 140px;
    }

    .search-input[b-zp2npq6it3] {
        min-width: 200px;
    }

    /* 卡片 */
    .card[b-zp2npq6it3] {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        overflow: hidden;
    }

    /* 表格 */
    .data-table[b-zp2npq6it3] {
        width: 100%;
        min-width: 1460px;
        border-collapse: collapse;
    }

.table-wrapper[b-zp2npq6it3] {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
}

/* 与训练任务保持一致：数据区独立滚动，分页固定在列表卡片底部。 */
.debug-task-list-page .table-wrapper[b-zp2npq6it3] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.debug-task-list-page .console-list-surface[b-zp2npq6it3] {
    flex: 1 1 auto;
    min-height: 0;
}

.debug-task-list-page .task-pagination[b-zp2npq6it3] {
    flex: 0 0 auto;
    min-height: 56px;
}

    .console-list-scroll[b-zp2npq6it3]  .ant-table-content {
        overflow-x: auto;
        overflow-y: hidden;
    }

    .console-list-surface[b-zp2npq6it3]  .ant-table-wrapper {
        min-height: 0;
    }

    .console-list-surface[b-zp2npq6it3]  .ant-table {
        min-width: 0;
    }

    .console-list-surface[b-zp2npq6it3]  .ant-table-thead > tr > th {
        padding: 12px 16px;
        background: #f9fafb;
        color: #6b7280;
        font-size: 12px;
        font-weight: 500;
        white-space: nowrap;
    }

    .console-list-surface[b-zp2npq6it3]  .ant-table-tbody > tr > td {
        padding: 12px 16px;
        color: #111827;
        font-size: 14px;
        vertical-align: middle;
        white-space: nowrap;
    }

    .console-list-surface[b-zp2npq6it3]  .ant-table-tbody > tr:hover > td {
        background: #f9fafb;
    }

    .data-table thead[b-zp2npq6it3] {
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .main-content > .empty-state[b-zp2npq6it3],
    .main-content > .loading-container[b-zp2npq6it3] {
        flex: 1 1 auto;
        min-height: 0;
    }

    .data-table th[b-zp2npq6it3] {
        text-align: left;
        padding: 12px 16px;
        background: #f9fafb;
        font-size: 12px;
        font-weight: 500;
        color: #6b7280;
        text-transform: uppercase;
        border-bottom: 1px solid #e5e7eb;
    }

    .data-table td[b-zp2npq6it3] {
        padding: 12px 16px;
        font-size: 14px;
        color: #111827;
        border-bottom: 1px solid #f3f4f6;
        vertical-align: middle;
    }

    .data-table tbody tr:hover[b-zp2npq6it3] {
        background: #f9fafb;
    }

    .name-link[b-zp2npq6it3] {
        color: #2563eb;
        font-weight: 500;
        text-decoration: none;
    }

    .name-link:hover[b-zp2npq6it3] {
        text-decoration: underline;
    }

    .code-text[b-zp2npq6it3] {
        font-family: monospace;
        font-size: 12px;
        background: #f3f4f6;
        padding: 2px 6px;
        border-radius: 4px;
        max-width: 180px;
        overflow: hidden;
        text-overflow: ellipsis;
        display: inline-block;
        white-space: nowrap;
    }

    .copy-btn[b-zp2npq6it3] {
        background: none;
        border: none;
        color: #9ca3af;
        cursor: pointer;
        padding: 2px 4px;
        font-size: 12px;
        transition: color 0.15s;
        flex-shrink: 0;
    }

    .copy-btn:hover[b-zp2npq6it3] {
        color: #2563eb;
    }

    /* 状态标签 */
    .status-tag[b-zp2npq6it3] {
        display: inline-block;
        padding: 4px 10px;
        border-radius: 4px;
        font-size: 12px;
        font-weight: 500;
    }

    .status-pending[b-zp2npq6it3] {
        background: #fef3c7;
        color: #d97706;
    }

    .status-running[b-zp2npq6it3] {
        background: #dbeafe;
        color: #2563eb;
    }

    .status-creating[b-zp2npq6it3] {
        background: #dbeafe;
        color: #2563eb;
    }

    .status-stopping[b-zp2npq6it3] {
        background: #fef3c7;
        color: #d97706;
    }

    .status-succeeded[b-zp2npq6it3] {
        background: #dcfce7;
        color: #16a34a;
    }

    .status-stopped[b-zp2npq6it3] {
        background: #f1f5f9;
        color: #64748b;
    }

    .status-failed[b-zp2npq6it3] {
        background: #fee2e2;
        color: #ef4444;
    }

    .status-expired[b-zp2npq6it3] {
        background: #fef3c7;
        color: #d97706;
    }

    /* 资源标签 */
    .resource-badge[b-zp2npq6it3] {
        display: inline-block;
        background: #f3f4f6;
        color: #4b5563;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 12px;
        margin-right: 4px;
    }

    /* 操作单元格 */
    .action-cell[b-zp2npq6it3] {
        display: flex;
        gap: 8px;
    }

    .btn-link[b-zp2npq6it3] {
        background: none;
        border: none;
        color: #2563eb;
        cursor: pointer;
        font-size: 14px;
        padding: 4px 8px;
    }

    .btn-link:hover[b-zp2npq6it3] {
        color: #1d4ed8;
        text-decoration: underline;
    }

    .btn-link.text-red[b-zp2npq6it3] {
        color: #ef4444;
    }

    .btn-link.text-red:hover[b-zp2npq6it3] {
        color: #dc2626;
    }

    .btn-link.text-orange[b-zp2npq6it3] {
        color: #d97706;
    }

    .btn-link.text-orange:hover[b-zp2npq6it3] {
        color: #b45309;
    }

    .text-gray[b-zp2npq6it3] {
        color: #9ca3af;
        font-size: 13px;
        font-style: italic;
    }

    /* 加载状态 */
    .loading-container[b-zp2npq6it3] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 400px;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
    }

    .loading-spinner[b-zp2npq6it3] {
        width: 40px;
        height: 40px;
        border: 3px solid #e5e7eb;
        border-top-color: #2563eb;
        border-radius: 50%;
        animation: spin-b-zp2npq6it3 1s linear infinite;
    }

    @keyframes spin-b-zp2npq6it3 {
        to { transform: rotate(360deg); }
    }

    .loading-text[b-zp2npq6it3] {
        margin-top: 16px;
        color: #6b7280;
        font-size: 14px;
    }

    /* 空状态 */
    .empty-state[b-zp2npq6it3] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 300px;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        padding: 40px;
    }

    .empty-icon[b-zp2npq6it3] {
        font-size: 48px;
        color: #d1d5db;
        margin-bottom: 16px;
    }

    .error-icon[b-zp2npq6it3] {
        color: #d97706;
    }

    .empty-title[b-zp2npq6it3] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0 0 8px 0;
    }

    .empty-desc[b-zp2npq6it3] {
        font-size: 14px;
        color: #6b7280;
        margin: 0 0 20px 0;
    }

    /* 共享弹窗 */
    .modal-overlay[b-zp2npq6it3] {
        position: fixed;
        inset: 0;
        background: rgba(17, 24, 39, 0.55);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 1050;
        padding: 24px;
    }

    .share-modal[b-zp2npq6it3] {
        width: min(1080px, 96vw);
        max-height: 88vh;
        background: white;
        border-radius: 12px;
        box-shadow: 0 20px 35px rgba(0, 0, 0, 0.18);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .modal-header[b-zp2npq6it3], .modal-footer[b-zp2npq6it3] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px;
        border-bottom: 1px solid #e5e7eb;
    }

    .modal-footer[b-zp2npq6it3] {
        justify-content: flex-end;
        gap: 8px;
        border-bottom: none;
        border-top: 1px solid #e5e7eb;
    }

    .modal-title[b-zp2npq6it3] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        font-size: 16px;
        color: #111827;
    }

    .modal-subtitle[b-zp2npq6it3] {
        margin: 6px 0 0 0;
        color: #6b7280;
        font-size: 13px;
    }

    .modal-close[b-zp2npq6it3] {
        border: none;
        background: transparent;
        color: #6b7280;
        cursor: pointer;
        font-size: 16px;
        padding: 4px;
    }

    .modal-body[b-zp2npq6it3] {
        padding: 20px;
        overflow: auto;
    }

    .share-transfer[b-zp2npq6it3] {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        gap: 16px;
        align-items: stretch;
    }

    .share-panel[b-zp2npq6it3] {
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        padding: 12px;
        min-height: 430px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        background: #ffffff;
    }

    .share-panel-header[b-zp2npq6it3] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        color: #374151;
        font-size: 14px;
    }

    .share-panel-header span[b-zp2npq6it3] {
        color: #9ca3af;
        font-size: 12px;
    }

    .select-input.full[b-zp2npq6it3], .search-input.full[b-zp2npq6it3] {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .share-user-list[b-zp2npq6it3] {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        border: 1px solid #f3f4f6;
        border-radius: 8px;
        background: #f9fafb;
        padding: 6px;
    }

    .share-user-list.selected[b-zp2npq6it3] {
        background: #f8fafc;
    }

    .share-user-item[b-zp2npq6it3] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 10px;
        border-radius: 6px;
        cursor: pointer;
        background: white;
        margin-bottom: 6px;
        border: 1px solid #f3f4f6;
    }

    .share-user-item:hover[b-zp2npq6it3] {
        border-color: #bfdbfe;
        background: #eff6ff;
    }

    .share-user-item span[b-zp2npq6it3] {
        display: flex;
        flex-direction: column;
        min-width: 0;
        flex: 1;
    }

    .share-user-item strong[b-zp2npq6it3] {
        color: #111827;
        font-size: 14px;
        font-weight: 500;
    }

    .share-user-item small[b-zp2npq6it3] {
        color: #6b7280;
        font-size: 12px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .share-transfer-actions[b-zp2npq6it3] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
    }

    .share-remove-btn[b-zp2npq6it3] {
        border: none;
        background: transparent;
        color: #ef4444;
        cursor: pointer;
        font-size: 18px;
        line-height: 1;
        padding: 0 4px;
    }

    .share-empty[b-zp2npq6it3], .share-loading[b-zp2npq6it3], .share-hint[b-zp2npq6it3] {
        color: #9ca3af;
        font-size: 13px;
        text-align: center;
        padding: 24px 8px;
    }

    .share-hint[b-zp2npq6it3] {
        text-align: left;
        padding: 8px;
        background: #f0f9ff;
        border: 1px solid #bae6fd;
        border-radius: 6px;
        color: #0369a1;
    }

.task-pagination[b-zp2npq6it3] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
    color: #6b7280;
    font-size: 14px;
}

.task-pagination[b-zp2npq6it3]  .ant-pagination {
    margin: 0;
}

@media (max-width: 640px) {
    .task-pagination[b-zp2npq6it3] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/Pages/Departments.razor.rz.scp.css */

.page-container[b-bot94aehv9] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-bot94aehv9] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-bot94aehv9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-bot94aehv9] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-icon[b-bot94aehv9] {
    font-size: 18px;
    color: #6b7280;
}

.page-title[b-bot94aehv9] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-bot94aehv9] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 按钮 */
.btn[b-bot94aehv9] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn-primary[b-bot94aehv9] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover[b-bot94aehv9] {
    background: #1d4ed8;
}

.btn-default[b-bot94aehv9] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover[b-bot94aehv9] {
    background: #f9fafb;
}

.btn-danger[b-bot94aehv9] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover[b-bot94aehv9] {
    background: #dc2626;
}

.btn-sm[b-bot94aehv9] {
    padding: 4px 10px;
    font-size: 13px;
}

/* 统计卡片 */
.stats-row[b-bot94aehv9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.stat-card[b-bot94aehv9] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.stat-icon[b-bot94aehv9] {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.stat-icon-blue[b-bot94aehv9] { background: #dbeafe; color: #2563eb; }
.stat-icon-green[b-bot94aehv9] { background: #dcfce7; color: #16a34a; }
.stat-icon-orange[b-bot94aehv9] { background: #fef3c7; color: #d97706; }

.stat-info[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
}

.stat-number[b-bot94aehv9] {
    font-size: 20px;
    font-weight: 600;
    color: #111827;
}

.stat-label[b-bot94aehv9] {
    font-size: 13px;
    color: #6b7280;
}

/* 主体布局 */
.body-layout[b-bot94aehv9] {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

/* 左侧树面板 */
.tree-panel[b-bot94aehv9] {
    width: 280px;
    min-width: 280px;
    max-height: calc(100vh - 200px);
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    position: sticky;
    top: 24px;
    overflow: hidden;
}

.tree-panel-header[b-bot94aehv9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #e5e7eb;
}

.tree-panel-title[b-bot94aehv9] {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.tree-panel-title i[b-bot94aehv9] {
    color: #2563eb;
}

.tree-panel-actions[b-bot94aehv9] {
    display: flex;
    gap: 4px;
}

.icon-btn[b-bot94aehv9] {
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    font-size: 12px;
}

.icon-btn:hover[b-bot94aehv9] {
    background: #f3f4f6;
    color: #2563eb;
}

/* 搜索框 */
.tree-search-box[b-bot94aehv9] {
    padding: 12px;
}

.search-input-wrapper[b-bot94aehv9] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    background: white;
}

.search-input-wrapper:focus-within[b-bot94aehv9] {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.search-icon[b-bot94aehv9] {
    color: #9ca3af;
    font-size: 14px;
}

.search-input[b-bot94aehv9] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: #111827;
}

.search-input[b-bot94aehv9]::placeholder {
    color: #9ca3af;
}

/* 树容器 */
.tree-container[b-bot94aehv9] {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
}

.tree-container[b-bot94aehv9]::-webkit-scrollbar {
    width: 4px;
}

.tree-container[b-bot94aehv9]::-webkit-scrollbar-track {
    background: transparent;
}

.tree-container[b-bot94aehv9]::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}

/* 自定义树节点 */
.custom-tree[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.tree-node-row[b-bot94aehv9] {
    display: flex;
    align-items: center;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    gap: 6px;
    min-height: 32px;
}

.tree-node-row:hover[b-bot94aehv9] {
    background: #f3f4f6;
}

.tree-node-row.selected[b-bot94aehv9] {
    background: #eff6ff;
}

.tree-node-row.selected .tn-name[b-bot94aehv9] {
    color: #2563eb;
    font-weight: 600;
}

/* 展开/折叠箭头 */
.tn-toggle[b-bot94aehv9] {
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    font-size: 10px;
    padding: 0;
    flex-shrink: 0;
}

.tn-toggle:hover[b-bot94aehv9] {
    background: #e5e7eb;
    color: #2563eb;
}

.tn-toggle.expanded[b-bot94aehv9] {
    transform: rotate(90deg);
}

.tn-toggle-placeholder[b-bot94aehv9] {
    width: 20px;
    flex-shrink: 0;
}

/* 节点图标 */
.tn-icon[b-bot94aehv9] {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0;
    color: #2563eb;
    background: #eff6ff;
}

/* 节点文字 */
.tn-name[b-bot94aehv9] {
    font-size: 13px;
    color: #111827;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-count[b-bot94aehv9] {
    padding: 0 6px;
    height: 16px;
    line-height: 16px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    color: white;
    background: #94a3b8;
    margin-left: 4px;
}

/* 子节点区域 */
.tree-children[b-bot94aehv9] {
    margin-left: 12px;
    padding-left: 12px;
    border-left: 1px solid #e5e7eb;
}

.tree-empty[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 0;
    gap: 8px;
    color: #9ca3af;
    font-size: 13px;
}

/* 右侧详情面板 */
.detail-panel[b-bot94aehv9] {
    flex: 1;
    min-width: 0;
}

.empty-detail[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    gap: 12px;
}

.empty-icon[b-bot94aehv9] {
    font-size: 48px;
    color: #d1d5db;
}

.empty-detail p[b-bot94aehv9] {
    color: #6b7280;
    font-size: 14px;
    margin: 0;
}

/* 部门详情 */
.department-detail[b-bot94aehv9] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 20px;
}

.detail-header[b-bot94aehv9] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.detail-title-area[b-bot94aehv9] {
    flex: 1;
}

.detail-title[b-bot94aehv9] {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.detail-title i[b-bot94aehv9] {
    color: #2563eb;
}

.detail-desc[b-bot94aehv9] {
    margin: 0;
    font-size: 14px;
    color: #6b7280;
}

.detail-actions[b-bot94aehv9] {
    display: flex;
    gap: 8px;
}

/* 详情信息 */
.detail-info[b-bot94aehv9] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.info-row[b-bot94aehv9] {
    display: flex;
    align-items: center;
    padding: 10px 14px;
    background: #f9fafb;
    border-radius: 6px;
}

.info-label[b-bot94aehv9] {
    font-size: 13px;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 100px;
}

.info-label i[b-bot94aehv9] {
    width: 14px;
    text-align: center;
}

.info-value[b-bot94aehv9] {
    font-size: 13px;
    font-weight: 500;
    color: #111827;
}

.info-value.highlight[b-bot94aehv9] {
    color: #2563eb;
    font-weight: 600;
}

/* 成员列表 */
.members-section[b-bot94aehv9], .subdepts-section[b-bot94aehv9] {
    margin-top: 20px;
}

.section-title[b-bot94aehv9] {
    margin: 0 0 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.section-title i[b-bot94aehv9] {
    color: #2563eb;
}

.members-grid[b-bot94aehv9] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

.member-card[b-bot94aehv9] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.member-avatar[b-bot94aehv9] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: white;
    flex-shrink: 0;
    background: #2563eb;
}

.member-avatar.avatar-admin[b-bot94aehv9] { background: #ef4444; }
.member-avatar.avatar-lead[b-bot94aehv9] { background: #f59e0b; }
.member-avatar.avatar-test[b-bot94aehv9] { background: #10b981; }
.member-avatar.avatar-productmanager[b-bot94aehv9] { background: #8b5cf6; }

.member-info[b-bot94aehv9] {
    flex: 1;
    min-width: 0;
}

.member-name[b-bot94aehv9] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

.member-job[b-bot94aehv9] {
    display: block;
    font-size: 12px;
    color: #6b7280;
}

/* 标签 */
.tag[b-bot94aehv9] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.tag-blue[b-bot94aehv9] { background: #dbeafe; color: #2563eb; }

.empty-members[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    gap: 8px;
    color: #9ca3af;
    background: #f9fafb;
    border-radius: 8px;
}

.empty-members i[b-bot94aehv9] {
    font-size: 24px;
}

.empty-members p[b-bot94aehv9] {
    margin: 0;
    font-size: 13px;
}

/* 子部门列表 */
.subdepts-list[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.subdept-item[b-bot94aehv9] {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    cursor: pointer;
    gap: 8px;
}

.subdept-item:hover[b-bot94aehv9] {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.subdept-item i[b-bot94aehv9] {
    color: #6b7280;
}

.subdept-name[b-bot94aehv9] {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

.subdept-count[b-bot94aehv9] {
    font-size: 12px;
    color: #6b7280;
    background: #f3f4f6;
    padding: 2px 8px;
    border-radius: 10px;
}

/* 加载状态 */
.loading-container[b-bot94aehv9] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-bot94aehv9] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-bot94aehv9 1s linear infinite;
}

@keyframes spin-b-bot94aehv9 {
    to { transform: rotate(360deg); }
}

.loading-text[b-bot94aehv9] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 模态框下拉高度限制 */
.dept-form-modal .ant-select-dropdown[b-bot94aehv9],
.dept-form-modal .tree-select-dropdown[b-bot94aehv9] {
    max-height: 220px;
}

/* 响应式 */
    @media (max-width: 900px) {
    .body-layout[b-bot94aehv9] {
        flex-direction: column;
    }

/* 组织树类管理页统一外层画布，保留内部树/详情交互布局。 */
.page-container.console-list-page[b-bot94aehv9] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

/* 统一控制台页面外壳（放在历史响应式规则之后，确保桌面端也生效）。 */
.page-container.console-list-page[b-bot94aehv9] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-bot94aehv9] {
    width: 100%;
    min-height: 0;
}

.page-container.console-list-page .page-header[b-bot94aehv9] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.page-container.console-list-page .stats-row[b-bot94aehv9] {
    gap: var(--console-space-3);
    margin-bottom: var(--console-space-4);
}

.page-container.console-list-page .stat-card[b-bot94aehv9],
.page-container.console-list-page .tree-panel[b-bot94aehv9],
.page-container.console-list-page .detail-panel[b-bot94aehv9] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}

.page-container.console-list-page .stats-row[b-bot94aehv9] {
    flex: 0 0 auto;
}

.page-container.console-list-page .body-layout[b-bot94aehv9] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.page-container.console-list-page .tree-panel[b-bot94aehv9],
.page-container.console-list-page .detail-panel[b-bot94aehv9] {
    min-height: 0;
}

@media (max-width: 900px) {
    .page-container.console-list-page .body-layout[b-bot94aehv9] {
        overflow: auto;
    }
}

.page-container.console-list-page > .main-content[b-bot94aehv9] {
    width: 100%;
    min-height: 0;
}

.page-container.console-list-page .page-header[b-bot94aehv9] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.page-container.console-list-page .stats-row[b-bot94aehv9] {
    gap: var(--console-space-3);
    margin-bottom: var(--console-space-4);
}

.page-container.console-list-page .stat-card[b-bot94aehv9],
.page-container.console-list-page .tree-panel[b-bot94aehv9],
.page-container.console-list-page .detail-panel[b-bot94aehv9] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-bot94aehv9] {
        padding: var(--console-space-4);
    }
}

    .tree-panel[b-bot94aehv9] {
        width: 100%;
        min-width: unset;
        max-height: 400px;
        position: static;
    }

    .page-header[b-bot94aehv9] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .stats-row[b-bot94aehv9] {
        grid-template-columns: 1fr;
    }

    .detail-info[b-bot94aehv9] {
        grid-template-columns: 1fr;
    }

    .members-grid[b-bot94aehv9] {
        grid-template-columns: 1fr;
    }
}

/* 桌面端统一控制台页面外壳。 */
.page-container.console-list-page[b-bot94aehv9] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}
.page-container.console-list-page > .main-content[b-bot94aehv9] { width: 100%; min-height: 0; }
.page-container.console-list-page .page-header[b-bot94aehv9] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}
.page-container.console-list-page .stats-row[b-bot94aehv9] { gap: var(--console-space-3); margin-bottom: var(--console-space-4); }
.page-container.console-list-page .stat-card[b-bot94aehv9],
.page-container.console-list-page .tree-panel[b-bot94aehv9],
.page-container.console-list-page .detail-panel[b-bot94aehv9] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}
/* /Components/Pages/ExecutionTargets.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.targets-page[b-knc22end3z]{max-width:1440px;margin:0 auto}.page-heading[b-knc22end3z]{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.page-heading h1[b-knc22end3z]{margin:0}.page-heading p[b-knc22end3z]{color:#64748b}.page-actions[b-knc22end3z]{display:flex;gap:8px;flex-wrap:wrap}.table-wrap[b-knc22end3z]{overflow-x:auto;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.target-table[b-knc22end3z]{width:max-content;min-width:100%;border-collapse:collapse;background:#fff}.target-table th[b-knc22end3z],.target-table td[b-knc22end3z]{padding:12px 16px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.target-table th:last-child[b-knc22end3z],.target-table td:last-child[b-knc22end3z]{position:sticky;right:0;background:#fff;box-shadow:-8px 0 12px -12px rgba(15,23,42,.35)}.health-state[b-knc22end3z]{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:4px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:600}.health-state-healthy[b-knc22end3z]{background:#ecfdf3;color:#047857}.health-state-degraded[b-knc22end3z]{background:#fff7ed;color:#c2410c}.health-message[b-knc22end3z]{min-width:240px;max-width:360px;overflow:hidden;text-overflow:ellipsis}.modal-backdrop[b-knc22end3z]{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:1000;padding:16px}.modal-panel[b-knc22end3z]{width:min(520px,100%);background:#fff;border-radius:8px;padding:24px}.form-grid[b-knc22end3z]{display:grid;gap:14px}.form-grid label[b-knc22end3z]{display:grid;gap:6px;font-weight:600}.form-grid input[b-knc22end3z],.form-grid select[b-knc22end3z]{min-height:36px;padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;font:inherit;font-weight:400}.modal-footer[b-knc22end3z]{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}@media(max-width:720px){.page-heading[b-knc22end3z]{align-items:flex-start;flex-direction:column}}
/* /Components/Pages/Forbidden.razor.rz.scp.css */
.forbidden-page[b-4yaf9gr2hx] {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    text-align: center;
}

.forbidden-page-container[b-4yaf9gr2hx] {
    min-height: 100%;
    padding: 0;
}

.forbidden-page h2[b-4yaf9gr2hx] {
    margin: 0 0 12px;
    color: #262626;
    font-size: 28px;
    line-height: 1.35;
}

.forbidden-page p[b-4yaf9gr2hx] {
    width: min(100%, 460px);
    margin: 0 0 24px;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.8;
}

.forbidden-icon[b-4yaf9gr2hx] {
    margin-bottom: 24px;
    color: #d97706;
    font-size: 64px;
}

@media (max-width: 640px) {
    .forbidden-page[b-4yaf9gr2hx] {
        min-height: calc(100vh - 120px);
        padding: 32px 16px;
    }

    .forbidden-page h2[b-4yaf9gr2hx] {
        font-size: 24px;
    }
}
/* /Components/Pages/Gateway/GatewayInstances.razor.rz.scp.css */
.gateway-boundary-note[b-pkjdk1t62p] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
    padding: 10px 12px;
    color: var(--console-color-text-3, #64748b);
    background: var(--console-color-bg-subtle, #f8fafc);
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: 4px;
    line-height: 1.6;
}

.gateway-instance-cell[b-pkjdk1t62p] {
    display: flex;
    min-width: 120px;
    flex-direction: column;
    gap: 2px;
}

.gateway-instance-cell strong[b-pkjdk1t62p] {
    color: var(--console-color-text-1, #1f2937);
    font-weight: 600;
}

.gateway-instance-cell span:last-child[b-pkjdk1t62p] {
    color: var(--console-color-text-3, #64748b);
    font-size: 12px;
}

.gateway-endpoint[b-pkjdk1t62p] {
    display: inline-block;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.gateway-form[b-pkjdk1t62p] {
    max-height: min(72vh, 760px);
    overflow-y: auto;
    padding-right: 4px;
}

.gateway-resource-grid[b-pkjdk1t62p] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.gateway-field-help[b-pkjdk1t62p] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 6px;
    color: var(--console-color-text-3, #64748b);
    font-size: 12px;
    line-height: 1.5;
}

.gateway-inline-help[b-pkjdk1t62p] {
    margin-left: 10px;
    color: var(--console-color-text-3, #64748b);
    font-size: 12px;
}

.gateway-upstream-list[b-pkjdk1t62p] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: 4px;
}

.gateway-upstream-item[b-pkjdk1t62p] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    padding: 10px 12px;
    cursor: pointer;
}

.gateway-upstream-item:hover[b-pkjdk1t62p] {
    background: var(--console-color-bg-subtle, #f8fafc);
}

.gateway-upstream-item > span:last-child[b-pkjdk1t62p] {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.gateway-upstream-item strong[b-pkjdk1t62p],
.gateway-upstream-item small[b-pkjdk1t62p] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gateway-upstream-item strong[b-pkjdk1t62p] {
    font-weight: 500;
}

.gateway-upstream-item small[b-pkjdk1t62p],
.gateway-empty-upstream[b-pkjdk1t62p] {
    color: var(--console-color-text-3, #64748b);
    font-size: 12px;
}

.gateway-empty-upstream[b-pkjdk1t62p] {
    padding: 16px;
    text-align: center;
    border: 1px dashed var(--console-color-border, #e5e7eb);
    border-radius: 4px;
}

.gateway-form-actions[b-pkjdk1t62p] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 8px;
}

@media (max-width: 720px) {
    .gateway-resource-grid[b-pkjdk1t62p],
    .gateway-upstream-list[b-pkjdk1t62p] {
        grid-template-columns: 1fr;
    }

    .gateway-inline-help[b-pkjdk1t62p] {
        display: block;
        margin: 6px 0 0;
    }
}
/* /Components/Pages/GpuOverview.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.gpu-overview-container[b-me5cbqzgif] {
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}

/* 统计卡片 */
.stats-cards[b-me5cbqzgif] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.stat-card[b-me5cbqzgif] {
    background: white;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stat-card .stat-icon[b-me5cbqzgif] {
    font-size: 32px;
    margin-bottom: 8px;
}

.stat-card .stat-content[b-me5cbqzgif] {
    flex: 1;
}

.stat-card .stat-value[b-me5cbqzgif] {
    font-size: 24px;
    font-weight: 700;
    color: #1f2937;
}

.stat-card .stat-label[b-me5cbqzgif] {
    font-size: 14px;
    color: #6b7280;
}

.stat-progress[b-me5cbqzgif] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.progress-bar[b-me5cbqzgif] {
    flex: 1;
    height: 8px;
    background: #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill[b-me5cbqzgif] {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #8b5cf6);
    border-radius: 4px;
    transition: width 0.3s ease;
}

.progress-text[b-me5cbqzgif] {
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
}

/* 节点部分 */
.nodes-section[b-me5cbqzgif] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    padding: 24px;
}

.section-header[b-me5cbqzgif] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.section-header h3[b-me5cbqzgif] {
    margin: 0;
    font-size: 18px;
    color: #1f2937;
}

/* 节点卡片 */
.node-card[b-me5cbqzgif] {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin-bottom: 20px;
    overflow: hidden;
}

.node-card:last-child[b-me5cbqzgif] {
    margin-bottom: 0;
}

.node-header[b-me5cbqzgif] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
}

.node-title[b-me5cbqzgif] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.node-status[b-me5cbqzgif] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #10b981;
}

.node-status.warning[b-me5cbqzgif] {
    background: #f59e0b;
}

.node-status.error[b-me5cbqzgif] {
    background: #ef4444;
}

.node-title h4[b-me5cbqzgif] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

.node-stats[b-me5cbqzgif] {
    display: flex;
    gap: 8px;
}

.badge[b-me5cbqzgif] {
    padding: 4px 10px;
    background: #e5e7eb;
    border-radius: 12px;
    font-size: 12px;
    color: #4b5563;
}

.node-overview[b-me5cbqzgif] {
    display: flex;
    gap: 24px;
    padding: 16px 20px;
    background: #fefefe;
    border-bottom: 1px solid #f3f4f6;
}

.overview-item[b-me5cbqzgif] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.overview-item .label[b-me5cbqzgif] {
    font-size: 12px;
    color: #6b7280;
}

.overview-item .value[b-me5cbqzgif] {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
}

.mini-progress[b-me5cbqzgif] {
    width: 100px;
    height: 6px;
    background: #e5e7eb;
    border-radius: 3px;
    overflow: hidden;
}

.mini-progress-fill[b-me5cbqzgif] {
    height: 100%;
    background: #3b82f6;
    border-radius: 3px;
}

/* GPU 设备 */
.gpu-devices[b-me5cbqzgif] {
    padding: 16px 20px;
    border-bottom: 1px solid #f3f4f6;
}

.gpu-devices h5[b-me5cbqzgif], .pods-section h5[b-me5cbqzgif] {
    margin: 0 0 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

.devices-grid[b-me5cbqzgif] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}

.gpu-device-card[b-me5cbqzgif] {
    background: #f9fafb;
    border-radius: 8px;
    padding: 12px;
    border: 1px solid #e5e7eb;
}

.device-header[b-me5cbqzgif] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.device-index[b-me5cbqzgif] {
    font-weight: 600;
    color: #1f2937;
}

.device-type[b-me5cbqzgif] {
    font-size: 11px;
    color: #6b7280;
    background: #e5e7eb;
    padding: 2px 6px;
    border-radius: 4px;
}

.device-uuid[b-me5cbqzgif] {
    font-family: monospace;
    font-size: 11px;
    color: #9ca3af;
    margin-bottom: 8px;
}

.device-metrics[b-me5cbqzgif] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.metric-row[b-me5cbqzgif] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
}

.metric-label[b-me5cbqzgif] {
    color: #6b7280;
}

.metric-value[b-me5cbqzgif] {
    color: #1f2937;
    font-weight: 500;
}

.metric-row.shared[b-me5cbqzgif] {
    color: #8b5cf6;
}

.metric-row.shared .metric-label[b-me5cbqzgif],
.metric-row.shared .metric-value[b-me5cbqzgif] {
    color: #8b5cf6;
}

/* Pod 列表 */
.pods-section[b-me5cbqzgif] {
    padding: 16px 20px;
}

.pods-table[b-me5cbqzgif] {
    overflow-x: auto;
}

.pods-table table[b-me5cbqzgif] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.pods-table th[b-me5cbqzgif] {
    text-align: left;
    padding: 8px 12px;
    background: #f3f4f6;
    font-weight: 600;
    color: #374151;
}

.pods-table td[b-me5cbqzgif] {
    padding: 8px 12px;
    border-bottom: 1px solid #f3f4f6;
}

.pods-table tr:last-child td[b-me5cbqzgif] {
    border-bottom: none;
}

.pod-name[b-me5cbqzgif] {
    font-family: monospace;
    color: #2563eb;
}

.more-pods[b-me5cbqzgif] {
    text-align: center;
    padding: 8px;
    color: #6b7280;
    font-size: 12px;
}

/* 加载和错误状态 */
.loading-container[b-me5cbqzgif], .error-state[b-me5cbqzgif] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 12px;
}

.loading-spinner[b-me5cbqzgif] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #3b82f6;
    border-radius: 50%;
    animation: spin-b-me5cbqzgif 1s linear infinite;
}

@keyframes spin-b-me5cbqzgif {
    to { transform: rotate(360deg); }
}

.loading-text[b-me5cbqzgif] {
    margin-top: 16px;
    color: #6b7280;
}

.error-icon[b-me5cbqzgif] {
    font-size: 48px;
    margin-bottom: 16px;
}

.error-state h3[b-me5cbqzgif] {
    margin: 0 0 8px 0;
    color: #1f2937;
}

.error-state p[b-me5cbqzgif] {
    color: #6b7280;
    margin-bottom: 16px;
}

.empty-state[b-me5cbqzgif] {
    text-align: center;
    padding: 40px;
    color: #6b7280;
}

.btn[b-me5cbqzgif] {
    padding: 8px 16px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.2s;
}

.btn-primary[b-me5cbqzgif] {
    background: #3b82f6;
    color: white;
}

.btn-primary:hover[b-me5cbqzgif] {
    background: #2563eb;
}

.btn-outline-primary[b-me5cbqzgif] {
    background: transparent;
    border: 1px solid #3b82f6;
    color: #3b82f6;
}

.btn-outline-primary:hover[b-me5cbqzgif] {
    background: #eff6ff;
}

.btn-sm[b-me5cbqzgif] {
    padding: 4px 12px;
    font-size: 12px;
}
/* /Components/Pages/ImageDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-sp0ezpvu2o] {
        min-height: 80vh;
        background: #f9fafb;
        padding: 24px;
        height: 100%;
    }

    .main-content[b-sp0ezpvu2o] {
        max-width: 1200px;
        margin: 0 auto;
    }

    /* 页面头部 */
    .page-header[b-sp0ezpvu2o] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
        flex-wrap: wrap;
        gap: 12px;
    }

    .header-left[b-sp0ezpvu2o] {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }

    .header-icon[b-sp0ezpvu2o] {
        color: #6b7280;
        font-size: 18px;
    }

    .page-title[b-sp0ezpvu2o] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0;
    }

    .title-tag[b-sp0ezpvu2o] {
        color: #6b7280;
        font-weight: 400;
    }

    .header-right[b-sp0ezpvu2o] {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    /* Docker Pull 命令框 */
    .pull-command-box[b-sp0ezpvu2o] {
        background: #1e293b;
        color: #f1f5f9;
        padding: 10px 16px;
        border-radius: 6px;
        font-family: monospace;
        font-size: 13px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 16px;
    }

    .pull-command-text[b-sp0ezpvu2o] {
        word-break: break-all;
        background: transparent;
        color: inherit;
        padding: 0;
    }

    /* 信息卡片 */
    .info-card[b-sp0ezpvu2o] {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 20px;
        margin-bottom: 16px;
    }

    .info-grid[b-sp0ezpvu2o] {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
        gap: 16px;
    }

    .info-item[b-sp0ezpvu2o] {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .info-label[b-sp0ezpvu2o] {
        font-size: 12px;
        font-weight: 500;
        color: #6b7280;
    }

    .info-value[b-sp0ezpvu2o] {
        font-size: 14px;
        color: #111827;
    }

    .info-value.highlight-blue[b-sp0ezpvu2o] {
        font-weight: 600;
        color: #2563eb;
    }

    .info-description[b-sp0ezpvu2o] {
        margin-top: 16px;
        padding-top: 16px;
        border-top: 1px solid #e5e7eb;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .digest-value[b-sp0ezpvu2o] {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .code-text[b-sp0ezpvu2o] {
        font-family: monospace;
        font-size: 13px;
        background: #f3f4f6;
        padding: 2px 6px;
        border-radius: 4px;
        word-break: break-all;
    }

    .text-muted[b-sp0ezpvu2o] {
        color: #d1d5db;
    }

    /* 卡片段落标题 */
    .card-section-header[b-sp0ezpvu2o] {
        font-size: 15px;
        font-weight: 600;
        color: #374151;
        margin-bottom: 14px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    .card-section-header i[b-sp0ezpvu2o] {
        color: #6b7280;
        font-size: 14px;
    }

    /* 镜像类型编辑 */
    .type-edit-inline[b-sp0ezpvu2o] {
        display: inline-flex;
        align-items: center;
        gap: 4px;
    }

    .type-select[b-sp0ezpvu2o] {
        padding: 2px 8px;
        border: 1px solid #d1d5db;
        border-radius: 4px;
        font-size: 13px;
    }

    /* 标签 */
    .tag[b-sp0ezpvu2o] {
        display: inline-block;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 12px;
        font-weight: 500;
    }

    .tag-blue[b-sp0ezpvu2o] { background: #dbeafe; color: #1d4ed8; }
    .tag-green[b-sp0ezpvu2o] { background: #dcfce7; color: #16a34a; }
    .tag-red[b-sp0ezpvu2o] { background: #fee2e2; color: #dc2626; }
    .tag-orange[b-sp0ezpvu2o] { background: #ffedd5; color: #c2410c; }
    .tag-default[b-sp0ezpvu2o] { background: #f3f4f6; color: #4b5563; }
    .tag-purple[b-sp0ezpvu2o] { background: #f3e8ff; color: #7c3aed; }
    .tag-cyan[b-sp0ezpvu2o] { background: #cffafe; color: #0891b2; }
    .tag-geekblue[b-sp0ezpvu2o] { background: #e0e7ff; color: #4338ca; }
    .tag-volcano[b-sp0ezpvu2o] { background: #fff1f0; color: #cf1322; }

    .label-list[b-sp0ezpvu2o], .vuln-list[b-sp0ezpvu2o] {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .scan-row[b-sp0ezpvu2o] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 12px;
    }

    /* README */
    .readme-body[b-sp0ezpvu2o] {
        margin-top: 0;
    }

    .readme-editor[b-sp0ezpvu2o] {
        width: 100%;
        min-height: 240px;
        border: 1px solid #d9d9d9;
        border-radius: 6px;
        padding: 12px;
        font-family: monospace;
        font-size: 13px;
        resize: vertical;
        line-height: 1.6;
        box-sizing: border-box;
    }

    .readme-actions[b-sp0ezpvu2o] {
        margin-top: 12px;
        display: flex;
        gap: 8px;
    }

    .readme-content[b-sp0ezpvu2o] {
        white-space: pre-wrap;
        font-size: 14px;
        line-height: 1.7;
        color: #374151;
    }

    .empty-state[b-sp0ezpvu2o] {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 32px 16px;
        color: #9ca3af;
    }

    .empty-icon[b-sp0ezpvu2o] {
        font-size: 32px;
        margin-bottom: 12px;
    }

    .empty-state p[b-sp0ezpvu2o] {
        margin: 0;
        font-size: 14px;
    }

    /* 加载 */
    .loading-container[b-sp0ezpvu2o] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 300px;
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        gap: 12px;
    }

    .loading-spinner[b-sp0ezpvu2o] {
        width: 40px;
        height: 40px;
        border: 3px solid #e5e7eb;
        border-top-color: #2563eb;
        border-radius: 50%;
        animation: spin-b-sp0ezpvu2o 0.8s linear infinite;
    }

    @keyframes spin-b-sp0ezpvu2o {
        to { transform: rotate(360deg); }
    }

    .loading-text[b-sp0ezpvu2o] {
        color: #6b7280;
        font-size: 14px;
    }

    /* 按钮 */
    .btn[b-sp0ezpvu2o] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 16px;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        border: 1px solid transparent;
        transition: all 0.15s;
        text-decoration: none;
    }

    .btn:disabled[b-sp0ezpvu2o] {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .btn-sm[b-sp0ezpvu2o] {
        padding: 4px 12px;
        font-size: 13px;
    }

    .btn-primary[b-sp0ezpvu2o] {
        background: #2563eb;
        color: white;
    }

    .btn-primary:hover:not(:disabled)[b-sp0ezpvu2o] {
        background: #1d4ed8;
    }

    .btn-default[b-sp0ezpvu2o] {
        background: white;
        color: #374151;
        border-color: #d1d5db;
    }

    .btn-default:hover:not(:disabled)[b-sp0ezpvu2o] {
        background: #f9fafb;
    }

    .btn-icon[b-sp0ezpvu2o] {
        background: transparent;
        border: none;
        color: #94a3b8;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 4px;
        font-size: 14px;
        transition: color 0.15s;
    }

    .btn-icon:hover[b-sp0ezpvu2o] {
        color: #f1f5f9;
    }

    .btn-icon-sm[b-sp0ezpvu2o] {
        background: transparent;
        border: none;
        color: #9ca3af;
        cursor: pointer;
        padding: 2px 4px;
        font-size: 12px;
        transition: color 0.15s;
    }

    .btn-icon-sm:hover[b-sp0ezpvu2o] {
        color: #2563eb;
    }
/* /Components/Pages/ImageRegistry.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

/* 页面头部 */
.page-header[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.registry-view-tabs[b-yacyhaekyj] {
    margin-bottom: 12px;
}

.registry-view-tabs[b-yacyhaekyj]  .ant-tabs-nav {
    margin-bottom: 0;
}

/* 分页随文档流排在表格之后，页面滚到底部才可见。 */
.registry-pagination[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
    color: #6b7280;
    font-size: 14px;
}

.registry-pagination[b-yacyhaekyj]  .ant-pagination {
    margin: 0;
}

.image-name-link[b-yacyhaekyj] {
    cursor: pointer;
    color: #1677ff;
}

@media (max-width: 640px) {
    .registry-pagination[b-yacyhaekyj] {
        align-items: flex-start;
        flex-direction: column;
    }

}
.header-left[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-yacyhaekyj] {
    color: #6b7280;
    font-size: 18px;
}

.page-title[b-yacyhaekyj] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.page-count[b-yacyhaekyj] {
    font-size: 14px;
    color: #6b7280;
}

.header-right[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-link[b-yacyhaekyj] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-yacyhaekyj] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-link.text-red[b-yacyhaekyj] {
    color: #ef4444;
}

/* 状态卡片 */
.status-card[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 24px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.status-info[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.status-label[b-yacyhaekyj] {
    font-size: 14px;
    color: #6b7280;
}

.status-badge[b-yacyhaekyj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
}

.status-badge i[b-yacyhaekyj] {
    font-size: 6px;
}

.status-running[b-yacyhaekyj] {
    background: #dcfce7;
    color: #16a34a;
}

.status-stopped[b-yacyhaekyj] {
    background: #fee2e2;
    color: #ef4444;
}

.status-details[b-yacyhaekyj] {
    display: flex;
    gap: 16px;
}

.status-item[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
}

/* 子 tab 导航（仓库开通内部） */
.sub-tab-nav[b-yacyhaekyj] {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 16px;
}

.sub-tab-btn[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    font-size: 14px;
    border: none;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: all 0.15s;
}

.sub-tab-btn:hover[b-yacyhaekyj] {
    color: #2563eb;
}

.sub-tab-btn.active[b-yacyhaekyj] {
    color: #2563eb;
    border-bottom-color: #2563eb;
    font-weight: 600;
}

/* 卡片 */
.card[b-yacyhaekyj] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

/* 列表卡片随内容自然撑开，纵向滚动交给控制台主内容区（页面级滚动）。 */
.registry-list-card[b-yacyhaekyj] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.registry-list-card .table-wrapper[b-yacyhaekyj] {
    flex: 0 0 auto;
    overflow: visible;
}

.registry-list-card .data-table[b-yacyhaekyj] {
    min-width: 1180px;
}

.registry-list-card .data-table thead[b-yacyhaekyj] {
    position: sticky;
    top: 0;
    z-index: 2;
}

/* 表格区不再限制内部纵向滚动：仅保留横向滚动，纵向交给页面滚动。 */
.registry-image-table-scroll[b-yacyhaekyj] {
    flex: 0 0 auto;
    min-height: 0;
    overflow-x: auto;
    overflow-y: visible;
    padding: 0 12px 12px;
}

.registry-image-table-scroll .data-table[b-yacyhaekyj] {
    min-width: 1100px;
}

.registry-image-table-scroll .data-table thead[b-yacyhaekyj] {
    position: static;
}

.registry-access-summary[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    margin: 0 16px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.registry-access-summary__title[b-yacyhaekyj] {
    color: #1f2937;
    font-weight: 600;
    white-space: nowrap;
}

.registry-access-summary__meta[b-yacyhaekyj] {
    color: #64748b;
    min-width: 0;
}

.registry-access-summary__meta code[b-yacyhaekyj] {
    color: #1d4ed8;
}

.registry-permission-status[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    color: #374151;
    font-weight: 500;
}

.registry-compact-card[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    margin-bottom: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.registry-compact-card__head[b-yacyhaekyj] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #1d4ed8;
    font-weight: 600;
    white-space: nowrap;
}

.registry-compact-card__body[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    min-width: 0;
}

.registry-compact-card__project[b-yacyhaekyj] {
    color: #64748b;
    min-width: 0;
}

.registry-compact-card__project code[b-yacyhaekyj] {
    color: #1d4ed8;
}

.registry-access-modal[b-yacyhaekyj] {
    max-width: 760px;
}

.registry-list-card[b-yacyhaekyj]  .ant-empty,
.registry-list-card > .loading-inline[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.registry-provision-card[b-yacyhaekyj],
.registry-harbor-card[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
    scrollbar-gutter: stable;
}

/* 平台仓库管理包含配额、项目、仓库和镜像多段内容，整体高度按内容展开。
   纵向滚动统一交给控制台主内容区，表格区域仅保留自身的横向滚动。 */
.registry-management-page .registry-provision-card[b-yacyhaekyj],
.registry-management-page .registry-harbor-card[b-yacyhaekyj] {
    flex: 0 0 auto;
    overflow: visible;
}

.registry-management-page .provision-section[b-yacyhaekyj] {
    flex: 0 0 auto;
}

.provision-section[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.provision-section[b-yacyhaekyj]  .ant-tabs {
    flex: 0 0 auto;
}

.provision-table-scroll[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 220px;
    overflow: auto;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.provision-table-scroll .data-table[b-yacyhaekyj] {
    min-width: 1120px;
}

.provision-table-scroll .data-table thead[b-yacyhaekyj] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.card-header[b-yacyhaekyj] {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.filter-row[b-yacyhaekyj] {
    display: flex;
    gap: 12px;
    align-items: center;
}

.harbor-toolbar[b-yacyhaekyj] {
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 10px;
}

.harbor-toolbar-title[b-yacyhaekyj] {
    margin: 0;
    white-space: nowrap;
}

.harbor-create-input[b-yacyhaekyj] {
    flex: 1 1 280px;
    width: 280px;
    height: 32px;
    min-width: 200px;
    padding-block: 4px;
}

.harbor-create-group[b-yacyhaekyj],
.harbor-toolbar-actions[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.harbor-create-group[b-yacyhaekyj] {
    flex: 1 1 390px;
    max-width: 500px;
}

.harbor-create-group .harbor-create-input[b-yacyhaekyj] {
    min-width: 0;
}

.harbor-toolbar-actions[b-yacyhaekyj] {
    flex: 0 1 auto;
    margin-left: auto;
    flex-wrap: wrap;
    padding-left: 12px;
    border-left: 1px solid #e5e7eb;
}

.harbor-toolbar-actions[b-yacyhaekyj]  .ant-btn,
.harbor-create-group[b-yacyhaekyj]  .ant-btn {
    height: 32px;
    white-space: nowrap;
}

.harbor-toolbar-actions[b-yacyhaekyj]  .harbor-refresh-button {
    width: 32px;
    padding-inline: 0;
}

.select-input[b-yacyhaekyj] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    min-width: 140px;
}

.search-input[b-yacyhaekyj] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
}

.search-input.flex-1[b-yacyhaekyj] {
    flex: 1;
}

/* 表格 */
.data-table[b-yacyhaekyj] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-yacyhaekyj] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-yacyhaekyj] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
}

.image-name[b-yacyhaekyj] {
    color: #2563eb;
    cursor: pointer;
    font-weight: 500;
}

.image-name:hover[b-yacyhaekyj] {
    text-decoration: underline;
}

/* 标签 */
.tag[b-yacyhaekyj] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.tag-blue[b-yacyhaekyj] {
    background: #dbeafe;
    color: #1e40af;
}

.tag-green[b-yacyhaekyj] {
    background: #dcfce7;
    color: #166534;
}

.tag-red[b-yacyhaekyj] {
    background: #fee2e2;
    color: #991b1b;
}

.tag-orange[b-yacyhaekyj] {
    background: #fff7ed;
    color: #c2410c;
}

.tag-default[b-yacyhaekyj] {
    background: #f3f4f6;
    color: #374151;
}

.image-type-modal-options[b-yacyhaekyj] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.image-type-modal-btn[b-yacyhaekyj] {
    padding: 8px 16px;
    border-radius: 6px;
    border: 2px solid #e5e7eb;
    background: #fff;
    cursor: pointer;
    transition: all 0.15s;
}

.image-type-modal-btn:hover[b-yacyhaekyj] {
    border-color: #93c5fd;
    background: #f0f9ff;
}

.image-type-modal-btn.active[b-yacyhaekyj] {
    border-color: #2563eb;
    background: #eff6ff;
    box-shadow: 0 0 0 1px #2563eb;
}

.code-text[b-yacyhaekyj] {
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    color: #374151;
}

/* 镜像名称列：超长镜像名单行截断为省略号，完整名称由 title 提示展示 */
.image-name-text[b-yacyhaekyj] {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    color: #1677ff;
    font-family: 'Fira Code', 'Monaco', monospace;
    font-size: 12px;
}

.image-name-text:hover[b-yacyhaekyj] {
    text-decoration: underline;
}

/* 节点网格 */
.nodes-grid[b-yacyhaekyj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
    padding: 20px;
}

.node-card[b-yacyhaekyj] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
}

.node-header[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.node-header i[b-yacyhaekyj] {
    color: #6b7280;
}

.node-name[b-yacyhaekyj] {
    font-weight: 500;
    color: #111827;
}

.node-count[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
}

/* 搜索区域 */
.search-section[b-yacyhaekyj] {
    padding: 20px;
}

.search-type-tabs[b-yacyhaekyj] {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.type-tab[b-yacyhaekyj] {
    padding: 8px 16px;
    background: #f3f4f6;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    color: #6b7280;
    cursor: pointer;
}

.type-tab:hover[b-yacyhaekyj] {
    background: #e5e7eb;
}

.type-tab.active[b-yacyhaekyj] {
    background: #2563eb;
    color: white;
}

.search-form[b-yacyhaekyj], .address-form[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-row[b-yacyhaekyj] {
    display: flex;
    gap: 12px;
    align-items: center;
}

.form-row-inline[b-yacyhaekyj] {
    display: flex;
    gap: 16px;
}

.form-group[b-yacyhaekyj] {
    flex: 1;
}

.form-label[b-yacyhaekyj] {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.input-group[b-yacyhaekyj] {
    display: flex;
    gap: 8px;
    flex: 1;
}

.auth-form[b-yacyhaekyj] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    margin-top: 8px;
}

.form-actions[b-yacyhaekyj] {
    margin-top: 8px;
}

/* 标签容器 */
.tags-container[b-yacyhaekyj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tag-item[b-yacyhaekyj] {
    padding: 4px 10px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    cursor: pointer;
}

.tag-item:hover[b-yacyhaekyj] {
    background: #2563eb;
    color: white;
    border-color: #2563eb;
}

.tag-item.more[b-yacyhaekyj] {
    background: #fef3c7;
    color: #92400e;
    border-color: #fcd34d;
    cursor: default;
}

.tag-port[b-yacyhaekyj] {
    background: #dbeafe;
    color: #1e40af;
    border-color: #93c5fd;
}

/* 示例 */
.examples-box[b-yacyhaekyj] {
    margin-top: 16px;
    padding: 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.examples-title[b-yacyhaekyj] {
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    margin: 0 0 8px 0;
}

.examples-list[b-yacyhaekyj] {
    margin: 0;
    padding-left: 20px;
}

.examples-list li[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 4px;
}

.examples-list code[b-yacyhaekyj] {
    background: #e5e7eb;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    color: #374151;
}

/* 搜索结果 */
.results-header[b-yacyhaekyj] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
    margin-bottom: 12px;
}

.results-grid[b-yacyhaekyj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

.result-card[b-yacyhaekyj] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
}

.result-header[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.result-name[b-yacyhaekyj] {
    font-weight: 600;
    color: #111827;
}

.official-badge[b-yacyhaekyj] {
    background: #f59e0b;
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.result-desc[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 12px;
    min-height: 40px;
}

.result-footer[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.result-tags[b-yacyhaekyj] {
    font-size: 12px;
    color: #9ca3af;
}

.modal-container[b-yacyhaekyj] {
    background: white;
    border-radius: 8px;
    width: 100%;
    max-width: 600px;
    max-height: 90vh;
    overflow-y: auto;
}

.harbor-action-modal[b-yacyhaekyj] {
    max-width: 560px;
}

.harbor-action-form[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.harbor-action-field[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.harbor-action-label[b-yacyhaekyj] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.harbor-action-hint[b-yacyhaekyj] {
    margin-top: 2px;
    font-size: 12px;
    color: #6b7280;
}

.harbor-configuration-modal[b-yacyhaekyj] {
    max-width: 560px;
}

.harbor-configuration-form[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.harbor-configuration-field[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.harbor-configuration-label[b-yacyhaekyj] {
    color: #374151;
    font-size: 13px;
    font-weight: 600;
}

.harbor-configuration-hint[b-yacyhaekyj] {
    color: #6b7280;
    font-size: 12px;
}

.harbor-configuration-checkbox[b-yacyhaekyj] {
    align-items: center;
    color: #374151;
    display: flex;
    font-size: 13px;
    gap: 8px;
}

.harbor-configuration-checkbox input[b-yacyhaekyj] {
    accent-color: #2563eb;
}

.harbor-action-error[b-yacyhaekyj] {
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 6px;
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
    font-size: 13px;
}

.harbor-action-confirm[b-yacyhaekyj] {
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 6px;
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
    font-size: 13px;
    font-weight: 500;
}

.modal-header[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-yacyhaekyj] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-yacyhaekyj] {
    width: 32px;
    height: 32px;
    border: none;
    background: #f3f4f6;
    border-radius: 6px;
    cursor: pointer;
    color: #6b7280;
}

.modal-close:hover[b-yacyhaekyj] {
    background: #e5e7eb;
    color: #111827;
}

.modal-body[b-yacyhaekyj] {
    padding: 20px;
}

.modal-footer[b-yacyhaekyj] {
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 详情 */
.detail-section[b-yacyhaekyj] {
    margin-bottom: 16px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
}

.detail-row[b-yacyhaekyj] {
    display: flex;
    padding: 8px 0;
    border-bottom: 1px solid #e5e7eb;
}

.detail-row:last-child[b-yacyhaekyj] {
    border-bottom: none;
}

.detail-label[b-yacyhaekyj] {
    width: 80px;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
}

.detail-value[b-yacyhaekyj] {
    flex: 1;
    font-size: 14px;
    color: #111827;
    word-break: break-all;
}

.detail-id[b-yacyhaekyj] {
    font-size: 11px;
    background: #e5e7eb;
    padding: 4px 8px;
    border-radius: 4px;
}

.section-title[b-yacyhaekyj] {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.code-block[b-yacyhaekyj] {
    display: block;
    background: #1f2937;
    color: #e5e7eb;
    padding: 12px;
    border-radius: 6px;
    font-size: 13px;
    overflow-x: auto;
}

.env-list[b-yacyhaekyj] {
    max-height: 200px;
    overflow-y: auto;
}

.env-item[b-yacyhaekyj] {
    padding: 4px 0;
    border-bottom: 1px solid #e5e7eb;
}

.env-item:last-child[b-yacyhaekyj] {
    border-bottom: none;
}

.env-item code[b-yacyhaekyj] {
    background: #e5e7eb;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    color: #374151;
}

.env-item.more[b-yacyhaekyj] {
    font-size: 13px;
    color: #9ca3af;
    font-style: italic;
}

/* 加载状态 */
.loading-container[b-yacyhaekyj], .error-container[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-yacyhaekyj] {
    width: 40px;
    height: 40px;
    border: 3px solid rgb(229, 231, 235);
    border-top-color: rgb(37, 99, 235);
    border-radius: 50%;
    animation: spin-b-yacyhaekyj 1s linear infinite;
}

@keyframes spin-b-yacyhaekyj {
    to { transform: rotate(360deg); }
}

.loading-text[b-yacyhaekyj] {
    margin-top: 16px;
    color: rgb(107, 114, 128);
    font-size: 14px;
}

.error-title[b-yacyhaekyj] {
    font-size: 18px;
    font-weight: 600;
    color: rgb(17, 24, 39);
    margin: 0 0 8px 0;
}

.error-message[b-yacyhaekyj] {
    font-size: 14px;
    color: rgb(107, 114, 128);
    margin: 0 0 16px 0;
}

.loading-inline[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px;
    color: rgb(107, 114, 128);
    font-size: 14px;
}

.loading-spinner-small[b-yacyhaekyj] {
    width: 20px;
    height: 20px;
    border: 2px solid rgb(229, 231, 235);
    border-top-color: rgb(37, 99, 235);
    border-radius: 50%;
    animation: spin-b-yacyhaekyj 1s linear infinite;
}

.empty-state[b-yacyhaekyj] {
    padding: 48px;
    text-align: center;
    color: rgb(107, 114, 128);
    font-size: 14px;
}

/* 镜像分发弹窗样式 */
.distribute-modal[b-yacyhaekyj] {
    max-width: 700px;
}

.distribute-nodes-section[b-yacyhaekyj] {
    margin: 16px 0;
    padding: 16px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.nodes-header[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.nodes-checkbox-grid[b-yacyhaekyj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
}

.node-checkbox-item[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.15s;
}

.node-checkbox-item:hover[b-yacyhaekyj] {
    background: #f3f4f6;
    border-color: #2563eb;
}

.node-checkbox-item.selected[b-yacyhaekyj] {
    background: #dbeafe;
    border-color: #2563eb;
    color: #1e40af;
}

.node-checkbox-item i[b-yacyhaekyj] {
    font-size: 14px;
    color: #9ca3af;
}

.node-checkbox-item.selected i[b-yacyhaekyj] {
    color: #2563eb;
}

.nodes-hint[b-yacyhaekyj] {
    margin-top: 12px;
    font-size: 13px;
    color: #6b7280;
}

.hint-text[b-yacyhaekyj] {
    color: #9ca3af;
    font-style: italic;
}

.distribute-progress[b-yacyhaekyj] {
    padding: 16px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    margin-top: 16px;
}

.progress-info[b-yacyhaekyj] {
    text-align: left;
}

.progress-header[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.progress-icon[b-yacyhaekyj] {
    font-size: 18px;
}

.progress-message[b-yacyhaekyj] {
    font-size: 14px;
    font-weight: 500;
    color: #0369a1;
}

.progress-stats[b-yacyhaekyj] {
    display: flex;
    gap: 16px;
    margin-bottom: 12px;
}

.stat-item[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
}

.stat-item.success[b-yacyhaekyj] {
    color: #16a34a;
}

.stat-item.failed[b-yacyhaekyj] {
    color: #ef4444;
}

.progress-bar-container[b-yacyhaekyj] {
    width: 100%;
    height: 8px;
    background: #e0f2fe;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 8px;
}

.progress-bar[b-yacyhaekyj] {
    height: 100%;
    background: linear-gradient(90deg, #2563eb, #0ea5e9);
    border-radius: 4px;
    transition: width 0.3s ease;
}

.progress-text[b-yacyhaekyj] {
    font-size: 12px;
    color: #6b7280;
    text-align: center;
}

.current-node[b-yacyhaekyj] {
    margin-top: 8px;
    font-size: 13px;
    color: #6b7280;
}

.current-node code[b-yacyhaekyj] {
    background: #e0f2fe;
    padding: 2px 8px;
    border-radius: 4px;
    color: #0369a1;
}

.distribute-result[b-yacyhaekyj] {
    margin-top: 16px;
}

.distribute-result .result-header[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px;
    border-radius: 6px;
    margin-bottom: 12px;
}

.distribute-result .result-header.success[b-yacyhaekyj] {
    background: #dcfce7;
    color: #166534;
}

.distribute-result .result-header.failed[b-yacyhaekyj] {
    background: #fee2e2;
    color: #991b1b;
}

.node-results[b-yacyhaekyj] {
    max-height: 250px;
    overflow-y: auto;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.result-message[b-yacyhaekyj] {
    font-size: 12px;
    color: #6b7280;
}

/* 镜像上传样式 */
.upload-section[b-yacyhaekyj] {
    padding: 20px;
}

.upload-header[b-yacyhaekyj] {
    margin-bottom: 20px;
}

.upload-header .section-title[b-yacyhaekyj] {
    font-size: 16px;
    margin: 0 0 8px 0;
}

.section-desc[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

.upload-area[b-yacyhaekyj] {
    position: relative;
    border: 2px dashed #d1d5db;
    border-radius: 8px;
    padding: 40px 20px;
    text-align: center;
    margin-bottom: 20px;
    transition: all 0.15s;
    cursor: pointer;
}

.upload-area:hover[b-yacyhaekyj] {
    border-color: #2563eb;
    background: #f0f9ff;
}

.upload-area .file-input[b-yacyhaekyj] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-hint[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}

.upload-hint i[b-yacyhaekyj] {
    font-size: 48px;
    color: #9ca3af;
}

.upload-hint span[b-yacyhaekyj] {
    font-size: 16px;
    color: #374151;
    font-weight: 500;
}

.upload-hint small[b-yacyhaekyj] {
    font-size: 12px;
    color: #9ca3af;
}

.upload-progress[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    margin-bottom: 20px;
    color: #0369a1;
}

.upload-result[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
}

.upload-result.success[b-yacyhaekyj] {
    background: #dcfce7;
    color: #166534;
}

.upload-result.error[b-yacyhaekyj] {
    background: #fee2e2;
    color: #991b1b;
}

.upload-records[b-yacyhaekyj] {
    margin-top: 24px;
}

.records-header[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.text-muted[b-yacyhaekyj] {
    color: #9ca3af;
}

.grouped-image-meta[b-yacyhaekyj] {
    margin-top: 4px;
    font-size: 12px;
}

.grouped-node-summary[b-yacyhaekyj] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.grouped-node-list[b-yacyhaekyj] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.grouped-node-chip[b-yacyhaekyj] {
    font-size: 12px;
}

.tag-yellow[b-yacyhaekyj] {
    background: #fef3c7;
    color: #92400e;
}

@media (max-width: 768px) {
    .page-header[b-yacyhaekyj] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .filter-row[b-yacyhaekyj] {
        flex-wrap: wrap;
    }

    .form-row[b-yacyhaekyj] {
        flex-wrap: wrap;
    }
}

/* Harbor 镜像浏览器 */
.harbor-browser[b-yacyhaekyj] {
    display: flex;
    gap: 0;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    border: 1px solid #e5e7eb;
    border-radius: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    overflow: hidden;
}

.registry-management-page .harbor-browser[b-yacyhaekyj] {
    flex: 0 0 auto;
    min-height: 560px;
}

.registry-management-page .harbor-content[b-yacyhaekyj] {
    flex: 0 0 auto;
    overflow-y: visible;
}

.harbor-sidebar[b-yacyhaekyj] {
    flex: 0 0 clamp(280px, 24%, 340px);
    min-width: 0;
    background: #f9fafb;
    border-right: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
}

.harbor-sidebar-header[b-yacyhaekyj] {
    padding: 12px 16px;
    font-weight: 600;
    font-size: 14px;
    color: #374151;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 8px;
}

.harbor-sidebar-list[b-yacyhaekyj] {
    flex: 1;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden auto;
}

.harbor-sidebar-item[b-yacyhaekyj] {
    padding: 10px 16px;
    cursor: pointer;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) 24px;
    align-items: start;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    gap: 8px;
    font-size: 13px;
    color: #4b5563;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.15s;
}

.harbor-sidebar-item:hover[b-yacyhaekyj] {
    background: #e0e7ff;
}

.harbor-sidebar-item.active[b-yacyhaekyj] {
    background: #dbeafe;
    color: #1d4ed8;
    font-weight: 600;
}

.harbor-sidebar-item > i[b-yacyhaekyj] {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 3px;
}

.harbor-project-copy[b-yacyhaekyj] {
    min-width: 0;
    display: grid;
    gap: 2px;
    max-width: 100%;
}

.harbor-project-name[b-yacyhaekyj] {
    display: block;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    line-height: 1.45;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.harbor-project-owner[b-yacyhaekyj] {
    display: block;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    font-size: 12px;
    color: #9ca3af;
    font-weight: 400;
    line-height: 1.4;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.harbor-sidebar-item > .btn-copy-harbor[b-yacyhaekyj] {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 1px;
}

.harbor-project-actions[b-yacyhaekyj] {
    width: 24px;
    min-width: 0;
}

.harbor-project-actions[b-yacyhaekyj]  .ant-btn-link {
    margin-top: -2px;
    width: 24px;
    height: 24px;
    padding-inline: 4px;
}

.harbor-page-state[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-height: 160px;
    padding: 40px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #9ca3af;
    text-align: center;
}

.harbor-page-state > i[b-yacyhaekyj] {
    font-size: 28px;
}

.harbor-project-empty[b-yacyhaekyj] {
    min-height: 100%;
    padding: 60px 24px;
}

.harbor-content[b-yacyhaekyj] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    padding: 16px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.harbor-repos-section[b-yacyhaekyj], .harbor-artifacts-section[b-yacyhaekyj] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.harbor-section-header[b-yacyhaekyj] {
    padding: 10px 16px;
    font-weight: 600;
    font-size: 13px;
    color: #374151;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 8px;
}

.harbor-count[b-yacyhaekyj] {
    margin-left: auto;
    font-weight: 400;
    font-size: 12px;
    color: #9ca3af;
}

.harbor-repo-list[b-yacyhaekyj] {
    padding: 4px 0;
}

.harbor-repo-item[b-yacyhaekyj] {
    padding: 8px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #4b5563;
    transition: background 0.15s;
}

.harbor-repo-item:hover[b-yacyhaekyj] {
    background: #e0e7ff;
}

.harbor-repo-item.active[b-yacyhaekyj] {
    background: #dbeafe;
    color: #1d4ed8;
    font-weight: 600;
}

.harbor-repo-name[b-yacyhaekyj] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.harbor-repo-meta[b-yacyhaekyj] {
    font-size: 11px;
    color: #9ca3af;
}

.harbor-artifact-table-wrapper[b-yacyhaekyj] {
    overflow: auto;
    max-height: calc(100vh - 380px);
}

.harbor-artifact-table[b-yacyhaekyj] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.harbor-artifact-table th[b-yacyhaekyj] {
    padding: 8px 12px;
    text-align: left;
    font-weight: 600;
    color: #6b7280;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.harbor-artifact-table td[b-yacyhaekyj] {
    padding: 8px 12px;
    border-bottom: 1px solid #f3f4f6;
    color: #374151;
}

.harbor-artifact-table tr:hover[b-yacyhaekyj] {
    background: #f9fafb;
}

.harbor-tag-cell[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.harbor-tag-cell code[b-yacyhaekyj] {
    font-size: 12px;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 3px;
    color: #1f2937;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
}

.btn-copy-harbor[b-yacyhaekyj] {
    background: none;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 2px 4px;
    font-size: 12px;
    transition: color 0.15s;
}

.btn-copy-harbor:hover[b-yacyhaekyj] {
    color: #2563eb;
}

.harbor-label-tag[b-yacyhaekyj] {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 11px;
    background: #e0e7ff;
    color: #3730a3;
    margin-right: 4px;
}

.pagination-bar[b-yacyhaekyj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid #f3f4f6;
}

.pagination-info[b-yacyhaekyj] {
    font-size: 13px;
    color: #6b7280;
}

.pagination-btns[b-yacyhaekyj] {
    display: flex;
    gap: 6px;
}

/* 用户仓库凭证 */
.tag-gray[b-yacyhaekyj] { background: #f3f4f6; color: #6b7280; }

.registry-cred-card[b-yacyhaekyj] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f9fafb;
    margin-bottom: 16px;
    overflow: hidden;
}
.registry-cred-head[b-yacyhaekyj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
    font-size: 13px;
}
.registry-cred-body[b-yacyhaekyj] { padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.registry-cred-row[b-yacyhaekyj] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.registry-cred-row.push-example-row[b-yacyhaekyj] { align-items: flex-start; }
.registry-cred-label[b-yacyhaekyj] { width: 64px; color: #6b7280; font-size: 12px; flex-shrink: 0; }
.registry-cred-empty[b-yacyhaekyj] {
    margin-bottom: 16px; padding: 10px 14px; border-radius: 8px;
    background: #fffbeb; border: 1px solid #fde68a; color: #92400e; font-size: 13px;
}

.credential-modal[b-yacyhaekyj] {
    max-width: 720px;
    overflow: hidden;
}

.credential-modal .modal-header[b-yacyhaekyj] {
    gap: 16px;
}

.credential-modal .modal-title[b-yacyhaekyj] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.credential-modal[b-yacyhaekyj]  .credential-modal-close {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    color: #64748b;
}

.credential-modal-body[b-yacyhaekyj] {
    max-height: calc(90vh - 65px);
    overflow-y: auto;
}

.credential-meta[b-yacyhaekyj] {
    margin: 0 0 18px;
    padding: 0;
    border-block: 1px solid #e5e7eb;
}

.credential-meta-row[b-yacyhaekyj] {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 16px;
    padding: 11px 0;
}

.credential-meta-row + .credential-meta-row[b-yacyhaekyj] {
    border-top: 1px solid #f1f5f9;
}

.credential-meta-row dt[b-yacyhaekyj],
.credential-meta-row dd[b-yacyhaekyj] {
    margin: 0;
}

.credential-meta-row dt[b-yacyhaekyj] {
    color: #64748b;
    font-size: 13px;
    font-weight: 500;
}

.credential-meta-row code[b-yacyhaekyj] {
    color: #0f172a;
    font-size: 13px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 768px) {
    .registry-access-summary[b-yacyhaekyj],
    .registry-compact-card[b-yacyhaekyj] {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .registry-compact-card__body[b-yacyhaekyj] {
        width: 100%;
        justify-content: space-between;
    }
}

/* 部门共享多选 */
.dept-share-search[b-yacyhaekyj] { margin-bottom: 10px; }
.dept-share-search .search-input[b-yacyhaekyj] { width: 100%; }
.dept-share-list[b-yacyhaekyj] {
    max-height: 280px; overflow-y: auto;
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 6px;
}
.dept-share-item[b-yacyhaekyj] {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 10px; border-radius: 6px; cursor: pointer; font-size: 13px;
}
.dept-share-item:hover[b-yacyhaekyj] { background: #f8fafc; }
.dept-share-item input[b-yacyhaekyj] { width: 15px; height: 15px; }
.dept-share-count[b-yacyhaekyj] { margin-top: 8px; color: #6b7280; font-size: 12px; }

/* 部门共享：左树 + 右内容 */
.dept-share-browser[b-yacyhaekyj] {
    display: flex;
    gap: 0;
    min-height: 400px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}
.dept-tree-sidebar[b-yacyhaekyj] {
    width: 220px;
    min-width: 220px;
    background: #f9fafb;
    border-right: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
}
.dept-tree-header[b-yacyhaekyj] {
    padding: 12px 16px;
    font-weight: 600;
    font-size: 14px;
    color: #374151;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dept-tree-list[b-yacyhaekyj] { flex: 1; overflow-y: auto; }
.dept-tree-item[b-yacyhaekyj] {
    padding: 10px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #4b5563;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.15s;
}
.dept-tree-item:hover[b-yacyhaekyj] { background: #e0e7ff; }
.dept-tree-item.active[b-yacyhaekyj] { background: #dbeafe; color: #1d4ed8; font-weight: 600; }
.dept-share-content[b-yacyhaekyj] { flex: 1; padding: 16px; overflow-y: auto; }
.harbor-create-quota[b-yacyhaekyj] { padding: 0 20px 16px; }
.harbor-capacity-card[b-yacyhaekyj], .project-quota-summary[b-yacyhaekyj] {
    margin: 0 20px 16px; padding: 14px 16px; border: 1px solid #dbeafe; border-radius: 8px;
    background: #eff6ff; color: #1e3a8a; display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.project-quota-summary[b-yacyhaekyj] { margin: 0; background: #f8fafc; border-color: #e5e7eb; color: #374151; }
.harbor-capacity-summary[b-yacyhaekyj] { display: flex; align-items: center; gap: 28px; min-width: 0; }
.harbor-capacity-summary > strong[b-yacyhaekyj] { white-space: nowrap; }
.harbor-capacity-metrics[b-yacyhaekyj] { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; min-width: 0; }
.harbor-capacity-metrics > span[b-yacyhaekyj] { display: grid; gap: 1px; min-width: 72px; }
.harbor-capacity-metrics small[b-yacyhaekyj], .capacity-usage small[b-yacyhaekyj] { color: #64748b; font-size: 12px; font-weight: 400; }
.harbor-capacity-metrics b[b-yacyhaekyj] { font-size: 14px; font-weight: 600; }
.project-quota-summary > div[b-yacyhaekyj] { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; min-width: 0; }
.harbor-capacity-card.warning[b-yacyhaekyj] { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.harbor-capacity-card.error[b-yacyhaekyj], .project-quota-summary.error[b-yacyhaekyj] { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.harbor-capacity-card.object-storage[b-yacyhaekyj] { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.capacity-unavailable b[b-yacyhaekyj] { color: #64748b; font-size: 13px; font-weight: 500; }
.capacity-provider[b-yacyhaekyj] { font-size: 14px; font-weight: 600; text-transform: uppercase; }
.capacity-percent[b-yacyhaekyj] { font-size: 20px; font-weight: 600; white-space: nowrap; }
.capacity-usage[b-yacyhaekyj] { display: grid; justify-items: end; flex: 0 0 auto; line-height: 1.15; }
.harbor-capacity-hint[b-yacyhaekyj] { margin: -8px 20px 16px; color: #6b7280; font-size: 12px; }

@media (max-width: 900px) {
    .harbor-browser[b-yacyhaekyj] {
        flex: 0 0 auto;
        flex-direction: column;
        min-height: 560px;
    }

    .harbor-sidebar[b-yacyhaekyj] {
        flex: 0 0 auto;
        width: 100%;
        max-height: 240px;
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .harbor-content[b-yacyhaekyj] {
        min-height: 320px;
    }
}

@media (max-width: 640px) {
    .harbor-toolbar-header[b-yacyhaekyj] {
        padding: 12px;
    }

    .harbor-toolbar[b-yacyhaekyj] {
        align-items: stretch;
    }

    .harbor-toolbar-title[b-yacyhaekyj],
    .harbor-create-group[b-yacyhaekyj],
    .harbor-create-input[b-yacyhaekyj],
    .harbor-toolbar-actions[b-yacyhaekyj] {
        flex-basis: 100%;
        width: 100%;
        min-width: 0;
    }

    .harbor-create-group[b-yacyhaekyj],
    .harbor-toolbar-actions[b-yacyhaekyj] {
        align-items: stretch;
    }

    .harbor-toolbar-actions[b-yacyhaekyj] {
        margin-left: 0;
        padding-top: 10px;
        padding-left: 0;
        border-top: 1px solid #e5e7eb;
        border-left: 0;
    }

    .harbor-create-group[b-yacyhaekyj]  .ant-btn,
    .harbor-toolbar-actions[b-yacyhaekyj]  .ant-btn {
        flex: 1 1 auto;
    }

    .harbor-toolbar-actions[b-yacyhaekyj]  .harbor-refresh-button {
        flex: 0 0 32px;
    }

    .harbor-capacity-card[b-yacyhaekyj],
    .harbor-capacity-summary[b-yacyhaekyj] {
        align-items: flex-start;
    }

    .harbor-capacity-summary[b-yacyhaekyj] {
        flex-direction: column;
        gap: 10px;
    }

    .upload-section.provision-section[b-yacyhaekyj] {
        padding: 12px;
    }
}
.image-import-loading-layer[b-yacyhaekyj] {
    position: fixed;
    inset: 0;
    z-index: 1600;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.78);
}

.image-push-command-panel[b-yacyhaekyj] {
    margin-top: 16px;
}

.image-import-created[b-yacyhaekyj] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 20px 4px 8px;
}

.image-import-created > .anticon[b-yacyhaekyj] {
    color: #52c41a;
    font-size: 28px;
}

.image-import-created strong[b-yacyhaekyj] {
    display: block;
    margin-bottom: 6px;
    font-size: 16px;
}

.image-import-created p[b-yacyhaekyj] {
    margin: 0;
    color: #595959;
    line-height: 1.6;
}
/* /Components/Pages/Inference/CreateInferenceService.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
/* 提交中全屏遮罩 */
.submit-overlay[b-seatv5b3gg] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3000;
}
.submit-overlay-box[b-seatv5b3gg] {
    background: #fff;
    border-radius: 12px;
    padding: 28px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}
.submit-spinner[b-seatv5b3gg] {
    width: 40px;
    height: 40px;
    border: 4px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: submit-spin-b-seatv5b3gg 0.9s linear infinite;
}
@keyframes submit-spin-b-seatv5b3gg { to { transform: rotate(360deg); } }
.submit-overlay-text[b-seatv5b3gg] { font-size: 14px; color: #374151; font-weight: 500; }

.page-container[b-seatv5b3gg] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-seatv5b3gg] {
    margin: 0 auto;
}

.page-header[b-seatv5b3gg] {
    margin-bottom: 16px;
}

.header-left[b-seatv5b3gg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.back-link[b-seatv5b3gg] {
    color: #2563eb;
    text-decoration: none;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.back-link:hover[b-seatv5b3gg] {
    text-decoration: underline;
}

.page-title[b-seatv5b3gg] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.page-title i[b-seatv5b3gg] {
    color: #2563eb;
}

.form-container[b-seatv5b3gg] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 24px;
}

.form-section[b-seatv5b3gg] {
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f3f4f6;
}

.form-section:last-of-type[b-seatv5b3gg] {
    border-bottom: none;
    margin-bottom: 20px;
}

.collapsible-section .section-header[b-seatv5b3gg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    padding: 10px 12px;
    margin-bottom: 0;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    transition: all 0.15s;
}

.collapsible-section .section-header:hover[b-seatv5b3gg] {
    background: #f3f4f6;
    border-color: #d1d5db;
}

.collapsible-section .section-header .section-title[b-seatv5b3gg] {
    margin: 0;
    padding: 6px 0;
}

.collapsible-section .section-header .section-badge[b-seatv5b3gg] {
    margin-right: auto;
}

.section-title[b-seatv5b3gg] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.section-title i[b-seatv5b3gg] {
    color: #2563eb;
}

.section-badge[b-seatv5b3gg] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    background: #dbeafe;
    color: #1d4ed8;
}

.section-badge.optional[b-seatv5b3gg] {
    background: #f3f4f6;
    color: #6b7280;
}

.collapse-toggle[b-seatv5b3gg] {
    color: #6b7280;
    font-size: 12px;
    display: flex;
    align-items: center;
    padding: 2px 4px;
    transition: all 0.15s;
}

.collapse-toggle:hover[b-seatv5b3gg] {
    color: #2563eb;
}

.collapse-content[b-seatv5b3gg] {
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-top: none;
    border-radius: 0 0 6px 6px;
    background: white;
    animation: fadeIn-b-seatv5b3gg 0.2s ease;
}

/* 三列并排选择器：训练资源 | 数据集 | 模型，窄屏 flex-wrap 自动换行 */
.selector-columns[b-seatv5b3gg] {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: flex-start;
}

.selector-column[b-seatv5b3gg] {
    flex: 1 1 320px;
    min-width: 280px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@keyframes fadeIn-b-seatv5b3gg {
    from { opacity: 0; }
    to { opacity: 1; }
}

.form-grid[b-seatv5b3gg] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.form-item[b-seatv5b3gg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-item.full-width[b-seatv5b3gg] {
    grid-column: 1 / -1;
}

.form-label[b-seatv5b3gg] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-seatv5b3gg]::after {
    content: " *";
    color: #ef4444;
}

.form-hint[b-seatv5b3gg] {
    font-size: 12px;
    color: #6b7280;
}

.deploy-methods[b-seatv5b3gg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.deploy-card[b-seatv5b3gg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 16px 12px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
}

.deploy-card:hover:not(.disabled)[b-seatv5b3gg] {
    border-color: #93c5fd;
    background: #f0f7ff;
}

.deploy-card.selected[b-seatv5b3gg] {
    border-color: #2563eb;
    background: #eff6ff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.deploy-card.disabled[b-seatv5b3gg] {
    opacity: 0.5;
    cursor: not-allowed;
    border-color: #d1d5db;
}

.deploy-card.disabled:hover[b-seatv5b3gg] {
    border-color: #d1d5db;
    background: transparent;
}

.deploy-icon[b-seatv5b3gg] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #2563eb;
}

.deploy-card.selected .deploy-icon[b-seatv5b3gg] {
    background: #dbeafe;
}

.deploy-icon-img[b-seatv5b3gg] {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.deploy-name[b-seatv5b3gg] {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
}

.deploy-desc[b-seatv5b3gg] {
    font-size: 11px;
    color: #6b7280;
    line-height: 1.3;
}

.deploy-disabled-badge[b-seatv5b3gg] {
    font-size: 10px;
    color: #f97316;
    font-weight: 500;
    background: #ffedd5;
    padding: 2px 6px;
    border-radius: 3px;
    margin-top: 4px;
}

.backend-config[b-seatv5b3gg] {
    margin-top: 16px;
    padding: 16px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

/* 端口映射列表 */
.port-mappings-list[b-seatv5b3gg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.port-mapping-row[b-seatv5b3gg] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.port-name-input[b-seatv5b3gg] {
    width: 100px !important;
    flex-shrink: 0;
}

.port-number-input[b-seatv5b3gg] {
    width: 110px !important;
    flex-shrink: 0;
}

.port-protocol-input[b-seatv5b3gg] {
    width: 80px !important;
    flex-shrink: 0;
}

.port-expose-label[b-seatv5b3gg] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: #374151;
    white-space: nowrap;
    cursor: pointer;
    flex-shrink: 0;
}

.dynamic-remove-action[b-seatv5b3gg] {
    flex-shrink: 0;
}

.ollama-env-help[b-seatv5b3gg] {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1e40af;
    font-size: 13px;
    line-height: 1.5;
}

.ollama-env-help i[b-seatv5b3gg] {
    margin-top: 2px;
    color: #2563eb;
}

.ollama-env-help code[b-seatv5b3gg] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 12px;
    background: rgba(37, 99, 235, 0.08);
    padding: 1px 4px;
    border-radius: 4px;
}

/* 动态参数 / 环境变量输入行 */
.dynamic-input-list[b-seatv5b3gg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dynamic-input-row[b-seatv5b3gg] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.dynamic-value-input[b-seatv5b3gg],
.env-value-input[b-seatv5b3gg] {
    flex: 1;
}

.env-key-input[b-seatv5b3gg] {
    width: 180px !important;
    flex-shrink: 0;
}

.image-fixed-hint[b-seatv5b3gg],
.framework-model-hint[b-seatv5b3gg] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    background: #eff6ff;
    color: #1e40af;
    font-size: 13px;
}

.image-fixed-hint[b-seatv5b3gg] {
    margin-top: 0;
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}

.framework-model-hint.warning[b-seatv5b3gg] {
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}

.recommended-params-row[b-seatv5b3gg] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.recommended-params-hint[b-seatv5b3gg] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
    padding: 9px 12px;
    border: 1px solid #dbeafe;
    border-radius: 6px;
    background: #f8fbff;
    color: #1e40af;
    font-size: 12px;
    line-height: 1.5;
}

/* 表单操作 */
.form-actions[b-seatv5b3gg] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #f3f4f6;
}

@media (max-width: 768px) {
    .deploy-methods[b-seatv5b3gg] {
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    }

    .form-grid[b-seatv5b3gg] {
        grid-template-columns: 1fr;
    }

    .dynamic-input-row[b-seatv5b3gg] {
        flex-direction: column;
        align-items: stretch;
    }

    .env-key-input[b-seatv5b3gg] {
        width: 100% !important;
    }

    .dynamic-remove-action[b-seatv5b3gg] {
        align-self: flex-end;
    }
}


/* /Components/Pages/Inference/InferenceServiceDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-so343q5yao] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-so343q5yao] { margin: 0 auto; }

.page-header[b-so343q5yao] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}

.header-left[b-so343q5yao] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.back-link[b-so343q5yao] { color: #2563eb; text-decoration: none; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.back-link:hover[b-so343q5yao] { text-decoration: underline; }

.page-title[b-so343q5yao] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; }

.header-right[b-so343q5yao] { display: flex; align-items: center; gap: 8px; }

.backend-badge[b-so343q5yao] { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 500; }
.backend-badge-sm[b-so343q5yao] { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; }

.backend-vllm[b-so343q5yao] { background: #dbeafe; color: #1d4ed8; }
.backend-sglang[b-so343q5yao] { background: #dcfce7; color: #166534; }
.backend-ollama[b-so343q5yao] { background: #ffedd5; color: #9a3412; }
.backend-tgi[b-so343q5yao] { background: #fce7f3; color: #be185d; }
.backend-triton[b-so343q5yao] { background: #d1fae5; color: #065f46; }
.backend-onnx[b-so343q5yao] { background: #e0e7ff; color: #3730a3; }
.backend-yolo[b-so343q5yao] { background: #fef3c7; color: #92400e; }
.backend-whisper[b-so343q5yao] { background: #ede9fe; color: #5b21b6; }
.backend-custom[b-so343q5yao] { background: #f3f4f6; color: #374151; }

.status-tag[b-so343q5yao] { display: inline-block; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 500; }
.status-tag-running[b-so343q5yao] { background: #dcfce7; color: #16a34a; }
.status-tag-partiallyrunning[b-so343q5yao] { background: #fef3c7; color: #d97706; }
.status-tag-pending[b-so343q5yao] { background: #fef3c7; color: #d97706; }
.status-tag-succeeded[b-so343q5yao] { background: #f1f5f9; color: #64748b; }
.status-tag-failed[b-so343q5yao] { background: #fee2e2; color: #ef4444; }
.status-tag-unknown[b-so343q5yao] { background: #f1f5f9; color: #64748b; }

.replicas-ok[b-so343q5yao] { color: #16a34a; font-weight: 600; }
.replicas-warn[b-so343q5yao] { color: #d97706; font-weight: 600; }
.replicas-error[b-so343q5yao] { color: #ef4444; font-weight: 600; }

.card[b-so343q5yao] { background: white; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); margin-bottom: 16px; }
.card-header[b-so343q5yao] { padding: 12px 20px; border-bottom: 1px solid #e5e7eb; font-size: 14px; font-weight: 600; color: #111827; display: flex; align-items: center; gap: 8px; }
.card-header .header-row[b-so343q5yao] { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.card-body[b-so343q5yao] { padding: 16px 20px; }

.info-grid[b-so343q5yao] { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.info-item[b-so343q5yao] { display: flex; flex-direction: column; gap: 4px; }
.info-label[b-so343q5yao] { font-size: 12px; color: #6b7280; }
.info-value[b-so343q5yao] { font-size: 14px; color: #111827; }
.code-value[b-so343q5yao] { font-family: monospace; font-size: 12px; word-break: break-all; background: #f3f4f6; padding: 2px 6px; border-radius: 4px; }
.service-link[b-so343q5yao] { color: #2563eb; text-decoration: none; }
.service-link:hover[b-so343q5yao] { text-decoration: underline; }

.port-mapping-table[b-so343q5yao] { width: 100%; border-collapse: collapse; font-size: 12px; }
.port-mapping-table th[b-so343q5yao] { text-align: left; padding: 4px 8px; background: #f3f4f6; border: 1px solid #e5e7eb; font-weight: 500; color: #374151; white-space: nowrap; }
.port-mapping-table td[b-so343q5yao] { padding: 4px 8px; border: 1px solid #e5e7eb; color: #111827; }
.port-mapping-table code[b-so343q5yao] { background: #f3f4f6; padding: 1px 4px; border-radius: 3px; font-size: 11px; }

.visibility-row[b-so343q5yao] { display: flex; align-items: center; gap: 16px; }
.visibility-options[b-so343q5yao] { display: flex; gap: 8px; }
.visibility-options button[b-so343q5yao] { padding: 6px 14px; border: 1px solid #d1d5db; background: white; border-radius: 6px; font-size: 13px; cursor: pointer; transition: all 0.15s; display: flex; align-items: center; gap: 4px; color: #374151; }
.visibility-options button:hover[b-so343q5yao] { background: #f3f4f6; }
.visibility-options button.active[b-so343q5yao] { background: #2563eb; color: white; border-color: #2563eb; }

.error-card[b-so343q5yao] { border-color: #fca5a5; }
.error-card .card-header[b-so343q5yao] { color: #ef4444; }
.error-content[b-so343q5yao] { font-size: 14px; color: #dc2626; background: #fef2f2; padding: 12px; border-radius: 6px; white-space: pre-wrap; }

.debug-workspace[b-so343q5yao] { display: flex; flex-direction: column; gap: 16px; }
.debug-grid[b-so343q5yao] { display: grid; grid-template-columns: minmax(320px, 0.85fr) minmax(420px, 1.15fr); gap: 16px; align-items: stretch; }
.debug-panel[b-so343q5yao] { min-width: 0; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 18px; }
.debug-panel-header[b-so343q5yao] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid #e5e7eb; }
.debug-panel-header h3[b-so343q5yao] { margin: 0; color: #111827; font-size: 15px; font-weight: 600; }
.debug-panel-header code[b-so343q5yao] { display: block; margin-top: 6px; color: #6b7280; font-size: 12px; overflow-wrap: anywhere; }
.debug-form[b-so343q5yao] { display: flex; flex-direction: column; gap: 16px; }
.debug-field[b-so343q5yao] { min-width: 0; }
.debug-field > label[b-so343q5yao], .debug-label-row label[b-so343q5yao] { display: block; margin-bottom: 7px; color: #374151; font-size: 13px; font-weight: 500; }
.debug-label-row[b-so343q5yao] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.debug-label-row span[b-so343q5yao] { color: #2563eb; font-size: 12px; font-variant-numeric: tabular-nums; }
.required-mark[b-so343q5yao] { color: #dc2626; }
.debug-parameters[b-so343q5yao] { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, 0.7fr); gap: 20px; align-items: end; }
.debug-actions[b-so343q5yao] { display: flex; align-items: center; gap: 8px; margin-top: auto; }
.debug-response-panel[b-so343q5yao] { min-height: 520px; }
.debug-meta[b-so343q5yao] { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 6px; }
.debug-meta span[b-so343q5yao] { padding: 2px 8px; border-radius: 4px; background: #f3f4f6; color: #4b5563; font-size: 12px; font-variant-numeric: tabular-nums; }
.debug-response[b-so343q5yao] { flex: 1; min-height: 360px; max-height: 620px; overflow: auto; padding: 16px; border: 1px solid #e5e7eb; border-radius: 6px; background: #f9fafb; display: flex; align-items: center; justify-content: center; }
.debug-response pre[b-so343q5yao] { align-self: flex-start; width: 100%; margin: 0; color: #111827; font-family: 'Consolas', 'Monaco', monospace; font-size: 13px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.debug-token-detail[b-so343q5yao] { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 16px; color: #6b7280; font-size: 12px; }

.gpu-history-info[b-so343q5yao] { background: #fef3c7; border: 1px solid #fcd34d; border-radius: 6px; padding: 12px 16px; }
.gpu-history-info p[b-so343q5yao] { margin: 0; color: #92400e; font-size: 14px; display: flex; align-items: center; gap: 8px; }
.gpu-history-info i[b-so343q5yao] { color: #f59e0b; }

.metrics-loading[b-so343q5yao] { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 40px; color: #6b7280; }
.loading-spinner.small[b-so343q5yao] { width: 20px; height: 20px; border-width: 2px; }

.gpu-metrics-grid[b-so343q5yao] { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; }
.metric-card[b-so343q5yao] { display: flex; align-items: center; gap: 16px; padding: 20px; background: #f9fafb; border-radius: 8px; border: 1px solid #e5e7eb; }
.metric-icon[b-so343q5yao] { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; }
.metric-icon.memory[b-so343q5yao] { background: #dbeafe; color: #2563eb; }
.metric-icon.utilization[b-so343q5yao] { background: #dcfce7; color: #16a34a; }
.metric-icon.device[b-so343q5yao] { background: #fef3c7; color: #d97706; }
.metric-content[b-so343q5yao] { flex: 1; }
.metric-label[b-so343q5yao] { font-size: 12px; color: #6b7280; margin-bottom: 4px; }
.metric-value[b-so343q5yao] { font-size: 24px; font-weight: 600; color: #111827; }
.metric-value.small[b-so343q5yao] { font-size: 14px; font-family: monospace; }
.metric-unit[b-so343q5yao] { font-size: 14px; font-weight: 400; color: #6b7280; margin-left: 2px; }

.no-metrics[b-so343q5yao] { text-align: center; padding: 60px 20px; color: #6b7280; }
.no-metrics i[b-so343q5yao] { font-size: 48px; margin-bottom: 16px; color: #d1d5db; }
.no-metrics p[b-so343q5yao] { font-size: 14px; margin: 0; }
.no-metrics .hint[b-so343q5yao] { font-size: 12px; color: #9ca3af; margin-top: 8px; }

.time-range-selector[b-so343q5yao] { display: flex; gap: 8px; margin-bottom: 16px; }
.time-range-selector button[b-so343q5yao] { padding: 6px 16px; border: 1px solid #d1d5db; background: white; border-radius: 6px; font-size: 13px; cursor: pointer; transition: all 0.15s; }
.time-range-selector button:hover[b-so343q5yao] { background: #f3f4f6; }
.time-range-selector button.active[b-so343q5yao] { background: #2563eb; color: white; border-color: #2563eb; }

.chart-container[b-so343q5yao] { width: 100%; overflow-x: auto; }
.chart[b-so343q5yao] { width: 100%; max-width: 800px; height: auto; }
.chart-label[b-so343q5yao] { font-size: 10px; fill: #6b7280; }
.chart-info[b-so343q5yao] { display: flex; justify-content: space-between; margin-top: 12px; font-size: 12px; color: #6b7280; }

.logs-container[b-so343q5yao] { display: flex; gap: 16px; min-height: 500px; }
.pod-sidebar[b-so343q5yao] { width: 200px; flex-shrink: 0; background: white; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.pod-sidebar-header[b-so343q5yao] { padding: 12px 16px; border-bottom: 1px solid #e5e7eb; font-size: 14px; font-weight: 600; color: #111827; display: flex; align-items: center; gap: 8px; }
.pod-sidebar-content[b-so343q5yao] { padding: 8px; max-height: 450px; overflow-y: auto; }
.pod-tab-btn[b-so343q5yao] { width: 100%; padding: 10px 12px; border: none; background: transparent; cursor: pointer; font-size: 13px; color: #374151; border-radius: 6px; text-align: left; transition: all 0.15s; display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.pod-tab-btn:hover[b-so343q5yao] { background: #f3f4f6; }
.pod-tab-btn.active[b-so343q5yao] { background: #dbeafe; color: #2563eb; }
.pod-status-dot[b-so343q5yao] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.pod-status-dot.running[b-so343q5yao] { background: #22c55e; }
.pod-status-dot.pending[b-so343q5yao] { background: #f59e0b; }
.pod-status-dot.succeeded[b-so343q5yao] { background: #3b82f6; }
.pod-status-dot.failed[b-so343q5yao] { background: #ef4444; }
.pod-status-dot.unknown[b-so343q5yao] { background: #9ca3af; }
.pod-name-text[b-so343q5yao] { flex: 1; font-family: monospace; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pod-status-text[b-so343q5yao] { font-size: 10px; color: #6b7280; }
.pod-empty[b-so343q5yao] { text-align: center; padding: 20px; color: #9ca3af; font-size: 13px; }

.log-main[b-so343q5yao] { flex: 1; min-width: 0; }
.log-main .card[b-so343q5yao] { margin-bottom: 0; height: 100%; }
.selected-pod-hint[b-so343q5yao] { color: #6b7280; font-weight: 400; font-size: 13px; }
.log-toolbar[b-so343q5yao] { display: flex; align-items: center; gap: 16px; }
.log-toggle[b-so343q5yao] { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #595959; cursor: pointer; margin: 0; }
.log-toggle input[b-so343q5yao] { cursor: pointer; }
.log-toggle.disabled[b-so343q5yao] { color: #bfbfbf; cursor: not-allowed; }
.log-toggle.disabled input[b-so343q5yao] { cursor: not-allowed; }
.service-diagnosis[b-so343q5yao] { margin: 16px 0; }
.log-content[b-so343q5yao] { background: #1f2937; border-radius: 6px; padding: 12px; min-height: 480px; max-height: 70vh; overflow-y: auto; }
.log-content pre[b-so343q5yao] { font-family: 'Consolas', 'Monaco', monospace; font-size: 12px; color: #e5e7eb; line-height: 1.6; white-space: pre-wrap; margin: 0; }
.log-empty[b-so343q5yao] { text-align: center; color: #6b7280; padding: 40px; font-size: 14px; }
.log-empty i[b-so343q5yao] { font-size: 32px; margin-bottom: 12px; color: #d1d5db; }
.log-empty p[b-so343q5yao] { margin: 0; }
.terminal-toolbar[b-so343q5yao] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.terminal-container[b-so343q5yao] { height: 520px; background: #1e1e1e; border-radius: 8px; padding: 12px; overflow: hidden; }
.connection-hint[b-so343q5yao] { display: inline-flex; align-items: center; gap: 6px; color: #6b7280; font-size: 13px; }
.connection-hint.error[b-so343q5yao] { color: #dc2626; background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px; padding: 8px 10px; margin-bottom: 12px; }
.connection-status.connected[b-so343q5yao] { display: inline-flex; align-items: center; gap: 6px; color: #16a34a; font-size: 13px; }
.connection-status.connected i[b-so343q5yao] { font-size: 8px; }
.yaml-content[b-so343q5yao] { background: #1f2937; border-radius: 6px; padding: 16px; max-height: 600px; overflow-y: auto; }
.yaml-code[b-so343q5yao] { font-family: 'Consolas', 'Monaco', monospace; font-size: 12px; color: #e5e7eb; line-height: 1.6; white-space: pre-wrap; word-break: break-all; margin: 0; }

.btn[b-so343q5yao] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid transparent; transition: all 0.15s; text-decoration: none; }
.btn-primary[b-so343q5yao] { background: #2563eb; color: white; }
.btn-primary:hover[b-so343q5yao] { background: #1d4ed8; }
.btn-default[b-so343q5yao] { background: white; color: #374151; border-color: #d1d5db; }
.btn-default:hover[b-so343q5yao] { background: #f9fafb; }
.btn-danger[b-so343q5yao] { background: #ef4444; color: white; }
.btn-danger:hover[b-so343q5yao] { background: #dc2626; }
.btn-danger-outline[b-so343q5yao] { background: white; color: #ef4444; border-color: #fca5a5; }
.btn-danger-outline:hover[b-so343q5yao] { background: #fef2f2; }
.btn-sm[b-so343q5yao] { padding: 6px 12px; font-size: 13px; }
.btn:disabled[b-so343q5yao] { opacity: 0.6; cursor: not-allowed; }

.loading-container[b-so343q5yao], .error-state[b-so343q5yao] { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.loading-spinner[b-so343q5yao] { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin-b-so343q5yao 1s linear infinite; }

@keyframes spin-b-so343q5yao {
    to { transform: rotate(360deg); }
}

.loading-text[b-so343q5yao] { margin-top: 16px; color: #6b7280; font-size: 14px; }
.error-icon[b-so343q5yao] { font-size: 48px; color: #f59e0b; margin-bottom: 16px; }
.error-title[b-so343q5yao] { font-size: 18px; font-weight: 600; color: #111827; margin: 0 0 16px 0; }

.modal-overlay[b-so343q5yao] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; }

.force-delete-overlay[b-so343q5yao] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(17, 24, 39, 0.32);
}

.force-delete-overlay :deep(.ant-spin)[b-so343q5yao] {
    padding: 24px 32px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}
.modal-content[b-so343q5yao] { background: white; border-radius: 12px; width: 400px; max-width: 90vw; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }
.modal-header[b-so343q5yao] { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-bottom: 1px solid #e5e7eb; }
.modal-header h3[b-so343q5yao] { margin: 0; font-size: 16px; color: #111827; }
.modal-close[b-so343q5yao] { background: none; border: none; font-size: 20px; cursor: pointer; color: #6b7280; padding: 0; line-height: 1; }
.modal-close:hover[b-so343q5yao] { color: #111827; }
.modal-body[b-so343q5yao] { padding: 24px; }
.scale-info[b-so343q5yao] { display: flex; justify-content: space-between; margin-bottom: 16px; font-size: 14px; color: #374151; }
.scale-input-group[b-so343q5yao] { margin-bottom: 8px; }
.scale-input-group label[b-so343q5yao] { display: block; font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 8px; }
.scale-input[b-so343q5yao] { width: 100%; padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; outline: none; transition: border-color 0.15s; }
.scale-input:focus[b-so343q5yao] { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); }
.delete-warning[b-so343q5yao] { text-align: center; }
.delete-warning i[b-so343q5yao] { font-size: 48px; color: #f59e0b; margin-bottom: 12px; }
.delete-warning p[b-so343q5yao] { font-size: 14px; color: #374151; margin: 0 0 4px 0; }
.delete-warning .hint[b-so343q5yao] { font-size: 12px; color: #6b7280; }
.modal-footer[b-so343q5yao] { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 24px; border-top: 1px solid #e5e7eb; }

.events-list[b-so343q5yao] { display: flex; flex-direction: column; gap: 8px; }
.event-item[b-so343q5yao] { display: grid; grid-template-columns: 150px 70px 100px 1fr; gap: 12px; padding: 10px 12px; background: #f9fafb; border-radius: 6px; font-size: 13px; }
.event-item.event-warning[b-so343q5yao] { background: #fef3c7; }
.event-item.event-normal[b-so343q5yao] { background: #f0fdf4; }
.event-time[b-so343q5yao] { color: #6b7280; }
.event-type[b-so343q5yao] { font-weight: 500; }
.event-reason[b-so343q5yao] { font-weight: 600; color: #2563eb; }
.event-message[b-so343q5yao] { color: #374151; }

.toast[b-so343q5yao] { position: fixed; top: 24px; right: 24px; padding: 12px 20px; border-radius: 8px; display: flex; align-items: center; gap: 10px; z-index: 2000; animation: slideIn-b-so343q5yao 0.3s ease; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); }

@keyframes slideIn-b-so343q5yao {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-so343q5yao] { background: #dcfce7; color: #16a34a; }
.toast-error[b-so343q5yao] { background: #fee2e2; color: #ef4444; }

@media (max-width: 768px) {
    .page-header[b-so343q5yao] { flex-direction: column; align-items: flex-start; }
    .info-grid[b-so343q5yao] { grid-template-columns: 1fr; }
    .tabs[b-so343q5yao] { flex-wrap: wrap; }
    .tabs button[b-so343q5yao] { flex: 1; min-width: 100px; justify-content: center; }
    .logs-container[b-so343q5yao] { flex-direction: column; }
    .pod-sidebar[b-so343q5yao] { width: 100%; }
    .debug-grid[b-so343q5yao] { grid-template-columns: minmax(0, 1fr); }
    .debug-parameters[b-so343q5yao] { grid-template-columns: minmax(0, 1fr); }
    .debug-response-panel[b-so343q5yao] { min-height: 420px; }
    .debug-response[b-so343q5yao] { min-height: 280px; }
    .debug-panel-header[b-so343q5yao] { flex-direction: column; align-items: stretch; }
}
.request-telemetry-panel[b-so343q5yao] {
    margin-bottom: 16px;
    padding: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.request-telemetry-heading[b-so343q5yao],
.request-telemetry-actions[b-so343q5yao] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.request-telemetry-heading h3[b-so343q5yao] {
    margin: 0;
    color: #111827;
    font-size: 16px;
}

.request-telemetry-heading span[b-so343q5yao] {
    color: #64748b;
    font-size: 12px;
}

.request-telemetry-state[b-so343q5yao] {
    min-height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.request-metric-grid[b-so343q5yao],
.request-chart-grid[b-so343q5yao] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.request-metric[b-so343q5yao] {
    min-width: 0;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.request-metric span[b-so343q5yao],
.request-metric small[b-so343q5yao],
.request-metric strong[b-so343q5yao] {
    display: block;
}

.request-metric span[b-so343q5yao],
.request-metric small[b-so343q5yao] {
    color: #64748b;
    font-size: 12px;
}

.request-metric strong[b-so343q5yao] {
    margin: 6px 0 4px;
    color: #111827;
    font-size: 22px;
}

.request-chart-grid[b-so343q5yao] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.request-chart[b-so343q5yao] {
    min-width: 0;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.yolo-debug-grid[b-so343q5yao] {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.yolo-file-summary[b-so343q5yao] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
}

.yolo-file-summary span:first-child[b-so343q5yao] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yolo-result-panel[b-so343q5yao] {
    min-width: 0;
}

.yolo-result-empty[b-so343q5yao] {
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.yolo-result-image[b-so343q5yao] {
    display: block;
    width: 100%;
    max-height: 620px;
    object-fit: contain;
    background: #111827;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}

.yolo-preview-image[b-so343q5yao] {
    opacity: 0.88;
}

.yolo-detection-table[b-so343q5yao] {
    margin-top: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.yolo-detection-row[b-so343q5yao] {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) 100px minmax(180px, 2fr);
    gap: 12px;
    padding: 9px 12px;
    color: #334155;
    font-size: 13px;
    border-top: 1px solid #e5e7eb;
}

.yolo-detection-head[b-so343q5yao] {
    border-top: 0;
    background: #f8fafc;
    color: #111827;
    font-weight: 600;
}

@media (max-width: 900px) {
    .request-metric-grid[b-so343q5yao],
    .request-chart-grid[b-so343q5yao] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yolo-debug-grid[b-so343q5yao] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .request-metric-grid[b-so343q5yao],
    .request-chart-grid[b-so343q5yao] {
        grid-template-columns: minmax(0, 1fr);
    }

    .request-telemetry-actions[b-so343q5yao] {
        width: 100%;
    }

    .yolo-detection-row[b-so343q5yao] {
        grid-template-columns: minmax(80px, 1fr) 80px;
    }

    .yolo-detection-row span:last-child[b-so343q5yao] {
        grid-column: 1 / -1;
    }
}
.modal-footer-actions[b-so343q5yao] { display:flex; justify-content:flex-end; gap:8px; margin:24px -24px -24px; padding:16px 24px; border-top:1px solid #f0f0f0; background:#fafafa; }
.edit-config-grid[b-so343q5yao] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.edit-config-grid .full-width[b-so343q5yao] { grid-column:1 / -1; }
@media (max-width: 640px) { .edit-config-grid[b-so343q5yao] { grid-template-columns:1fr; } .edit-config-grid .full-width[b-so343q5yao] { grid-column:auto; } }
.port-edit-list[b-so343q5yao] { display:flex; flex-direction:column; gap:8px; }
.port-edit-row[b-so343q5yao] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.port-edit-row .port-edit-check[b-so343q5yao] { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.port-edit-list .ant-btn[b-so343q5yao] { align-self:flex-start; }
/* /Components/Pages/Inference/InferenceServiceList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

.page-header[b-5plgwilxni] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.page-toolbar-header[b-5plgwilxni] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.page-toolbar-header .page-intro[b-5plgwilxni] { flex: 1 1 auto; margin-bottom: 0; }
.page-header-actions[b-5plgwilxni] { display: flex; align-items: center; gap: 8px; padding-top: 28px; flex: 0 0 auto; }
.inference-toolbar[b-5plgwilxni] { display:flex; align-items:center; gap:12px; margin-bottom:16px; padding:12px 0; border-top:1px solid var(--op-color-split); border-bottom:1px solid var(--op-color-split); flex-wrap:nowrap; }
.inference-search[b-5plgwilxni] { flex:1 1 280px; min-width:220px; }
.inference-search :deep(.ant-input-affix-wrapper)[b-5plgwilxni] { width:100%; }
.inference-filter[b-5plgwilxni] { display:flex; align-items:center; gap:6px; flex:0 0 auto; }
.inference-filter label[b-5plgwilxni] { color:#6b7280; font-size:13px; white-space:nowrap; }
.inference-filter :deep(.ant-select)[b-5plgwilxni] { width:150px; }
.inference-toolbar-actions[b-5plgwilxni] { display:flex; align-items:center; gap:8px; flex:0 0 auto; margin-left:auto; }
.page-toolbar-header .page-header-actions[b-5plgwilxni] { display:none; }
.inference-toolbar :deep(.ant-select-selector)[b-5plgwilxni], .inference-toolbar :deep(.ant-input)[b-5plgwilxni], .inference-toolbar :deep(.ant-btn)[b-5plgwilxni] { min-height:36px; }

@media (max-width: 1024px) {
    .inference-toolbar[b-5plgwilxni] { flex-wrap: wrap; }
    .inference-search[b-5plgwilxni] { flex: 1 1 calc(100% - 80px); min-width: 0; }
    .inference-toolbar-actions[b-5plgwilxni] { flex: 1 1 100%; justify-content: flex-end; margin-left: 0; }
}

.header-left[b-5plgwilxni] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.header-right[b-5plgwilxni] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-5plgwilxni] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.page-subtitle[b-5plgwilxni] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

.table-wrapper[b-5plgwilxni] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background: var(--op-color-bg-card);
}

.table-card[b-5plgwilxni] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--op-color-bg-card);
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.data-table[b-5plgwilxni] {
    width: 100%;
    min-width: 1320px;
    border-collapse: collapse;
}

.data-table thead[b-5plgwilxni] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.main-content > .empty-state[b-5plgwilxni],
.main-content > .loading-container[b-5plgwilxni] {
    flex: 1 1 auto;
    min-height: 0;
}

.force-delete-overlay[b-5plgwilxni] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(17, 24, 39, 0.32);
}

.force-delete-overlay :deep(.ant-spin)[b-5plgwilxni] {
    padding: 24px 32px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

.data-table th[b-5plgwilxni] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-5plgwilxni] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-5plgwilxni] {
    background: #f9fafb;
}

.data-table tbody tr:last-child td[b-5plgwilxni] {
    border-bottom: none;
}

.expand-column[b-5plgwilxni],
.expand-cell[b-5plgwilxni] {
    width: 42px;
    text-align: center;
    padding-left: 10px !important;
    padding-right: 6px !important;
}

.expand-btn[b-5plgwilxni] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    color: #6b7280;
    font-size: 12px;
    border-radius: 4px;
}

.expand-btn:hover[b-5plgwilxni] {
    color: #2563eb;
    background: #eff6ff;
}

.name-link[b-5plgwilxni] {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
}

.name-link:hover[b-5plgwilxni] {
    text-decoration: underline;
}

.ns-text[b-5plgwilxni] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 2px;
}

.service-link[b-5plgwilxni] {
    color: #2563eb;
    text-decoration: none;
    font-size: 12px;
}

.service-link:hover[b-5plgwilxni] {
    text-decoration: underline;
}

.service-text[b-5plgwilxni] {
    font-size: 12px;
    color: #374151;
}

.port-list[b-5plgwilxni] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.port-item[b-5plgwilxni] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

.port-container[b-5plgwilxni] {
    color: #374151;
}

.port-arrow[b-5plgwilxni] {
    font-size: 10px;
    color: #9ca3af;
}

.port-node[b-5plgwilxni] {
    color: #2563eb;
    font-weight: 600;
}

.port-internal[b-5plgwilxni] {
    color: #9ca3af;
    font-family: inherit;
}

.replicas-text[b-5plgwilxni] {
    font-size: 13px;
    font-weight: 500;
}

.replica-control[b-5plgwilxni] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.replica-btn[b-5plgwilxni] {
    width: 24px;
    height: 24px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: white;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.replica-btn:hover:not(:disabled)[b-5plgwilxni] {
    background: #eff6ff;
    border-color: #2563eb;
}

.replica-btn:disabled[b-5plgwilxni] {
    opacity: 0.45;
    cursor: not-allowed;
}

.scale-target[b-5plgwilxni] {
    color: #2563eb;
    font-weight: 600;
    font-size: 13px;
}

.replica-confirm-btn[b-5plgwilxni] {
    border: 1px solid #2563eb;
    background: #2563eb;
    color: white;
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 12px;
    cursor: pointer;
}

.replica-confirm-btn:hover:not(:disabled)[b-5plgwilxni] {
    background: #1d4ed8;
}

.replica-confirm-btn:disabled[b-5plgwilxni] {
    opacity: 0.6;
    cursor: not-allowed;
}

.pod-row[b-5plgwilxni] {
    background: #f9fafb !important;
}

.pod-row > td[b-5plgwilxni] {
    padding: 0 16px 16px 16px;
}

.pod-panel[b-5plgwilxni] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px;
    margin-top: 8px;
}

.pod-panel-header[b-5plgwilxni] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.pod-panel-title[b-5plgwilxni] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

.pod-refresh-btn[b-5plgwilxni] {
    border: 1px solid #d1d5db;
    background: white;
    color: #374151;
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 12px;
    cursor: pointer;
}

.pod-refresh-btn:hover:not(:disabled)[b-5plgwilxni] {
    background: #f9fafb;
    border-color: #9ca3af;
}

.pod-refresh-btn:disabled[b-5plgwilxni] {
    opacity: 0.6;
    cursor: not-allowed;
}

.pod-table[b-5plgwilxni] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.pod-table th[b-5plgwilxni] {
    text-align: left;
    padding: 8px 12px;
    background: #f3f4f6;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
}

.pod-table td[b-5plgwilxni] {
    padding: 8px 12px;
    border-bottom: 1px solid #f3f4f6;
    color: #374151;
}

.pod-table tbody tr:last-child td[b-5plgwilxni] {
    border-bottom: none;
}

.pod-name[b-5plgwilxni] {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 11px;
}

.pod-status[b-5plgwilxni] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.pod-running[b-5plgwilxni] { background: #dcfce7; color: #16a34a; }
.pod-pending[b-5plgwilxni] { background: #fef3c7; color: #d97706; }
.pod-succeeded[b-5plgwilxni] { background: #dbeafe; color: #2563eb; }
.pod-failed[b-5plgwilxni] { background: #fee2e2; color: #ef4444; }
.pod-unknown[b-5plgwilxni] { background: #f1f5f9; color: #64748b; }

.pod-containers[b-5plgwilxni] {
    max-width: 260px;
    color: #4b5563;
}

.pod-loading[b-5plgwilxni],
.pod-empty[b-5plgwilxni] {
    text-align: center;
    padding: 20px;
    color: #6b7280;
    font-size: 13px;
}

.status-tag[b-5plgwilxni] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-running[b-5plgwilxni] { background: #dcfce7; color: #16a34a; }
.status-pending[b-5plgwilxni] { background: #fef3c7; color: #d97706; }
.status-stopped[b-5plgwilxni] { background: #f1f5f9; color: #64748b; }
.status-failed[b-5plgwilxni] { background: #fee2e2; color: #ef4444; }
.status-unknown[b-5plgwilxni] { background: #f1f5f9; color: #64748b; }

.backend-badge[b-5plgwilxni] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    margin-left: 6px;
    vertical-align: middle;
}

.backend-vllm[b-5plgwilxni] { background: #dbeafe; color: #1d4ed8; }
.backend-sglang[b-5plgwilxni] { background: #dcfce7; color: #166534; }
.backend-ollama[b-5plgwilxni] { background: #ffedd5; color: #9a3412; }
.backend-tgi[b-5plgwilxni] { background: #fce7f3; color: #be185d; }
.backend-triton[b-5plgwilxni] { background: #d1fae5; color: #065f46; }
.backend-onnx[b-5plgwilxni] { background: #e0e7ff; color: #3730a3; }
.backend-yolo[b-5plgwilxni] { background: #fef3c7; color: #92400e; }
.backend-whisper[b-5plgwilxni] { background: #ede9fe; color: #5b21b6; }
.backend-custom[b-5plgwilxni] { background: #f3f4f6; color: #374151; }

.action-cell[b-5plgwilxni] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.btn-link[b-5plgwilxni] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 12px;
    padding: 2px 4px;
    text-decoration: underline;
}

.text-orange[b-5plgwilxni] { color: #d97706; }
.text-orange:hover[b-5plgwilxni] { color: #b45309; }
.text-red[b-5plgwilxni] { color: #ef4444; }
.text-red:hover[b-5plgwilxni] { color: #dc2626; }
.text-blue[b-5plgwilxni] { color: #2563eb; }
.text-blue:hover[b-5plgwilxni] { color: #1d4ed8; }

.visibility-cell[b-5plgwilxni] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.visibility-badge[b-5plgwilxni] {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-private[b-5plgwilxni] { background: #f1f5f9; color: #475569; }
.visibility-dept[b-5plgwilxni] { background: #e0f2fe; color: #0369a1; }
.visibility-organization[b-5plgwilxni] { background: #dcfce7; color: #166534; }

.readonly-text[b-5plgwilxni] {
    color: #9ca3af;
    font-size: 12px;
}

.scale-modal-overlay[b-5plgwilxni],
.resource-check-overlay[b-5plgwilxni] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3000;
}

.scale-modal[b-5plgwilxni] {
    width: 460px;
    max-width: calc(100vw - 32px);
    background: white;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.scale-modal-title[b-5plgwilxni] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.scale-modal-title i[b-5plgwilxni] { color: #2563eb; }

.scale-modal-content[b-5plgwilxni] { padding: 18px 20px; }

.scale-service-info[b-5plgwilxni],
.scale-replica-summary[b-5plgwilxni] {
    background: #f9fafb;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 16px;
}

.scale-label[b-5plgwilxni] {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 4px;
}

.scale-service-name[b-5plgwilxni] {
    font-size: 15px;
    font-weight: 600;
    color: #111827;
}

.scale-replica-summary[b-5plgwilxni] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
}

.scale-number-block[b-5plgwilxni] { text-align: center; }
.scale-number[b-5plgwilxni] { font-size: 28px; font-weight: 600; color: #374151; }
.scale-arrow[b-5plgwilxni] { flex: 1; text-align: center; font-size: 20px; }

.scale-resource-card[b-5plgwilxni] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 16px;
}

.scale-resource-title[b-5plgwilxni] {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
}

.scale-resource-title i[b-5plgwilxni] { margin-right: 6px; }

.scale-resource-row[b-5plgwilxni] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
    color: #6b7280;
}

.scale-resource-row strong[b-5plgwilxni] {
    color: #374151;
    font-weight: 500;
    text-align: right;
}

.scale-resource-row.last[b-5plgwilxni] { border-bottom: none; }

.scale-resource-note[b-5plgwilxni] {
    margin: 8px 0 4px 0;
    padding: 10px 12px;
    border-radius: 6px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 12px;
    line-height: 1.5;
}

.scale-modal-actions[b-5plgwilxni] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
}

.resource-check-box[b-5plgwilxni] {
    background: white;
    border-radius: 10px;
    padding: 28px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
}

.loading-container[b-5plgwilxni], .empty-state[b-5plgwilxni] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-5plgwilxni] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-5plgwilxni 1s linear infinite;
}

@keyframes spin-b-5plgwilxni {
    to { transform: rotate(360deg); }
}

.loading-text[b-5plgwilxni] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-icon[b-5plgwilxni] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-5plgwilxni] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-5plgwilxni] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

.service-pagination[b-5plgwilxni] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
    color: #6b7280;
    font-size: 14px;
}

.service-pagination[b-5plgwilxni]  .ant-pagination {
    margin: 0;
}

@media (max-width: 768px) {
    .page-header[b-5plgwilxni] {
        flex-direction: column;
        align-items: flex-start;
    }
    .page-toolbar-header[b-5plgwilxni] { flex-direction: column; align-items: stretch; }
    .page-header-actions[b-5plgwilxni] { padding-top: 0; }
    .inference-toolbar[b-5plgwilxni] { flex-wrap: wrap; }
    .inference-search[b-5plgwilxni] { flex: 1 1 100%; min-width: 100%; }
    .inference-toolbar-actions[b-5plgwilxni] { margin-left: 0; }

    .data-table th[b-5plgwilxni],
    .data-table td[b-5plgwilxni] {
        padding: 8px 10px;
    }

    .service-pagination[b-5plgwilxni] {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ===== 调用使用说明弹窗 ===== */
.usage-modal[b-5plgwilxni] {
    width: 720px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 64px);
    background: white;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.usage-modal-body[b-5plgwilxni] {
    padding: 18px 20px;
    overflow-y: auto;
}

.usage-section[b-5plgwilxni] { margin-bottom: 18px; }

.usage-section-title[b-5plgwilxni] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 8px;
}

.usage-desc[b-5plgwilxni] {
    font-size: 13px;
    color: #4b5563;
    line-height: 1.7;
}

.usage-desc p[b-5plgwilxni] { margin: 0 0 6px; }
.usage-desc code[b-5plgwilxni] {
    background: #f3f4f6;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 12px;
    color: #1f2937;
}

.usage-label[b-5plgwilxni] {
    font-size: 12px;
    color: #6b7280;
    margin: 10px 0 4px;
}

.usage-code[b-5plgwilxni] {
    background: #1f2937;
    color: #e5e7eb;
    border-radius: 6px;
    padding: 12px 14px;
    font-family: Consolas, Monaco, "Courier New", monospace;
    font-size: 12px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-all;
    margin: 0 0 8px;
}

.usage-badge[b-5plgwilxni] {
    display: inline-block;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 600;
    margin-right: 6px;
    color: white;
    background: #2563eb;
}

.usage-note[b-5plgwilxni] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 12px;
    color: #1e40af;
    line-height: 1.6;
}

.usage-note i[b-5plgwilxni] { margin-top: 2px; }
/* /Components/Pages/Login.razor.rz.scp.css */
/* 企业级蓝白色调登录页面样式 */

/* 主容器 - 左右分栏布局 */
.login-container[b-ougs4nxpu1] {
    display: flex;
    min-height: 100vh;
    width: 100%;
    background: #ffffff;
}

/* 左侧品牌区域 */
.login-brand-section[b-ougs4nxpu1] {
    flex: 1;
    background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 50%, #1d4ed8 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    padding: 48px;
}

.brand-content[b-ougs4nxpu1] {
    position: relative;
    z-index: 2;
    color: white;
    text-align: center;
    max-width: 400px;
}

.brand-logo[b-ougs4nxpu1] {
    margin-bottom: 24px;
    animation: float-b-ougs4nxpu1 3s ease-in-out infinite;
}

.brand-logo svg[b-ougs4nxpu1] {
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
}

.brand-title[b-ougs4nxpu1] {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 12px;
    letter-spacing: 2px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    color: #ffffff;
}

.brand-subtitle[b-ougs4nxpu1] {
    font-size: 1.125rem;
    opacity: 0.9;
    margin-bottom: 48px;
    font-weight: 300;
    color: #ffffff;
}

.brand-features[b-ougs4nxpu1] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    text-align: left;
}

.feature-item[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
}

.feature-item:hover[b-ougs4nxpu1] {
    background: rgba(255, 255, 255, 0.15);
    transform: translateX(8px);
}

.feature-item svg[b-ougs4nxpu1] {
    flex-shrink: 0;
    opacity: 0.9;
}

.feature-item span[b-ougs4nxpu1] {
    font-size: 0.95rem;
    font-weight: 400;
}

/* 装饰性圆圈 */
.brand-decoration[b-ougs4nxpu1] {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.decoration-circle[b-ougs4nxpu1] {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
}

.circle-1[b-ougs4nxpu1] {
    width: 300px;
    height: 300px;
    top: -100px;
    left: -100px;
    animation: pulse-b-ougs4nxpu1 4s ease-in-out infinite;
}

.circle-2[b-ougs4nxpu1] {
    width: 200px;
    height: 200px;
    bottom: -50px;
    right: -50px;
    animation: pulse-b-ougs4nxpu1 5s ease-in-out infinite 1s;
}

.circle-3[b-ougs4nxpu1] {
    width: 150px;
    height: 150px;
    top: 50%;
    right: 10%;
    animation: pulse-b-ougs4nxpu1 6s ease-in-out infinite 2s;
}

/* 右侧登录表单区域 */
.login-form-section[b-ougs4nxpu1] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.login-form-wrapper[b-ougs4nxpu1] {
    width: 100%;
    max-width: 400px;
}

.form-header[b-ougs4nxpu1] {
    text-align: center;
    margin-bottom: 32px;
}

.form-title[b-ougs4nxpu1] {
    font-size: 2rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 8px;
}

.form-subtitle[b-ougs4nxpu1] {
    font-size: 0.95rem;
    color: #64748b;
}

/* 错误提示 */
.alert[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 10px;
    margin-bottom: 24px;
    font-size: 0.9rem;
}

.alert-error[b-ougs4nxpu1] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
}

.alert-warning[b-ougs4nxpu1] {
    background: #fff7e6;
    border: 1px solid #ffd591;
    color: #d46b08;
}

.alert svg[b-ougs4nxpu1] {
    flex-shrink: 0;
}

/* 表单样式 */
.login-form[b-ougs4nxpu1] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form-group[b-ougs4nxpu1] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 2%;
}

.form-label[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #374151;
}

.form-label svg[b-ougs4nxpu1] {
    color: #3b82f6;
}

.form-label .required[b-ougs4nxpu1] {
    color: #ef4444;
}

.form-control[b-ougs4nxpu1] {
    border-radius: 10px !important;
}

.form-hint[b-ougs4nxpu1] {
    font-size: 0.78rem;
    line-height: 1.4;
    color: #94a3b8;
}

/* 登录按钮 */
.btn-login[b-ougs4nxpu1] {
    width: 100%;
    padding: 14px 24px;
    font-size: 1rem;
    font-weight: 600;
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35);
    margin-top: 8px;
}

.btn-login:hover:not(:disabled)[b-ougs4nxpu1] {
    background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
    box-shadow: 0 6px 20px rgba(37, 99, 235, 0.45);
    transform: translateY(-1px);
}

.btn-login:active:not(:disabled)[b-ougs4nxpu1] {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
}

.btn-login:disabled[b-ougs4nxpu1] {
    opacity: 0.7;
    cursor: not-allowed;
}

.btn-content[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-loading[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.spinner[b-ougs4nxpu1] {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin-b-ougs4nxpu1 0.8s linear infinite;
}

/* 页脚 */
.form-footer[b-ougs4nxpu1] {
    margin-top: 32px;
    text-align: center;
}

.copyright[b-ougs4nxpu1] {
    font-size: 0.8rem;
    color: #94a3b8;
}

/* SSO 登录区域 */
.sso-section[b-ougs4nxpu1] {
    margin-top: 16px;
    text-align: center;
}

.sso-divider[b-ougs4nxpu1] {
    display: flex;
    align-items: center;
    margin: 16px 0;
}

.sso-divider-line[b-ougs4nxpu1] {
    flex: 1;
    height: 1px;
    background: #e5e7eb;
}

.sso-divider-text[b-ougs4nxpu1] {
    padding: 0 12px;
    color: #9ca3af;
    font-size: 13px;
}

.sso-icons[b-ougs4nxpu1] {
    display: flex;
    justify-content: center;
    gap: 20px;
}

.sso-icon-btn[b-ougs4nxpu1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid #e5e7eb;
    background: #ffffff;
    cursor: pointer;
    transition: all 0.25s ease;
    padding: 0;
    overflow: hidden;
}

.sso-icon-btn:hover[b-ougs4nxpu1] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    border-color: transparent;
}

.sso-wechat:hover[b-ougs4nxpu1] {
    background: #07c160;
    color: #ffffff;
}

.sso-github:hover[b-ougs4nxpu1] {
    background: #24292f;
    color: #ffffff;
}

.sso-wechat[b-ougs4nxpu1] {
    color: #07c160;
}

.sso-github[b-ougs4nxpu1] {
    color: #24292f;
}

/* 动画 */
@keyframes float-b-ougs4nxpu1 {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes pulse-b-ougs4nxpu1 {
    0%, 100% {
        transform: scale(1);
        opacity: 0.05;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.08;
    }
}

@keyframes spin-b-ougs4nxpu1 {
    to {
        transform: rotate(360deg);
    }
}

/* 响应式设计 */
@media (max-width: 968px) {
    .login-container[b-ougs4nxpu1] {
        flex-direction: column;
    }

    .login-brand-section[b-ougs4nxpu1] {
        min-height: auto;
        padding: 40px 24px;
    }

    .brand-title[b-ougs4nxpu1] {
        font-size: 2rem;
    }

    .brand-subtitle[b-ougs4nxpu1] {
        margin-bottom: 32px;
    }

    .brand-features[b-ougs4nxpu1] {
        display: none;
    }

    .login-form-section[b-ougs4nxpu1] {
        padding: 32px 24px;
    }
}

@media (max-width: 480px) {
    .login-brand-section[b-ougs4nxpu1] {
        padding: 32px 20px;
    }

    .brand-title[b-ougs4nxpu1] {
        font-size: 1.75rem;
    }

    .login-form-section[b-ougs4nxpu1] {
        padding: 24px 16px;
    }

    .form-title[b-ougs4nxpu1] {
        font-size: 1.5rem;
    }

    .btn-login[b-ougs4nxpu1] {
        padding: 12px 20px;
    }
}
/* /Components/Pages/ModelCenter.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-09714o35ih] {
    position: relative;
    min-height: 80vh;
    background: #f9fafb;
        padding: 24px;
        height: 100%;
}

.main-content[b-09714o35ih] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-09714o35ih] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-09714o35ih] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.header-right[b-09714o35ih] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-09714o35ih] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.page-subtitle[b-09714o35ih] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

/* 按钮 */
.btn[b-09714o35ih] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-09714o35ih] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-09714o35ih] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-09714o35ih] {
    background: #1d4ed8;
}

.btn-default[b-09714o35ih] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-09714o35ih] {
    background: #f9fafb;
}

.btn-danger[b-09714o35ih] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-09714o35ih] {
    background: #dc2626;
}

.btn-sm[b-09714o35ih] {
    padding: 6px 12px;
    font-size: 12px;
}

.btn-link[b-09714o35ih] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    padding: 0;
    font-size: 12px;
}

.btn-link-danger[b-09714o35ih] {
    color: #ef4444;
}

.btn-link:hover[b-09714o35ih] {
    text-decoration: underline;
}

/* 厂商网格 */
.providers-grid[b-09714o35ih] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 16px;
}

/* 厂商卡片 */
.provider-card[b-09714o35ih] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 16px;
    cursor: pointer;
    transition: all 0.15s;
}

.provider-card:hover[b-09714o35ih] {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-color: #2563eb;
}

.provider-header[b-09714o35ih] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f3f4f6;
}

.provider-icon[b-09714o35ih] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    background: #dbeafe;
    color: #2563eb;
    flex-shrink: 0;
}

.provider-info[b-09714o35ih] {
    flex: 1;
    min-width: 0;
}

.provider-name[b-09714o35ih] {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 600;
    color: #111827;
}

.provider-endpoint[b-09714o35ih] {
    margin: 0;
    font-size: 11px;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 4px;
    word-break: break-all;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 状态标签 */
.status-tag[b-09714o35ih] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    flex-shrink: 0;
}

.status-enabled[b-09714o35ih] {
    background: #dcfce7;
    color: #16a34a;
}

.status-disabled[b-09714o35ih] {
    background: #fee2e2;
    color: #ef4444;
}

/* 厂商统计 */
.provider-stats[b-09714o35ih] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
}

.stat-row[b-09714o35ih] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2px 0;
}

.stat-label[b-09714o35ih] {
    font-size: 12px;
    color: #6b7280;
}

.stat-value[b-09714o35ih] {
    font-size: 12px;
    font-weight: 500;
    color: #111827;
}

/* 厂商操作 */
.provider-actions[b-09714o35ih] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid #f3f4f6;
}

/* 开关样式 */
.switch-label[b-09714o35ih] {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
    cursor: pointer;
}

.switch-label input[b-09714o35ih] {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider[b-09714o35ih] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d1d5db;
    border-radius: 22px;
    transition: 0.15s;
}

.switch-slider[b-09714o35ih]::before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: 0.15s;
}

.switch-label input:checked + .switch-slider[b-09714o35ih] {
    background-color: #2563eb;
}

.switch-label input:checked + .switch-slider[b-09714o35ih]::before {
    transform: translateX(18px);
}

.switch-sm[b-09714o35ih] {
    width: 32px;
    height: 18px;
}

.switch-sm .switch-slider[b-09714o35ih]::before {
    height: 12px;
    width: 12px;
}

.switch-sm input:checked + .switch-slider[b-09714o35ih]::before {
    transform: translateX(14px);
}

/* 模型列表 */
.models-section[b-09714o35ih] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f3f4f6;
}

.models-header[b-09714o35ih] {
    margin-bottom: 8px;
}

.models-title[b-09714o35ih] {
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
}

.models-list[b-09714o35ih] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 150px;
    overflow-y: auto;
}

.model-item[b-09714o35ih] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    background: #f9fafb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.model-item:hover[b-09714o35ih] {
    background: #dbeafe;
}

.model-info[b-09714o35ih] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.model-name[b-09714o35ih] {
    font-size: 12px;
    font-weight: 500;
    color: #111827;
}

.model-code[b-09714o35ih] {
    font-size: 10px;
    color: #6b7280;
    background: #e5e7eb;
    padding: 1px 4px;
    border-radius: 3px;
}

.model-actions[b-09714o35ih] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 加载和空状态 */
.loading-container[b-09714o35ih], .empty-container[b-09714o35ih], .unauthorized-container[b-09714o35ih] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-overlay[b-09714o35ih] {
    position: absolute;
    inset: 0;
    z-index: 900;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(249, 250, 251, 0.75);
    backdrop-filter: blur(1px);
}

.loading-spinner[b-09714o35ih] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-09714o35ih 1s linear infinite;
}

@keyframes spin-b-09714o35ih {
    to { transform: rotate(360deg); }
}

.loading-text[b-09714o35ih] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-icon[b-09714o35ih] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-09714o35ih], .unauthorized-title[b-09714o35ih] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-09714o35ih], .unauthorized-desc[b-09714o35ih] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

.unauthorized-icon[b-09714o35ih] {
    font-size: 48px;
    color: #f59e0b;
    margin-bottom: 16px;
}

.unauthorized-detail[b-09714o35ih] {
    font-size: 13px;
    color: #9ca3af;
    margin: 0 0 20px 0;
    text-align: center;
    max-width: 400px;
}

/* 模态框 */
.modal-overlay[b-09714o35ih] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-container[b-09714o35ih] {
    width: 100%;
    max-width: 500px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}

.modal-sm[b-09714o35ih] {
    max-width: 400px;
}

.modal-header[b-09714o35ih] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-09714o35ih] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-09714o35ih] {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background: white;
    color: #6b7280;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 14px;
}

.modal-close:hover[b-09714o35ih] {
    background: #fee2e2;
    border-color: #ef4444;
    color: #ef4444;
}

.modal-body[b-09714o35ih] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}

.modal-footer[b-09714o35ih] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 表单 */
.form-group[b-09714o35ih] {
    margin-bottom: 16px;
}

.form-group:last-child[b-09714o35ih] {
    margin-bottom: 0;
}

.form-label[b-09714o35ih] {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-label.required[b-09714o35ih]::after {
    content: ' *';
    color: #ef4444;
}

.form-input[b-09714o35ih] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
    box-sizing: border-box;
}

.form-input:focus[b-09714o35ih] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-input[b-09714o35ih]::placeholder {
    color: #9ca3af;
}

/* 错误提示 */
.error-alert[b-09714o35ih] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    color: #dc2626;
    font-size: 13px;
    margin-bottom: 16px;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-09714o35ih] {
        flex-direction: column;
        align-items: flex-start;
    }

    .providers-grid[b-09714o35ih] {
        grid-template-columns: 1fr;
    }

    .provider-header[b-09714o35ih] {
        flex-direction: column;
        align-items: flex-start;
    }

    .status-tag[b-09714o35ih] {
        margin-top: 8px;
    }

    .provider-actions[b-09714o35ih] {
        flex-direction: column;
        align-items: stretch;
    }

    .model-item[b-09714o35ih] {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .model-actions[b-09714o35ih] {
        width: 100%;
        justify-content: flex-end;
    }
}
/* /Components/Pages/ModelDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.model-detail-page[b-c1mnlwqjbd] {
    --bg-body: #f4f7fa;
    --bg-card: rgba(255, 255, 255, 0.8);
    --fg-primary: #1e293b;
    --fg-secondary: #64748b;
    --accent-primary: #2563eb;
    --border-color: rgba(226, 232, 240, 0.8);
    --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.04);
    
    min-height: 100vh;
    background: var(--bg-body);
    position: relative;
    overflow-x: hidden;
}

.bg-pattern[b-c1mnlwqjbd] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
    background-color: var(--bg-body);
    background-image: 
        radial-gradient(circle at 20% 20%, rgba(37, 99, 235, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(14, 165, 233, 0.05) 0%, transparent 50%);
}

.grid-overlay[b-c1mnlwqjbd] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0.4;
    background-image: 
        linear-gradient(rgba(148, 163, 184, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.1) 1px, transparent 1px);
    background-size: 50px 50px;
}

.main-content[b-c1mnlwqjbd] {
    position: relative;
    z-index: 10;
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px;
}

.glass-card[b-c1mnlwqjbd] {
    background: var(--bg-card);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    box-shadow: var(--shadow-md);
    padding: 24px;
}

.page-header[b-c1mnlwqjbd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.header-left[b-c1mnlwqjbd] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-c1mnlwqjbd] {
    color: #64748b;
    font-size: 14px;
}

.back-btn:hover[b-c1mnlwqjbd] {
    color: #2563eb;
}

.header-title-group[b-c1mnlwqjbd] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-title[b-c1mnlwqjbd] {
    font-size: 28px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    display: flex;
    align-items: center;
}

.page-subtitle[b-c1mnlwqjbd] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.model-code-badge[b-c1mnlwqjbd] {
    font-size: 12px;
    color: #2563eb;
    background: #eff6ff;
    padding: 4px 8px;
    border-radius: 6px;
    font-family: 'Consolas', monospace;
}

.provider-badge[b-c1mnlwqjbd] {
    font-size: 12px;
    color: #64748b;
    background: #f1f5f9;
    padding: 4px 8px;
    border-radius: 6px;
}

.header-right[b-c1mnlwqjbd] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.switch-label[b-c1mnlwqjbd] {
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
}

.content-grid[b-c1mnlwqjbd] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
}

.card-header[b-c1mnlwqjbd] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-color);
}

.card-header h3[b-c1mnlwqjbd] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--fg-primary);
}

.info-list[b-c1mnlwqjbd] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.info-item[b-c1mnlwqjbd] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.info-label[b-c1mnlwqjbd] {
    font-size: 13px;
    font-weight: 500;
    color: var(--fg-secondary);
}

.info-value[b-c1mnlwqjbd] {
    font-size: 14px;
    color: var(--fg-primary);
    font-weight: 500;
}

.params-list[b-c1mnlwqjbd] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.param-item[b-c1mnlwqjbd] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.param-header[b-c1mnlwqjbd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.param-label[b-c1mnlwqjbd] {
    font-size: 13px;
    font-weight: 600;
    color: var(--fg-primary);
}

.param-value[b-c1mnlwqjbd] {
    font-size: 13px;
    color: var(--accent-primary);
    font-weight: 600;
    font-family: 'Consolas', monospace;
}

.param-desc[b-c1mnlwqjbd] {
    font-size: 12px;
    color: var(--fg-secondary);
    margin: 0;
}

.advanced-card[b-c1mnlwqjbd] {
    grid-column: 1 / -1;
}

.config-hint[b-c1mnlwqjbd] {
    font-size: 12px;
    color: var(--fg-secondary);
    margin: 8px 0 0 0;
    display: flex;
    align-items: center;
}

.action-bar[b-c1mnlwqjbd] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 20px 0;
}

.loading-container[b-c1mnlwqjbd] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 400px;
}

@media (max-width: 768px) {
    .content-grid[b-c1mnlwqjbd] {
        grid-template-columns: 1fr;
    }
    
    .page-header[b-c1mnlwqjbd] {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    
    .header-right[b-c1mnlwqjbd] {
        width: 100%;
        justify-content: space-between;
    }
}
/* /Components/Pages/ModelHub/AiChat.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
    .page-container[b-bwp9chez37] {
        background: #f9fafb;
        padding: 16px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        height: calc(100vh - 56px - 48px - 32px);
        box-sizing: border-box;
    }

    .main-content[b-bwp9chez37] {
        width: 100%;
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        gap: 16px;
    }

    .card[b-bwp9chez37] {
        background: white;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    }

    /* 头部 */
    .page-header[b-bwp9chez37] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 20px;
        flex-wrap: wrap;
        gap: 16px;
    }

    .header-left[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 16px;
    }

    .header-right[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .header-title-group[b-bwp9chez37] {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .page-title[b-bwp9chez37] {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin: 0;
        display: flex;
        align-items: center;
    }

    .title-icon[b-bwp9chez37] {
        margin-right: 10px;
        font-size: 24px;
    }

    .page-subtitle[b-bwp9chez37] {
        font-size: 13px;
        color: #64748b;
        margin: 0;
    }

    .btn-back[b-bwp9chez37] {
        padding: 8px 16px;
    }

    .model-badge[b-bwp9chez37] {
        background: #f1f5f9;
        padding: 6px 12px;
        border-radius: 8px;
        font-size: 13px;
        color: #64748b;
    }

    /* 按钮 */
    .btn[b-bwp9chez37] {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 16px;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.15s;
        border: 1px solid transparent;
    }

        .btn:disabled[b-bwp9chez37] {
            opacity: 0.6;
            cursor: not-allowed;
        }

    .btn-primary[b-bwp9chez37] {
        background: #2563eb;
        color: white;
    }

        .btn-primary:hover:not(:disabled)[b-bwp9chez37] {
            background: #1d4ed8;
        }

    .btn-default[b-bwp9chez37] {
        background: white;
        color: #1e293b;
        border: 1px solid #e2e8f0;
    }

        .btn-default:hover:not(:disabled)[b-bwp9chez37] {
            background: #f8fafc;
        }

    .btn-icon[b-bwp9chez37] {
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 6px;
        font-size: 14px;
    }

        .btn-icon:hover[b-bwp9chez37] {
            background: #f1f5f9;
        }

    /* 自定义选择框 */
    .custom-select[b-bwp9chez37] {
        width: 100%;
        padding: 10px 12px;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        font-size: 14px;
        background: white;
        cursor: pointer;
        outline: none;
    }

        .custom-select:focus[b-bwp9chez37] {
            border-color: #2563eb;
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
        }

    /* 自定义输入框 */
    .custom-input[b-bwp9chez37] {
        width: 100%;
        padding: 10px 12px;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        font-size: 14px;
        background: white;
        outline: none;
    }

        .custom-input:focus[b-bwp9chez37] {
            border-color: #2563eb;
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
        }

        .custom-input:disabled[b-bwp9chez37] {
            background: #f8fafc;
            cursor: not-allowed;
        }

    /* API Key 提示 */
    .api-key-hint[b-bwp9chez37] {
        margin-top: 8px;
        font-size: 11px;
        color: #94a3b8;
    }

    /* API Key 紧凑模式（已自动识别时） */
    .api-key-compact[b-bwp9chez37] {
        padding: 8px 16px;
    }

        .api-key-compact .custom-input[b-bwp9chez37] {
            font-size: 12px;
        }

    /* API Key 状态 */
    .api-key-status[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        border-radius: 8px;
        margin-bottom: 8px;
        font-size: 13px;
    }

        .api-key-status.success[b-bwp9chez37] {
            background: #dcfce7;
            color: #166534;
        }

        .api-key-status.warning[b-bwp9chez37] {
            background: #fef3c7;
            color: #92400e;
        }

    .status-icon[b-bwp9chez37] {
        font-size: 14px;
    }

    .btn-block[b-bwp9chez37] {
        display: flex;
        width: 100%;
        justify-content: center;
        text-decoration: none;
    }

    /* 聊天容器 */
    .chat-container[b-bwp9chez37] {
        display: grid;
        grid-template-columns: 280px 1fr;
        gap: 16px;
        flex: 1;
        min-height: 0;
    }

    /* 侧边栏 */
    .sidebar[b-bwp9chez37] {
        display: flex;
        flex-direction: column;
        overflow: hidden;
        min-height: 0;
    }

    /* Tab 切换样式 */
    .sidebar-tabs[b-bwp9chez37] {
        display: flex;
        border-bottom: 1px solid #f1f5f9;
        background: #f8fafc;
    }

    .sidebar-tab[b-bwp9chez37] {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 8px 12px;
        border: none;
        background: transparent;
        color: #64748b;
        font-size: 13px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s;
        border-bottom: 2px solid transparent;
    }

        .sidebar-tab:hover[b-bwp9chez37] {
            background: rgba(37, 99, 235, 0.05);
            color: #2563eb;
        }

        .sidebar-tab.active[b-bwp9chez37] {
            background: rgba(255, 255, 255, 0.8);
            color: #2563eb;
            border-bottom-color: #2563eb;
        }

    .model-source-tabs[b-bwp9chez37] {
        flex-shrink: 0;
    }

    .tab-icon[b-bwp9chez37] {
        font-size: 14px;
    }

    .sidebar-section[b-bwp9chez37] {
        padding: 10px 12px;
    }

        .sidebar-section + .sidebar-section[b-bwp9chez37] {
            border-top: 1px solid #f1f5f9;
        }

    /* 紧凑型 section（厂商/模型选择） */
    .compact-section[b-bwp9chez37] {
        padding: 8px 12px;
    }

    .sidebar-header[b-bwp9chez37] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 6px;
    }

    .sidebar-title[b-bwp9chez37] {
        font-size: 13px;
        font-weight: 600;
        color: #64748b;
        margin: 0;
        text-transform: uppercase;
    }

    .empty-models[b-bwp9chez37] {
        padding: 8px;
        color: #94a3b8;
        font-size: 13px;
    }

    /* 历史记录 */
    .history-section[b-bwp9chez37] {
        flex: 1;
        min-height: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .history-list[b-bwp9chez37] {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
    }

    .empty-history[b-bwp9chez37] {
        padding: 20px;
        text-align: center;
        color: #94a3b8;
        font-size: 13px;
    }

    .history-item[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        border-radius: 8px;
        cursor: pointer;
        transition: background 0.2s;
    }

        .history-item:hover[b-bwp9chez37] {
            background: #f1f5f9;
        }

    .history-item.active[b-bwp9chez37] {
            background: #dbeafe;
        }

    .history-delete-btn[b-bwp9chez37] {
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 4px;
        font-size: 12px;
        opacity: 0;
        transition: opacity 0.2s, background 0.2s;
    }

    .history-item:hover .history-delete-btn[b-bwp9chez37] {
        opacity: 1;
    }

    .history-delete-btn:hover[b-bwp9chez37] {
        background: #fee2e2;
    }

    .history-icon[b-bwp9chez37] {
        font-size: 16px;
    }

    .history-info[b-bwp9chez37] {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .history-title[b-bwp9chez37] {
        font-size: 13px;
        color: #1e293b;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .history-time[b-bwp9chez37] {
        font-size: 11px;
        color: #94a3b8;
    }

    /* 聊天主区域 */
    .chat-main[b-bwp9chez37] {
        display: flex;
        flex-direction: column;
        overflow: hidden;
        min-height: 0;
        position: relative;
    }

    /* 开始聊天 */
    .start-chat[b-bwp9chez37] {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 40px;
        text-align: center;
    }

    .start-icon[b-bwp9chez37] {
        font-size: 64px;
        margin-bottom: 20px;
    }

    .start-chat h2[b-bwp9chez37] {
        font-size: 24px;
        color: #1e293b;
        margin: 0 0 8px 0;
    }

    .start-chat p[b-bwp9chez37] {
        font-size: 14px;
        color: #64748b;
        margin: 0 0 24px 0;
    }

    /* 消息区域 */
    .messages-container[b-bwp9chez37] {
        flex: 1;
        overflow-y: auto;
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .welcome-message[b-bwp9chez37] {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: #64748b;
    }

    .welcome-icon[b-bwp9chez37] {
        font-size: 48px;
        margin-bottom: 16px;
    }

    .welcome-message h3[b-bwp9chez37] {
        font-size: 18px;
        color: #1e293b;
        margin: 0 0 8px 0;
    }

    .welcome-message p[b-bwp9chez37] {
        font-size: 13px;
        margin: 0;
    }

    .message[b-bwp9chez37] {
        display: flex;
        gap: 12px;
        max-width: 85%;
    }

        .message.user[b-bwp9chez37] {
            align-self: flex-end;
            flex-direction: row-reverse;
        }

        .message.assistant[b-bwp9chez37] {
            align-self: flex-start;
        }

    .message-avatar[b-bwp9chez37] {
        width: 36px;
        height: 36px;
        background: #f1f5f9;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        flex-shrink: 0;
    }

    .message.user .message-avatar[b-bwp9chez37] {
        background: #dbeafe;
    }

    .message.assistant .message-avatar[b-bwp9chez37] {
        background: #fce7f3;
    }

    .message-content[b-bwp9chez37] {
        background: white;
        padding: 12px 16px;
        border-radius: 16px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    }

    .message.user .message-content[b-bwp9chez37] {
        background: #2563eb;
        color: white;
        border-bottom-right-radius: 4px;
    }

    .message.assistant .message-content[b-bwp9chez37] {
        border-bottom-left-radius: 4px;
    }

    .message-text[b-bwp9chez37] {
        font-size: 14px;
        line-height: 1.6;
        word-break: break-word;
    }

    .message.user .message-text[b-bwp9chez37] {
        white-space: pre-wrap;
    }

    /* Markdown 渲染样式 */
    .markdown-body[b-bwp9chez37] {
        white-space: normal;
    }

    .markdown-body p[b-bwp9chez37] {
        margin: 0 0 8px 0;
    }

    .markdown-body p:last-child[b-bwp9chez37] {
        margin-bottom: 0;
    }

    .markdown-body pre[b-bwp9chez37] {
        background: #1e293b;
        color: #e2e8f0;
        padding: 12px 16px;
        border-radius: 8px;
        overflow-x: auto;
        margin: 8px 0;
        font-size: 13px;
        line-height: 1.5;
    }

    .markdown-body code[b-bwp9chez37] {
        background: #f1f5f9;
        padding: 2px 6px;
        border-radius: 4px;
        font-size: 13px;
        font-family: 'Consolas', 'Monaco', monospace;
    }

    .markdown-body pre code[b-bwp9chez37] {
        background: none;
        padding: 0;
        color: inherit;
    }

    .markdown-body ul[b-bwp9chez37], .markdown-body ol[b-bwp9chez37] {
        padding-left: 20px;
        margin: 8px 0;
    }

    .markdown-body li[b-bwp9chez37] {
        margin: 4px 0;
    }

    .markdown-body h1[b-bwp9chez37], .markdown-body h2[b-bwp9chez37], .markdown-body h3[b-bwp9chez37],
    .markdown-body h4[b-bwp9chez37], .markdown-body h5[b-bwp9chez37], .markdown-body h6[b-bwp9chez37] {
        margin: 12px 0 8px 0;
        font-weight: 600;
    }

    .markdown-body blockquote[b-bwp9chez37] {
        border-left: 3px solid #cbd5e1;
        padding-left: 12px;
        margin: 8px 0;
        color: #64748b;
    }

    .markdown-body table[b-bwp9chez37] {
        border-collapse: collapse;
        margin: 8px 0;
        width: 100%;
    }

    .markdown-body th[b-bwp9chez37], .markdown-body td[b-bwp9chez37] {
        border: 1px solid #e2e8f0;
        padding: 6px 12px;
        text-align: left;
    }

    .markdown-body th[b-bwp9chez37] {
        background: #f8fafc;
        font-weight: 600;
    }

    .markdown-body a[b-bwp9chez37] {
        color: #2563eb;
        text-decoration: none;
    }

    .markdown-body a:hover[b-bwp9chez37] {
        text-decoration: underline;
    }

    .markdown-body hr[b-bwp9chez37] {
        border: none;
        border-top: 1px solid #e2e8f0;
        margin: 12px 0;
    }

    .markdown-body img[b-bwp9chez37] {
        max-width: 100%;
        border-radius: 8px;
    }

    .message-meta[b-bwp9chez37] {
        display: flex;
        gap: 12px;
        margin-top: 8px;
        font-size: 11px;
        color: #94a3b8;
    }

    .message.user .message-meta[b-bwp9chez37] {
        color: rgba(255, 255, 255, 0.7);
    }

    /* 消息内图片样式 */
    .message-images[b-bwp9chez37] {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 8px;
    }

    .message-image[b-bwp9chez37] {
        max-width: 200px;
        max-height: 150px;
        border-radius: 8px;
        object-fit: cover;
        cursor: pointer;
        transition: transform 0.2s;
    }

        .message-image:hover[b-bwp9chez37] {
            transform: scale(1.05);
        }

    .message.user .message-image[b-bwp9chez37] {
        border: 2px solid rgba(255,255,255,0.3);
    }

    /* 思考内容样式 */
    .reasoning-section[b-bwp9chez37] {
        margin-bottom: 12px;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        overflow: hidden;
        background: #f8fafc;
    }

    .reasoning-header[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        background: #f1f5f9;
        cursor: pointer;
        transition: background 0.2s;
    }

        .reasoning-header:hover[b-bwp9chez37] {
            background: #e2e8f0;
        }

    .reasoning-icon[b-bwp9chez37] {
        font-size: 14px;
    }

    .reasoning-title[b-bwp9chez37] {
        font-size: 12px;
        font-weight: 600;
        color: #64748b;
        flex: 1;
    }

    .reasoning-toggle[b-bwp9chez37] {
        font-size: 10px;
        color: #94a3b8;
    }

    .reasoning-content[b-bwp9chez37] {
        padding: 12px;
        font-size: 13px;
        line-height: 1.6;
        color: #64748b;
        white-space: pre-wrap;
        word-break: break-word;
        border-top: 1px solid #e2e8f0;
        background: #fff;
        max-height: 300px;
        overflow-y: auto;
    }

    .typing-indicator[b-bwp9chez37] {
        display: inline-flex;
        gap: 4px;
        margin-right: 8px;
    }

    .dot[b-bwp9chez37] {
        width: 6px;
        height: 6px;
        background: #94a3b8;
        border-radius: 50%;
        animation: bounce-b-bwp9chez37 1.4s infinite ease-in-out;
    }

        .dot:nth-child(1)[b-bwp9chez37] {
            animation-delay: -0.32s;
        }

        .dot:nth-child(2)[b-bwp9chez37] {
            animation-delay: -0.16s;
        }

    @keyframes bounce-b-bwp9chez37 {
        0%, 80%, 100% {
            transform: scale(0);
        }

        40% {
            transform: scale(1);
        }
    }

    /* 流式输出纯文本样式 */
    .streaming-text[b-bwp9chez37] {
        margin: 0;
        padding: 0;
        background: none;
        border: none;
        font-family: inherit;
        font-size: inherit;
        line-height: inherit;
        white-space: pre-wrap;
        word-wrap: break-word;
        color: inherit;
    }

    /* 光标闪烁效果 */
    .cursor-blink[b-bwp9chez37] {
        display: inline-block;
        color: #2563eb;
        font-weight: 300;
        animation: blink-b-bwp9chez37 1s infinite;
    }

    @keyframes blink-b-bwp9chez37 {
        0%, 50% {
            opacity: 1;
        }

        51%, 100% {
            opacity: 0;
        }
    }

    /* 思考过程加载状态 */
    .reasoning-loading[b-bwp9chez37] {
        display: inline-flex;
        align-items: center;
    }

    /* 输入区域 - 固定在底部 */
    .input-area-wrapper[b-bwp9chez37] {
        border-top: 1px solid #f1f5f9;
        background: white;
        border-radius: 0 0 16px 16px;
        flex-shrink: 0;
    }

    /* 模式切换区域 */
    .mode-switch-area[b-bwp9chez37] {
        display: flex;
        gap: 8px;
        padding: 12px 16px;
        border-bottom: 1px solid #f1f5f9;
        background: #fafbfc;
    }

    .btn-mode[b-bwp9chez37] {
        padding: 8px 16px;
        border-radius: 8px;
        font-size: 13px;
        font-weight: 500;
        background: white;
        color: #64748b;
        border: 1px solid #e2e8f0;
        transition: all 0.2s;
    }

        .btn-mode:hover[b-bwp9chez37] {
            background: #f8fafc;
            border-color: #2563eb;
            color: #2563eb;
        }

    .btn-mode.active[b-bwp9chez37] {
            background: #2563eb;
            color: white;
            border-color: transparent;
        }

    .input-area[b-bwp9chez37] {
        display: flex;
        gap: 12px;
        padding: 16px;
    }

    .input-textarea[b-bwp9chez37] {
        flex: 1;
        padding: 12px 16px;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        font-size: 14px;
        resize: none;
        font-family: inherit;
        min-height: 48px;
        max-height: 150px;
    }

        .input-textarea:focus[b-bwp9chez37] {
            outline: none;
            border-color: #2563eb;
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
        }

    .btn-send[b-bwp9chez37] {
        width: 48px;
        height: 48px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 18px;
        border-radius: 12px;
    }


    .btn-upload[b-bwp9chez37] {
        width: 48px;
        height: 48px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 18px;
        border-radius: 12px;
        background: white;
        color: #64748b;
        border: 1px solid #e2e8f0;
    }

        .btn-upload:hover:not(:disabled)[b-bwp9chez37] {
            background: #f8fafc;
            border-color: #2563eb;
            color: #2563eb;
        }

        .btn-upload:disabled[b-bwp9chez37] {
            opacity: 0.5;
            cursor: not-allowed;
        }

    /* 图片预览区域 */
    .image-preview-area[b-bwp9chez37] {
        display: flex;
        gap: 8px;
        padding: 12px 16px;
        flex-wrap: wrap;
        border-bottom: 1px solid #f1f5f9;
        background: #fafbfc;
    }

    .image-preview-item[b-bwp9chez37] {
        position: relative;
        width: 80px;
        height: 80px;
        border-radius: 8px;
        overflow: hidden;
        border: 1px solid #e2e8f0;
    }

        .image-preview-item img[b-bwp9chez37] {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

    .image-remove-btn[b-bwp9chez37] {
        position: absolute;
        top: 4px;
        right: 4px;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: rgba(0,0,0,0.6);
        color: white;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
    }

        .image-remove-btn:hover[b-bwp9chez37] {
            background: rgba(239,68,68,0.9);
        }

    .image-upload-overlay[b-bwp9chez37] {
        position: absolute;
        inset: 0;
        background: rgba(15, 23, 42, 0.55);
        color: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        font-size: 12px;
        z-index: 2;
    }

    .image-upload-spinner[b-bwp9chez37] {
        width: 20px;
        height: 20px;
        border: 2px solid rgba(255,255,255,0.35);
        border-top-color: #fff;
        border-radius: 50%;
        animation: spin-b-bwp9chez37 1s linear infinite;
    }

    .image-upload-error[b-bwp9chez37] {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 3px 4px;
        background: rgba(220, 38, 38, 0.9);
        color: #fff;
        font-size: 11px;
        text-align: center;
        z-index: 2;
    }

    /* 加载 */
    .loading-container[b-bwp9chez37] {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        flex: 1;
    }

    .loading-spinner[b-bwp9chez37] {
        width: 48px;
        height: 48px;
        border: 4px solid #e2e8f0;
        border-top-color: #2563eb;
        border-radius: 50%;
        animation: spin-b-bwp9chez37 1s linear infinite;
    }

    @keyframes spin-b-bwp9chez37 {
        to {
            transform: rotate(360deg);
        }
    }

    .loading-text[b-bwp9chez37] {
        margin-top: 16px;
        color: #64748b;
        font-size: 14px;
    }

    @media (max-width: 900px) {
        .chat-container[b-bwp9chez37] {
            grid-template-columns: 1fr;
        }

        .sidebar[b-bwp9chez37] {
            display: none;
        }
    }

    /* 图片预览弹窗 */
    .image-preview-modal[b-bwp9chez37] {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.85);
        z-index: 10000;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .image-preview-content[b-bwp9chez37] {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .image-preview-img[b-bwp9chez37] {
        max-width: 90vw;
        max-height: 90vh;
        border-radius: 8px;
        box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
    }

    .image-preview-close[b-bwp9chez37] {
        position: absolute;
        top: -40px;
        right: 0;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.2);
        color: white;
        border: none;
        cursor: pointer;
        font-size: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s;
    }

        .image-preview-close:hover[b-bwp9chez37] {
            background: rgba(255, 255, 255, 0.3);
        }

    /* 可搜索下拉框 */
    .search-select[b-bwp9chez37] {
        position: relative;
    }

    .search-select-input[b-bwp9chez37] {
        cursor: pointer;
        padding-right: 30px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 10px center;
    }

        .search-select-input:focus[b-bwp9chez37] {
            cursor: text;
        }

    .search-select-dropdown[b-bwp9chez37] {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        max-height: 250px;
        overflow-y: auto;
        z-index: 100;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        margin-top: 4px;
    }

    .search-select-option[b-bwp9chez37] {
        padding: 10px 12px;
        cursor: pointer;
        border-bottom: 1px solid #f1f5f9;
        transition: background 0.15s;
    }

        .search-select-option:last-child[b-bwp9chez37] {
            border-bottom: none;
        }

        .search-select-option:hover[b-bwp9chez37] {
            background: #f8fafc;
        }

        .search-select-option.selected[b-bwp9chez37] {
            background: #dbeafe;
        }

        .search-select-option .option-name[b-bwp9chez37] {
            display: block;
            font-size: 14px;
            color: #1e293b;
        }

        .search-select-option .option-desc[b-bwp9chez37] {
            display: block;
            font-size: 12px;
            color: #94a3b8;
            margin-top: 2px;
        }

    .inference-service-option[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .inference-framework-icon[b-bwp9chez37] {
        width: 26px;
        height: 26px;
        flex-shrink: 0;
        object-fit: contain;
        border-radius: 6px;
        background: #f8fafc;
    }

    .inference-service-info[b-bwp9chez37] {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

        .inference-service-info .option-name[b-bwp9chez37],
        .inference-service-info .option-desc[b-bwp9chez37] {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .search-select-empty[b-bwp9chez37] {
        padding: 16px;
        text-align: center;
        color: #94a3b8;
        font-size: 13px;
    }

    /* 未选择模型时的提示样式 */
    .no-model-selected[b-bwp9chez37] {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 40px;
        text-align: center;
    }

        .no-model-selected h2[b-bwp9chez37] {
            font-size: 24px;
            color: #1e293b;
            margin: 0 0 8px 0;
        }

        .no-model-selected p[b-bwp9chez37] {
            font-size: 14px;
            color: #64748b;
            margin: 0 0 24px 0;
        }

    .model-select-hint[b-bwp9chez37] {
        display: flex;
        gap: 16px;
        margin-top: 16px;
    }

    .hint-item[b-bwp9chez37] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 12px 20px;
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        cursor: pointer;
        transition: all 0.2s;
    }

        .hint-item:hover[b-bwp9chez37] {
            background: #f8fafc;
            border-color: #2563eb;
            color: #2563eb;
        }

    .hint-icon[b-bwp9chez37] {
        font-size: 18px;
    }

    /* 模型警告提示条 */
    .model-warning-bar[b-bwp9chez37] {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 10px 16px;
        background: #fef3c7;
        border-bottom: 1px solid #fcd34d;
        color: #92400e;
        font-size: 13px;
    }

    .warning-icon[b-bwp9chez37] {
        font-size: 14px;
    }

    /* 消息体容器（包含时间和内容） */
    .message-body[b-bwp9chez37] {
        display: flex;
        flex-direction: column;
        min-width: 0;
    }

    .message.user .message-body[b-bwp9chez37] {
        align-items: flex-end;
    }

    /* 消息时间戳 */
    .message-time[b-bwp9chez37] {
        font-size: 11px;
        color: #94a3b8;
        margin-bottom: 4px;
        padding: 0 4px;
    }

    .message.user .message-time[b-bwp9chez37] {
        color: rgba(100, 116, 139, 0.7);
    }

    /* 消息操作按钮 - ChatGPT风格 */
    .message-actions[b-bwp9chez37] {
        display: flex;
        gap: 2px;
        margin-top: 4px;
        padding: 0 4px;
        opacity: 0;
        transition: opacity 0.15s;
    }

    .message:hover .message-actions[b-bwp9chez37] {
        opacity: 1;
    }

    .message-action-btn[b-bwp9chez37] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 4px;
        border: none;
        background: transparent;
        cursor: pointer;
        color: #9ca3af;
        transition: all 0.15s;
        padding: 0;
    }

    .message-action-btn:hover:not(:disabled)[b-bwp9chez37] {
        background: #f3f4f6;
        color: #374151;
    }

    .message-action-btn:disabled[b-bwp9chez37] {
        opacity: 0.3;
        cursor: not-allowed;
    }

    .message-action-btn.action-active[b-bwp9chez37] {
        color: #2563eb;
        background: #eff6ff;
    }

    .message-action-btn.action-dislike[b-bwp9chez37] {
        color: #ef4444 !important;
        background: #fef2f2 !important;
    }

    /* 滚动到底部按钮 */
    .scroll-to-bottom-btn[b-bwp9chez37] {
        position: absolute;
        bottom: 90px;
        right: 30px;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: #fff;
        border: 1px solid #e5e7eb;
        box-shadow: 0 2px 8px rgba(0,0,0,0.12);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #6b7280;
        transition: all 0.2s;
        z-index: 10;
    }

    .scroll-to-bottom-btn:hover[b-bwp9chez37] {
        background: #f3f4f6;
        color: #374151;
        box-shadow: 0 4px 12px rgba(0,0,0,0.18);
    }

    /* 弹窗样式 */
    .modal-overlay[b-bwp9chez37] {
        position: fixed;
        top: 0; left: 0; right: 0; bottom: 0;
        background: rgba(0,0,0,0.4);
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .modal-dialog[b-bwp9chez37] {
        background: #fff;
        border-radius: 12px;
        width: 420px;
        max-width: 90vw;
        box-shadow: 0 20px 60px rgba(0,0,0,0.2);
        animation: modalFadeIn-b-bwp9chez37 0.2s ease;
    }

    @keyframes modalFadeIn-b-bwp9chez37 {
        from { opacity: 0; transform: scale(0.95) translateY(-10px); }
        to { opacity: 1; transform: scale(1) translateY(0); }
    }

    .modal-header[b-bwp9chez37] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 20px 24px 0;
    }

    .modal-header h3[b-bwp9chez37] {
        margin: 0;
        font-size: 16px;
        font-weight: 600;
    }

    .modal-close[b-bwp9chez37] {
        background: none;
        border: none;
        font-size: 22px;
        cursor: pointer;
        color: #9ca3af;
        padding: 0;
        line-height: 1;
    }

    .modal-close:hover[b-bwp9chez37] { color: #374151; }

    .modal-body[b-bwp9chez37] { padding: 16px 24px; }

    .modal-textarea[b-bwp9chez37] {
        width: 100%;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 10px 12px;
        font-size: 14px;
        resize: vertical;
        font-family: inherit;
        line-height: 1.5;
        box-sizing: border-box;
    }

    .modal-textarea:focus[b-bwp9chez37] {
        outline: none;
        border-color: #2563eb;
        box-shadow: 0 0 0 2px rgba(37,99,235,0.15);
    }

    .modal-footer[b-bwp9chez37] {
        display: flex;
        justify-content: flex-end;
        gap: 10px;
        padding: 0 24px 20px;
    }

    .modal-btn[b-bwp9chez37] {
        padding: 8px 20px;
        border-radius: 6px;
        font-size: 14px;
        cursor: pointer;
        border: none;
        font-weight: 500;
    }

    .modal-btn-cancel[b-bwp9chez37] {
        background: #f3f4f6;
        color: #374151;
    }

    .modal-btn-cancel:hover[b-bwp9chez37] { background: #e5e7eb; }

    .modal-btn-confirm[b-bwp9chez37] {
        background: #2563eb;
        color: #fff;
    }

    .modal-btn-confirm:hover[b-bwp9chez37] { background: #1d4ed8; }

    .dislike-reason-tags[b-bwp9chez37] {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 12px;
    }

    .dislike-reason-tag[b-bwp9chez37] {
        padding: 6px 14px;
        border: 1px solid #e5e7eb;
        border-radius: 16px;
        font-size: 13px;
        cursor: pointer;
        background: #fff;
        color: #374151;
        transition: all 0.15s;
    }

    .dislike-reason-tag:hover[b-bwp9chez37] {
        border-color: #2563eb;
        color: #2563eb;
        background: #eff6ff;
    }

    .dislike-reason-tag.selected[b-bwp9chez37] {
        border-color: #2563eb;
        color: #2563eb;
        background: #eff6ff;
    }

    /* 消息元数据信息 */
    .message-meta-info[b-bwp9chez37] {
        display: flex;
        gap: 6px;
        margin-top: 4px;
        padding: 0 4px;
        flex-wrap: wrap;
    }

    .meta-tag[b-bwp9chez37] {
        display: inline-flex;
        align-items: center;
        font-size: 11px;
        padding: 2px 6px;
        border-radius: 4px;
        line-height: 1.4;
        color: #6b7280;
        background: transparent;
    }

    .meta-model[b-bwp9chez37] {
        background: #f3f4f6;
    }

    .meta-sep[b-bwp9chez37] {
        margin: 0 2px;
        color: #d1d5db;
    }
/* /Components/Pages/ModelManagement/CreateModel.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-x058zds75m] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-x058zds75m] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-x058zds75m] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.create-page-actions[b-x058zds75m] { display: flex; justify-content: flex-end; margin: -6px 0 16px; }

.header-left[b-x058zds75m] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-x058zds75m] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
}

.back-btn:hover[b-x058zds75m] {
    background: #f9fafb;
    border-color: #d1d5db;
}

.page-title[b-x058zds75m] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

/* 卡片 */
.card[b-x058zds75m] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-body[b-x058zds75m] {
    padding: 24px;
}

/* 加载状态 */
.loading-container[b-x058zds75m] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}

.loading-spinner[b-x058zds75m] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-x058zds75m 1s linear infinite;
}

@keyframes spin-b-x058zds75m {
    to { transform: rotate(360deg); }
}

.loading-text[b-x058zds75m] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 表单容器 */
.form-container[b-x058zds75m] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 表单项 */
.form-group[b-x058zds75m] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-label[b-x058zds75m] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-x058zds75m]::after {
    content: "*";
    color: #ef4444;
    margin-left: 4px;
}

.form-input[b-x058zds75m], .form-textarea[b-x058zds75m] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    transition: all 0.15s;
}

.form-input:focus[b-x058zds75m], .form-textarea:focus[b-x058zds75m] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea[b-x058zds75m] {
    resize: vertical;
    min-height: 80px;
}

.form-error[b-x058zds75m] {
    font-size: 12px;
    color: #ef4444;
}

.form-hint[b-x058zds75m] {
    font-size: 12px;
    color: #6b7280;
}

/* 模型类型选择 */
.type-options[b-x058zds75m] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.type-option[b-x058zds75m] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    min-width: 100px;
}

.type-option:hover[b-x058zds75m] {
    border-color: #2563eb;
}

.type-option.selected[b-x058zds75m] {
    background: #eff6ff;
    border-color: #2563eb;
}

.type-option i[b-x058zds75m] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.type-option.selected i[b-x058zds75m] {
    color: #2563eb;
}

.type-option span[b-x058zds75m] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

/* 可见性选择 */
.visibility-options[b-x058zds75m] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.visibility-option[b-x058zds75m] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}

.visibility-option:hover:not(.disabled)[b-x058zds75m] {
    border-color: #2563eb;
}

.visibility-option.selected[b-x058zds75m] {
    background: #eff6ff;
    border-color: #2563eb;
}

.visibility-option.disabled[b-x058zds75m] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f9fafb;
}

.visibility-option i[b-x058zds75m] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.visibility-option.selected i[b-x058zds75m] {
    color: #2563eb;
}

.visibility-option span[b-x058zds75m] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.visibility-option small[b-x058zds75m] {
    font-size: 12px;
    color: #6b7280;
}

.option-disabled-tip[b-x058zds75m] {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #fef2f2;
    color: #ef4444;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    white-space: nowrap;
    margin-top: 4px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* 部门选择容器 */
.dept-select-container[b-x058zds75m] {
    display: flex;
    gap: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    background: #f9fafb;
}

.dept-tree-panel[b-x058zds75m] {
    flex: 1;
    min-width: 200px;
    max-width: 300px;
    border-right: 1px solid #e5e7eb;
    padding-right: 16px;
}

.dept-tree-header[b-x058zds75m] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 12px;
}

.dept-tree-body[b-x058zds75m] {
    max-height: 300px;
    overflow-y: auto;
}

.dept-tree-item[b-x058zds75m] {
    padding: 6px 8px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #374151;
    transition: all 0.15s;
}

.dept-tree-item:hover[b-x058zds75m] {
    background: #e5e7eb;
}

.dept-tree-item.selected[b-x058zds75m] {
    background: #2563eb;
    color: white;
}

.dept-tree-item i[b-x058zds75m] {
    font-size: 12px;
    color: #6b7280;
}

.dept-tree-item.selected i[b-x058zds75m] {
    color: white;
}

.tree-children[b-x058zds75m] {
    margin-left: 16px;
}

.empty-tree[b-x058zds75m] {
    color: #6b7280;
    font-size: 13px;
    text-align: center;
    padding: 20px;
}

.selected-dept-display[b-x058zds75m] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.selected-dept-info[b-x058zds75m] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #2563eb;
}

.selected-dept-info i[b-x058zds75m] {
    color: #2563eb;
}

.selected-dept-info span[b-x058zds75m] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.clear-btn[b-x058zds75m] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    padding: 4px;
    margin-left: auto;
}

.clear-btn:hover[b-x058zds75m] {
    color: #ef4444;
}

.no-selection[b-x058zds75m] {
    color: #9ca3af;
    font-size: 13px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

/* 当前部门显示 */
.current-dept[b-x058zds75m] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

.current-dept i[b-x058zds75m] {
    color: #6b7280;
}

/* 错误提示 */
.error-tip[b-x058zds75m] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fee2e2;
    border-radius: 6px;
    color: #ef4444;
    font-size: 14px;
}

.error-tip i[b-x058zds75m] {
    color: #fbbf24;
}

/* 按钮 */
.btn[b-x058zds75m] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn:disabled[b-x058zds75m] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-x058zds75m] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-x058zds75m] {
    background: #1d4ed8;
}

.btn-default[b-x058zds75m] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-x058zds75m] {
    background: #f9fafb;
}

/* 表单操作区 */
.form-actions[b-x058zds75m] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
}

/* Toast */
.toast[b-x058zds75m] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-x058zds75m 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-x058zds75m {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-x058zds75m] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-x058zds75m] {
    background: #fee2e2;
    color: #ef4444;
}

/* 响应式 */
@media (max-width: 768px) {
    .visibility-options[b-x058zds75m] {
        grid-template-columns: repeat(2, 1fr);
    }

    .type-options[b-x058zds75m] {
        flex-wrap: wrap;
    }

    .type-option[b-x058zds75m] {
        min-width: 80px;
    }

    .dept-select-container[b-x058zds75m] {
        flex-direction: column;
    }

    .dept-tree-panel[b-x058zds75m] {
        max-width: 100%;
        border-right: none;
        border-bottom: 1px solid #e5e7eb;
        padding-right: 0;
        padding-bottom: 16px;
    }
}

/* Ant Design asset creation workspace */
.asset-create-card[b-x058zds75m] {
    width: min(100%, 960px);
    margin: 0 auto;
    border-radius: 6px;
}

.asset-create-form[b-x058zds75m] {
    width: 100%;
}

.asset-create-form[b-x058zds75m]  .ant-form-item {
    margin-bottom: 20px;
}

.asset-type-segments[b-x058zds75m] {
    display: flex;
    flex-wrap: wrap;
}

.asset-type-segments[b-x058zds75m]  .ant-radio-button-wrapper {
    min-width: 112px;
    height: 40px;
    padding: 0 16px;
    line-height: 38px;
    text-align: center;
}

.asset-type-segments[b-x058zds75m]  .anticon {
    margin-right: 6px;
}

.form-actions[b-x058zds75m] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

@media (max-width: 640px) {
    .page-container[b-x058zds75m] {
        padding: 12px;
    }

    .asset-create-card[b-x058zds75m]  .ant-card-body {
        padding: 16px !important;
    }

    .asset-type-segments[b-x058zds75m],
    .asset-type-segments[b-x058zds75m]  .ant-radio-button-wrapper {
        width: 100%;
    }
}
/* /Components/Pages/ModelManagement/ModelDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-myo8nfpixx] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-myo8nfpixx] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-myo8nfpixx] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-myo8nfpixx] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
}

.back-btn:hover[b-myo8nfpixx] {
    background: #f9fafb;
    border-color: #d1d5db;
}

.header-info[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-title[b-myo8nfpixx] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-tags[b-myo8nfpixx] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.header-right[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 区块标题 */
.section-title[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
    margin-top: 24px;
}

.section-title:first-of-type[b-myo8nfpixx] {
    margin-top: 0;
}

.section-title i[b-myo8nfpixx] {
    color: #6b7280;
}

.count-badge[b-myo8nfpixx] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

/* 按钮 */
.btn[b-myo8nfpixx] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-myo8nfpixx] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-myo8nfpixx] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-myo8nfpixx] {
    background: #1d4ed8;
}

.btn-default[b-myo8nfpixx] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-myo8nfpixx] {
    background: #f9fafb;
}

.btn-success[b-myo8nfpixx] {
    background: #16a34a;
    color: white;
}

.btn-success:hover:not(:disabled)[b-myo8nfpixx] {
    background: #15803d;
}

.btn-sm[b-myo8nfpixx] {
    padding: 6px 12px;
    font-size: 13px;
}

/* 卡片 */
.card[b-myo8nfpixx] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-header[b-myo8nfpixx] {
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-body[b-myo8nfpixx] {
    padding: 16px 20px;
}

.table-wrapper[b-myo8nfpixx] {
    overflow-x: auto;
}

/* 信息卡片 */
.info-card[b-myo8nfpixx] {
    padding: 16px 20px;
}

.info-grid[b-myo8nfpixx] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.info-item[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label[b-myo8nfpixx] {
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
}

.info-value[b-myo8nfpixx] {
    font-size: 14px;
    color: #374151;
}

/* 表格 */
.data-table[b-myo8nfpixx] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-myo8nfpixx] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-myo8nfpixx] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-myo8nfpixx] {
    background: #f9fafb;
}

/* 版本单元格 */
.version-cell[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.latest-badge[b-myo8nfpixx] {
    padding: 2px 6px;
    background: #2563eb;
    color: white;
    border-radius: 4px;
    font-size: 11px;
}

.version-name[b-myo8nfpixx] {
    font-weight: 500;
}

.version-desc[b-myo8nfpixx] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

/* 类型标签 */
.type-tag[b-myo8nfpixx] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    background: #dbeafe;
    color: #2563eb;
}

/* 可见性标签 */
.visibility-private[b-myo8nfpixx] {
    background: #fef2f2;
    color: #991b1b;
}

.visibility-dept[b-myo8nfpixx] {
    background: #fef3c7;
    color: #92400e;
}

.visibility-organization[b-myo8nfpixx] {
    background: #dbeafe;
    color: #1d4ed8;
}

.visibility-public[b-myo8nfpixx] {
    background: #d1fae5;
    color: #065f46;
}

/* 状态标签 */
.status-tag[b-myo8nfpixx] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-myo8nfpixx] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-myo8nfpixx] {
    background: #f1f5f9;
    color: #64748b;
}

.status-archived[b-myo8nfpixx] {
    background: #fee2e2;
    color: #ef4444;
}

.status-pending[b-myo8nfpixx] {
    background: #fef3c7;
    color: #d97706;
}

.status-failed[b-myo8nfpixx] {
    background: #fee2e2;
    color: #ef4444;
}

/* 内存信息 */
.memory-info[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.memory-row[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
}

.memory-row i[b-myo8nfpixx] {
    color: #6b7280;
    font-size: 12px;
}

.memory-row.gpu i[b-myo8nfpixx] {
    color: #16a34a;
}

.text-muted[b-myo8nfpixx] {
    color: #9ca3af;
}

.size-text[b-myo8nfpixx], .param-text[b-myo8nfpixx], .precision-text[b-myo8nfpixx], .creator-text[b-myo8nfpixx], .date-text[b-myo8nfpixx] {
    font-size: 13px;
    color: #374151;
}

/* 操作单元格 */
.action-cell[b-myo8nfpixx] {
    display: flex;
    gap: 8px;
}

/* 加载和空状态 */
.loading-container[b-myo8nfpixx], .empty-state[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-myo8nfpixx] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-myo8nfpixx 1s linear infinite;
}

@keyframes spin-b-myo8nfpixx {
    to { transform: rotate(360deg); }
}

.loading-text[b-myo8nfpixx] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-state.small[b-myo8nfpixx] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-myo8nfpixx] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-state.small .empty-icon[b-myo8nfpixx] {
    font-size: 36px;
}

.empty-title[b-myo8nfpixx] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-state.small .empty-title[b-myo8nfpixx] {
    font-size: 16px;
}

.empty-desc[b-myo8nfpixx] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

.empty-state.small .empty-desc[b-myo8nfpixx] {
    margin-bottom: 0;
}

/* Toast */
.toast[b-myo8nfpixx] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-myo8nfpixx 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-myo8nfpixx {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-myo8nfpixx] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-myo8nfpixx] {
    background: #fee2e2;
    color: #ef4444;
}

/* Modal 弹窗 */
.modal-overlay[b-myo8nfpixx] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
}

.modal-content[b-myo8nfpixx] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-large[b-myo8nfpixx] {
    width: 640px;
}

.modal-header[b-myo8nfpixx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-myo8nfpixx] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-myo8nfpixx] {
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 4px;
    font-size: 16px;
}

.modal-close:hover[b-myo8nfpixx] {
    color: #111827;
}

.modal-body[b-myo8nfpixx] {
    padding: 20px;
}

.modal-footer[b-myo8nfpixx] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 表单 */
.form-group[b-myo8nfpixx] {
    margin-bottom: 16px;
}

.form-label[b-myo8nfpixx] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-label.required[b-myo8nfpixx]::after {
    content: "*";
    color: #ef4444;
    margin-left: 4px;
}

.form-input[b-myo8nfpixx], .form-textarea[b-myo8nfpixx], .form-select[b-myo8nfpixx] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
}

.form-input:focus[b-myo8nfpixx], .form-textarea:focus[b-myo8nfpixx], .form-select:focus[b-myo8nfpixx] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 100, 235, 0.1);
}

.form-hint[b-myo8nfpixx] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #6b7280;
}

/* Radio Group 选项 */
.radio-group[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.radio-option[b-myo8nfpixx] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.radio-option:hover[b-myo8nfpixx] {
    border-color: #2563eb;
    background: #f9fafb;
}

.radio-option input[type="radio"][b-myo8nfpixx] {
    margin-top: 2px;
    cursor: pointer;
}

.radio-option input[type="radio"]:checked + .radio-label[b-myo8nfpixx] {
    color: #2563eb;
}

.radio-label[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
}

.radio-title[b-myo8nfpixx] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.radio-desc[b-myo8nfpixx] {
    font-size: 12px;
    color: #6b7280;
}

/* 可见性选项 */
.visibility-options[b-myo8nfpixx] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.visibility-option[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.visibility-option:hover[b-myo8nfpixx] {
    border-color: #2563eb;
}

.visibility-option.selected[b-myo8nfpixx] {
    background: #eff6ff;
    border-color: #2563eb;
}

.visibility-option i[b-myo8nfpixx] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.visibility-option.selected i[b-myo8nfpixx] {
    color: #2563eb;
}

.visibility-option span[b-myo8nfpixx] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.visibility-option small[b-myo8nfpixx] {
    font-size: 12px;
    color: #6b7280;
}

/* 配置区域 */
.config-section[b-myo8nfpixx] {
    margin-top: 16px;
    padding: 16px;
    background: #f9fafb;
    border-radius: 6px;
}

.config-title[b-myo8nfpixx] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 12px;
}

.config-grid[b-myo8nfpixx] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.config-grid .form-group[b-myo8nfpixx] {
    margin-bottom: 0;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-myo8nfpixx] {
        flex-direction: column;
        align-items: flex-start;
    }

    .header-right[b-myo8nfpixx] {
        width: 100%;
        flex-wrap: wrap;
    }

    .info-grid[b-myo8nfpixx] {
        grid-template-columns: repeat(2, 1fr);
    }

    .visibility-options[b-myo8nfpixx] {
        grid-template-columns: repeat(2, 1fr);
    }

    .config-grid[b-myo8nfpixx] {
        grid-template-columns: 1fr;
    }
}

/* 资产详情工作区：标题与页签固定，仅内容区滚动。 */
.page-container[b-myo8nfpixx] { height: calc(100vh - 112px); min-height: 620px; padding: 16px; overflow: hidden; background: #f6f8fb; }
.main-content[b-myo8nfpixx] { height: 100%; min-height: 0; display: flex; flex-direction: column; }
.asset-toolbar[b-myo8nfpixx], .asset-actions[b-myo8nfpixx], .asset-tags[b-myo8nfpixx], .asset-metrics[b-myo8nfpixx], .modal-ant-actions[b-myo8nfpixx] { display: flex; align-items: center; gap: 8px; }
.asset-toolbar[b-myo8nfpixx] { justify-content: space-between; margin-bottom: 10px; }
.asset-actions[b-myo8nfpixx], .asset-tags[b-myo8nfpixx] { flex-wrap: wrap; }
.asset-tags[b-myo8nfpixx] { gap: 4px; }
.asset-tags[b-myo8nfpixx]  .ant-tag { margin-inline-end: 0; }
.asset-hero[b-myo8nfpixx] { display: flex; align-items: flex-start; gap: 16px; padding: 18px 20px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; }
.asset-mark[b-myo8nfpixx] { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 6px; background: #f6ffed; color: #389e0d; font-size: 22px; }
.asset-identity[b-myo8nfpixx] { min-width: 0; flex: 1; }
.asset-kind[b-myo8nfpixx] { color: #8c8c8c; font-size: 12px; }
.asset-identity h1[b-myo8nfpixx] { margin: 2px 0 4px; font-size: 22px; line-height: 30px; letter-spacing: 0; overflow-wrap: anywhere; }
.asset-identity p[b-myo8nfpixx] { margin: 0 0 10px; color: #595959; }
.asset-summary-meta[b-myo8nfpixx] { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 10px; color: #6b7280; font-size: 13px; }
.asset-summary-meta span[b-myo8nfpixx] { display: inline-flex; align-items: center; gap: 6px; }
.asset-metrics[b-myo8nfpixx] { flex: 0 0 auto; align-self: center; }
.asset-metric[b-myo8nfpixx] { min-width: 72px; display: grid; grid-template-columns: auto auto; column-gap: 6px; align-items: center; padding: 0 12px; border-right: 1px solid #f0f0f0; }
.asset-metric span[b-myo8nfpixx] { grid-column: 1 / -1; color: #8c8c8c; font-size: 12px; text-align: center; }
.asset-detail-layout[b-myo8nfpixx] { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; margin-top: 12px; overflow: hidden; }
.asset-primary-content[b-myo8nfpixx], .asset-sidebar[b-myo8nfpixx], .asset-content-card[b-myo8nfpixx] { min-height: 0; }
.asset-primary-content[b-myo8nfpixx] { height: 100%; overflow: hidden; }
.asset-primary-content[b-myo8nfpixx]  .asset-content-card { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.asset-primary-content[b-myo8nfpixx]  .asset-content-card .ant-card-head { flex: 0 0 auto; }
.asset-primary-content[b-myo8nfpixx]  .asset-content-card .ant-card-body { height: auto; min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; }
.asset-sidebar[b-myo8nfpixx] { overflow-y: auto; }
.asset-content-card[b-myo8nfpixx]  .ant-tabs-nav { flex: 0 0 auto; margin: 0; padding: 0 20px; }
/* 页签内容由下方 asset-tab-content 渲染；AntDesign 生成的空 holder 不参与布局。 */
.asset-primary-content[b-myo8nfpixx]  .asset-content-card .ant-tabs-content-holder { display: none !important; }
.asset-primary-content[b-myo8nfpixx]  .asset-tab-content { min-height: 0; flex: 1 1 auto; overflow: auto; }
.asset-tab-content[b-myo8nfpixx] { min-height: 0; flex: 1; overflow: auto; padding: 24px; }
.asset-tab-content.readme[b-myo8nfpixx] { overflow: hidden; padding: 0; }
.asset-tab-content.files[b-myo8nfpixx] { padding: 16px; }
.asset-tab-content.files[b-myo8nfpixx]  .file-explorer-root { min-height: 100%; }
.asset-state[b-myo8nfpixx] { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.readme-scroll-panel[b-myo8nfpixx] { width: 100%; height: 100%; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 24px; }
.asset-description-body[b-myo8nfpixx] { max-width: 1100px; margin: 0 auto; }
.asset-description-label[b-myo8nfpixx] { color: #8c8c8c; font-size: 12px; margin-bottom: 8px; }
.asset-description-body p[b-myo8nfpixx] { white-space: pre-wrap; line-height: 1.8; margin: 0; }
.readme-body[b-myo8nfpixx] { max-width: 1100px; margin: 0 auto; padding: 0; }
.modal-ant-actions[b-myo8nfpixx] { justify-content: flex-end; }
.asset-tag-editor-field[b-myo8nfpixx] { display: grid; gap: 8px; }
.asset-tag-editor-field label[b-myo8nfpixx] { color: #262626; font-size: 14px; font-weight: 500; }

@media (max-width: 992px) {
    .page-container[b-myo8nfpixx] { height: auto; min-height: 100%; overflow: visible; }
    .asset-hero[b-myo8nfpixx] { flex-wrap: wrap; }
    .asset-metrics[b-myo8nfpixx] { width: 100%; justify-content: flex-start; }
    .asset-detail-layout[b-myo8nfpixx] { display: block; overflow: visible; }
    .asset-primary-content[b-myo8nfpixx] { height: auto; min-height: 0; margin-bottom: 16px; }
    .asset-content-card[b-myo8nfpixx], .asset-content-card[b-myo8nfpixx]  .ant-card-body { height: auto; }
    .asset-tab-content[b-myo8nfpixx] { overflow: visible; }
    .asset-tab-content.files[b-myo8nfpixx] { max-height: min(640px, 68vh); overflow: auto; }
    .asset-sidebar[b-myo8nfpixx] { display: none; }
}

@media (max-width: 640px) {
    .page-container[b-myo8nfpixx] { padding: 12px; }
    .asset-toolbar[b-myo8nfpixx] { align-items: flex-start; flex-direction: column; }
    .asset-actions[b-myo8nfpixx] { width: 100%; }
    .asset-metrics[b-myo8nfpixx] { flex-wrap: wrap; }
}

/* 文件浏览弹窗 */
.modal-file-explorer[b-myo8nfpixx] {
    width: 800px;
    max-width: 90vw;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.file-explorer-body[b-myo8nfpixx] {
    padding: 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    min-height: 400px;
}

/* 不覆盖 FileExplorer 内部样式，让其保持与数据管理页面一致 */

.path-nav[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
}

.path-display[b-myo8nfpixx] {
    flex: 1;
    font-size: 13px;
    color: #374151;
    background: white;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-list-container[b-myo8nfpixx] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
    min-height: 300px;
}

.file-empty[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    color: #6b7280;
}

.file-empty i[b-myo8nfpixx] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 12px;
}

.file-empty p[b-myo8nfpixx] {
    font-size: 14px;
    margin: 0;
}

.file-list[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.file-item[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: default;
    transition: all 0.15s;
}

.file-item.folder[b-myo8nfpixx] {
    cursor: pointer;
}

.file-item.folder:hover[b-myo8nfpixx] {
    background: #f0f9ff;
    border-color: #2563eb;
}

.file-icon[b-myo8nfpixx] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #f9fafb;
}

.file-item.folder .file-icon[b-myo8nfpixx] {
    background: #dbeafe;
}

.file-item.folder .file-icon i[b-myo8nfpixx] {
    color: #2563eb;
}

.file-icon i[b-myo8nfpixx] {
    font-size: 18px;
    color: #6b7280;
}

.file-info[b-myo8nfpixx] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.file-name[b-myo8nfpixx] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

.file-meta[b-myo8nfpixx] {
    font-size: 12px;
    color: #6b7280;
}

.file-action[b-myo8nfpixx] {
    color: #6b7280;
    font-size: 14px;
}

.file-count[b-myo8nfpixx] {
    font-size: 13px;
    color: #6b7280;
    margin-right: auto;
}

/* Tab 卡片样式 */
.tab-card[b-myo8nfpixx] {
    padding: 0;
}

.tab-header[b-myo8nfpixx] {
    display: flex;
    border-bottom: 1px solid #e5e7eb;
    padding: 0;
}

.tab-item[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.15s;
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
}

.tab-item:hover[b-myo8nfpixx] {
    color: #2563eb;
    background: #f9fafb;
}

.tab-item.active[b-myo8nfpixx] {
    color: #2563eb;
    border-bottom-color: #2563eb;
    background: #eff6ff;
}

.tab-item i[b-myo8nfpixx] {
    font-size: 14px;
}

.tab-count[b-myo8nfpixx] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
}

.tab-content[b-myo8nfpixx] {
    padding: 16px;
    min-height: 300px;
}

/* 版本选择器行 */
.version-selector-row[b-myo8nfpixx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    margin-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.version-selector-left[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.selector-label[b-myo8nfpixx] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.version-select[b-myo8nfpixx] {
    min-width: 150px;
    max-width: 200px;
}

/* 版本选择器（旧样式，保留兼容） */
.version-selector[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 16px;
}

/* 文件浏览器容器 */
.file-explorer-wrapper[b-myo8nfpixx] {
    /* 样式已下沉到 FileExplorer 组件内部的 .file-explorer-root，保持外部 wrapper 透明 */
}

/* README 空状态 */
.empty-readme[b-myo8nfpixx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    padding: 24px;
    color: #6b7280;
}

.empty-readme .empty-icon[b-myo8nfpixx] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 12px;
}

.empty-readme .empty-text[b-myo8nfpixx] {
    font-size: 16px;
    font-weight: 500;
    color: #374151;
    margin: 0 0 8px 0;
}

.empty-readme .empty-hint[b-myo8nfpixx] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
    text-align: center;
}

/* README 内容 */
.readme-content[b-myo8nfpixx] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.readme-header[b-myo8nfpixx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    color: #374151;
}

.readme-header i[b-myo8nfpixx] {
    color: #6b7280;
}

.readme-version-tag[b-myo8nfpixx] {
    padding: 2px 8px;
    background: #dbeafe;
    color: #2563eb;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.readme-body[b-myo8nfpixx] {
    padding: 16px;
    font-size: 14px;
    color: #374151;
    line-height: 1.6;
    max-height: 600px;
    overflow-y: auto;
}

.readme-body h1[b-myo8nfpixx] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e7eb;
}

.readme-body h2[b-myo8nfpixx] {
    font-size: 20px;
    font-weight: 600;
    color: #111827;
    margin: 24px 0 12px 0;
}

.readme-body h3[b-myo8nfpixx] {
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin: 16px 0 8px 0;
}

.readme-body p[b-myo8nfpixx] {
    margin: 12px 0;
}

.readme-body ul[b-myo8nfpixx] {
    margin: 12px 0;
    padding-left: 24px;
}

.readme-body li[b-myo8nfpixx] {
    margin: 4px 0;
}

.readme-body code[b-myo8nfpixx] {
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 13px;
    color: #ef4444;
}

.readme-body pre[b-myo8nfpixx] {
    background: #f3f4f6;
    padding: 12px;
    border-radius: 6px;
    overflow-x: auto;
    margin: 16px 0;
}

.readme-body pre code[b-myo8nfpixx] {
    background: transparent;
    padding: 0;
    color: #374151;
}

.readme-body a[b-myo8nfpixx] {
    color: #2563eb;
    text-decoration: none;
}

.readme-body a:hover[b-myo8nfpixx] {
    text-decoration: underline;
}

.readme-body br[b-myo8nfpixx] {
    display: block;
    margin: 8px 0;
    content: "";
}

/* 小型加载容器 */
.loading-container.small[b-myo8nfpixx] {
    min-height: 150px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.loading-container.small i[b-myo8nfpixx] {
    font-size: 20px;
    color: #2563eb;
}

.loading-container.small span[b-myo8nfpixx] {
    font-size: 14px;
    color: #6b7280;
}

/* 小型空状态的额外样式 */
.empty-state.small .empty-hint[b-myo8nfpixx] {
    font-size: 13px;
    color: #9ca3af;
    margin-top: 8px;
}
/* /Components/Pages/ModelManagement/ModelList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

/* 页面头部 */
.page-header[b-9airltbbxa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--console-color-split);
}

.header-left[b-9airltbbxa] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-9airltbbxa] {
    color: #6b7280;
    font-size: 20px;
}

.page-title[b-9airltbbxa] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-9airltbbxa] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 区块标题 */
.section-header[b-9airltbbxa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.section-title-left[b-9airltbbxa] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
}

.section-title-left i[b-9airltbbxa] {
    color: #6b7280;
}

.section-title-right[b-9airltbbxa] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.count-badge[b-9airltbbxa] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

/* 搜索框 */
.search-box[b-9airltbbxa] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 6px 12px;
    gap: 8px;
    min-width: 200px;
}

.search-icon[b-9airltbbxa] {
    color: #9ca3af;
    font-size: 14px;
}

.search-input[b-9airltbbxa] {
    border: none;
    outline: none;
    font-size: 14px;
    color: #111827;
    background: transparent;
    width: 150px;
}

.search-input[b-9airltbbxa]::placeholder {
    color: #9ca3af;
}

.search-clear[b-9airltbbxa] {
    background: none;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 2px;
    font-size: 12px;
}

.search-clear:hover[b-9airltbbxa] {
    color: #6b7280;
}

/* 高级筛选面板 */
.advanced-filter-panel[b-9airltbbxa] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.filter-row[b-9airltbbxa] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}

.filter-item[b-9airltbbxa] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-label[b-9airltbbxa] {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.filter-select[b-9airltbbxa], .filter-date[b-9airltbbxa] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    min-width: 140px;
}

.filter-select:focus[b-9airltbbxa], .filter-date:focus[b-9airltbbxa] {
    outline: none;
    border-color: #2563eb;
}

.filter-actions[b-9airltbbxa] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.filter-active-badge[b-9airltbbxa] {
    color: #2563eb;
    font-size: 10px;
    margin-left: 4px;
}

/* 按钮 */
.btn[b-9airltbbxa] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-9airltbbxa] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-sm[b-9airltbbxa] {
    padding: 4px 10px;
    font-size: 12px;
}

.btn-primary[b-9airltbbxa] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-9airltbbxa] {
    background: #1d4ed8;
}

.btn-default[b-9airltbbxa] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-9airltbbxa] {
    background: #f9fafb;
}

.btn-danger[b-9airltbbxa] {
    background: #dc2626;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-9airltbbxa] {
    background: #b91c1c;
}

.btn-link[b-9airltbbxa] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-9airltbbxa] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-link-danger[b-9airltbbxa] {
    background: none;
    border: none;
    color: #ef4444;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link-danger:hover[b-9airltbbxa] {
    color: #dc2626;
    text-decoration: underline;
}

/* 卡片 */
.card[b-9airltbbxa] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: white;
    border-radius: var(--console-radius-base);
    border: 1px solid var(--console-color-border);
    box-shadow: var(--console-shadow-card, 0 1px 2px rgba(0,0,0,.03));
}

.table-wrapper[b-9airltbbxa] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    overflow: auto;
    overscroll-behavior-x: contain;
}

.model-pagination[b-9airltbbxa] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
}

.model-total[b-9airltbbxa] {
    color: #6b7280;
    font-size: 14px;
    white-space: nowrap;
}

.model-pagination[b-9airltbbxa]  .ant-pagination {
    margin: 0;
}

@media (max-width: 640px) {
    .model-pagination[b-9airltbbxa] {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 表格 */
.data-table[b-9airltbbxa] {
    width: 100%;
    min-width: 1320px;
    border-collapse: collapse;
}

.cell-ellipsis[b-9airltbbxa] { display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #595959; }
.metric-cell[b-9airltbbxa] { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: #595959; }
.name-link[b-9airltbbxa] { white-space: nowrap; }

.main-content > .empty-state[b-9airltbbxa],
.main-content > .loading-container[b-9airltbbxa] {
    flex: 1 1 auto;
    min-height: 0;
}

.data-table thead[b-9airltbbxa] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.data-table th[b-9airltbbxa] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-9airltbbxa] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-9airltbbxa] {
    background: #f9fafb;
}

.name-link[b-9airltbbxa] {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.name-link:hover[b-9airltbbxa] {
    text-decoration: underline;
}

.task-desc[b-9airltbbxa] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 类型标签 */
.type-tag[b-9airltbbxa] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.type-llm[b-9airltbbxa] {
    background: #dbeafe;
    color: #2563eb;
}

.type-vision[b-9airltbbxa] {
    background: #fce7f3;
    color: #db2777;
}

.type-multimodal[b-9airltbbxa] {
    background: #dcfce7;
    color: #16a34a;
}

.type-audio[b-9airltbbxa] {
    background: #ffedd5;
    color: #ea580c;
}

.type-other[b-9airltbbxa] {
    background: #e5e7eb;
    color: #6b7280;
}

/* 可见性标签 */
.visibility-private[b-9airltbbxa] {
    background: #fef2f2;
    color: #991b1b;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-dept[b-9airltbbxa] {
    background: #fef3c7;
    color: #92400e;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-organization[b-9airltbbxa] {
    background: #dbeafe;
    color: #1d4ed8;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-public[b-9airltbbxa] {
    background: #d1fae5;
    color: #065f46;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

/* 状态标签 */
.status-tag[b-9airltbbxa] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-9airltbbxa] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-9airltbbxa] {
    background: #f1f5f9;
    color: #64748b;
}

.status-archived[b-9airltbbxa] {
    background: #fee2e2;
    color: #ef4444;
}

/* 版本信息 */
.version-info[b-9airltbbxa] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

.version-info i[b-9airltbbxa] {
    color: #6b7280;
}

.version-latest[b-9airltbbxa] {
    font-size: 11px;
    color: #6b7280;
    margin-top: 2px;
}

.size-text[b-9airltbbxa], .creator-text[b-9airltbbxa], .date-text[b-9airltbbxa] {
    font-size: 13px;
    color: #374151;
}

/* 操作单元格 */
.action-cell[b-9airltbbxa] {
    display: flex;
    gap: 8px;
}

/* 加载和空状态 */
.loading-container[b-9airltbbxa] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-9airltbbxa] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-9airltbbxa 1s linear infinite;
}

@keyframes spin-b-9airltbbxa {
    to { transform: rotate(360deg); }
}

.loading-text[b-9airltbbxa] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 空状态 */
.empty-state[b-9airltbbxa] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.empty-state.small[b-9airltbbxa] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-9airltbbxa] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-9airltbbxa] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-9airltbbxa] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

/* Toast */
.toast[b-9airltbbxa] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-9airltbbxa 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-9airltbbxa {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-9airltbbxa] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-9airltbbxa] {
    background: #fee2e2;
    color: #ef4444;
}

/* Modal 弹窗 */
.modal-overlay[b-9airltbbxa] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
}

.modal-content[b-9airltbbxa] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-sm[b-9airltbbxa] {
    width: 400px;
}

.text-danger[b-9airltbbxa] {
    color: #dc2626;
}

.delete-warning[b-9airltbbxa] {
    font-size: 14px;
    color: #374151;
    margin-bottom: 8px;
}

.delete-warning-desc[b-9airltbbxa] {
    font-size: 12px;
    color: #6b7280;
    margin: 0;
}

.modal-header[b-9airltbbxa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-9airltbbxa] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close[b-9airltbbxa] {
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 4px;
    font-size: 16px;
}

.modal-close:hover[b-9airltbbxa] {
    color: #111827;
}

.modal-body[b-9airltbbxa] {
    padding: 20px;
}

.modal-footer[b-9airltbbxa] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 部门布局 */
.department-layout[b-9airltbbxa] {
    display: flex;
    gap: 20px;
    min-height: 500px;
}

.department-sidebar[b-9airltbbxa] {
    width: 280px;
    flex-shrink: 0;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.sidebar-header[b-9airltbbxa] {
    padding: 16px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-weight: 600;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 8px;
}

.department-tree[b-9airltbbxa] {
    padding: 8px;
    max-height: 500px;
    overflow-y: auto;
}

.tree-item[b-9airltbbxa] {
    padding: 8px 12px;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
}

.tree-item:hover[b-9airltbbxa] {
    background: #f3f4f6;
}

.tree-item.selected[b-9airltbbxa] {
    background: #eff6ff;
    color: #2563eb;
}

.tree-item i[b-9airltbbxa] {
    color: #9ca3af;
    font-size: 12px;
}

.tree-children[b-9airltbbxa] {
    margin-left: 20px;
}

.department-content[b-9airltbbxa] {
    flex: 1;
    min-width: 0;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-9airltbbxa] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .tabs[b-9airltbbxa] {
        flex-wrap: wrap;
    }
    
    .section-header[b-9airltbbxa] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .section-title-right[b-9airltbbxa] {
        width: 100%;
        min-width: 0;
        flex-wrap: wrap;
    }

    .section-title-right[b-9airltbbxa]  .ant-input-affix-wrapper {
        width: auto !important;
        min-width: 0;
        flex: 1 1 160px;
    }
    
    .search-box[b-9airltbbxa] {
        min-width: 100%;
    }
    
    .advanced-filter-panel .filter-row[b-9airltbbxa] {
        flex-direction: column;
        align-items: stretch;
    }
    
    .filter-item[b-9airltbbxa] {
        width: 100%;
    }
    
    .filter-select[b-9airltbbxa], .filter-date[b-9airltbbxa] {
        width: 100%;
    }
    
    .filter-actions[b-9airltbbxa] {
        margin-left: 0;
        width: 100%;
        justify-content: flex-start;
    }
    
    .data-table[b-9airltbbxa] {
        display: table;
    }
}
/* /Components/Pages/ModelMarketplace.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面外壳、标题和筛选栏复用控制台公共版式。 */
.marketplace-page[b-k7o8lstlvj] { background: var(--console-color-bg-page, #f5f7fa); }

.marketplace-page .catalog-stats[b-k7o8lstlvj] { color: var(--console-color-text-3, #6b7280); font-size: var(--console-font-sm, 14px); white-space: nowrap; }
.marketplace-page .catalog-stats strong[b-k7o8lstlvj] { color: var(--console-color-text-1, #262626); font-weight: 600; }

/* 模型卡片网格：与数据集列表保持相同的间距、边框和页面密度。 */
.catalog-grid[b-k7o8lstlvj] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; min-width: 0; flex: 1 1 auto; min-height: 0; align-content: start; overflow: auto; padding: 0 2px 4px 0; }

.model-card[b-k7o8lstlvj] {
    display: flex; min-height: 168px; flex-direction: column; padding: 16px;
    background: var(--console-color-bg-card, #fff); border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: var(--console-radius-md, 8px); cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.model-card:hover[b-k7o8lstlvj] { border-color: var(--console-color-primary, #1677ff); box-shadow: 0 4px 12px rgba(22, 119, 255, 0.12); transform: translateY(-1px); }
.model-card:focus-within[b-k7o8lstlvj] { outline: 2px solid rgba(22, 119, 255, 0.24); outline-offset: 2px; }

.model-card-header[b-k7o8lstlvj] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.model-icon[b-k7o8lstlvj] { display: flex; width: 40px; height: 40px; flex: 0 0 40px; align-items: center; justify-content: center; overflow: hidden; border-radius: 8px; font-size: 16px; }
.model-icon img[b-k7o8lstlvj] { width: 100%; height: 100%; object-fit: cover; }
.model-icon.icon-blue[b-k7o8lstlvj] { background: #eff6ff; color: #2563eb; }
.model-icon.icon-teal[b-k7o8lstlvj] { background: #f0fdfa; color: #0f766e; }
.model-icon.icon-orange[b-k7o8lstlvj] { background: #fff7ed; color: #c2410c; }
.model-icon.icon-green[b-k7o8lstlvj] { background: #f0fdf4; color: #15803d; }
.model-icon.icon-purple[b-k7o8lstlvj] { background: #f5f3ff; color: #7c3aed; }
.model-icon.icon-gray[b-k7o8lstlvj] { background: #f3f4f6; color: #4b5563; }

.model-meta[b-k7o8lstlvj] { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.model-category-tag[b-k7o8lstlvj], .model-source-tag[b-k7o8lstlvj] { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 500; line-height: 18px; white-space: nowrap; }
.model-category-tag.tag-blue[b-k7o8lstlvj] { background: #e6f4ff; color: #0958d9; }
.model-category-tag.tag-teal[b-k7o8lstlvj] { background: #e6fffb; color: #006d75; }
.model-category-tag.tag-orange[b-k7o8lstlvj] { background: #fff7e6; color: #ad4e00; }
.model-category-tag.tag-green[b-k7o8lstlvj] { background: #f6ffed; color: #237804; }
.model-category-tag.tag-purple[b-k7o8lstlvj] { background: #f9f0ff; color: #531dab; }
.model-category-tag.tag-gray[b-k7o8lstlvj] { background: #f5f5f5; color: #595959; }
.model-source-tag.source-blue[b-k7o8lstlvj] { background: #e6f4ff; color: #1677ff; }
.model-source-tag.source-gray[b-k7o8lstlvj] { background: #f5f5f5; color: #595959; }

.model-card-body[b-k7o8lstlvj] { min-width: 0; flex: 1 1 auto; }
.model-name[b-k7o8lstlvj] { margin: 0 0 8px; overflow: hidden; color: var(--console-color-text-1, #262626); font-size: 16px; font-weight: 600; line-height: 24px; text-overflow: ellipsis; white-space: nowrap; }
.model-info-row[b-k7o8lstlvj] { display: flex; align-items: center; gap: 8px; min-height: 22px; color: var(--console-color-text-3, #8c8c8c); font-size: 13px; line-height: 20px; flex-wrap: wrap; }
.model-provider[b-k7o8lstlvj] { color: var(--console-color-text-2, #595959); }
.model-param[b-k7o8lstlvj] { padding: 1px 6px; background: #f5f5f5; border-radius: 4px; color: #595959; font-weight: 500; }
.model-context[b-k7o8lstlvj] { color: var(--console-color-text-4, #bfbfbf); }

.model-card-footer[b-k7o8lstlvj] { display: flex; align-items: center; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--console-color-split, #f0f0f0); }
.model-status-dot[b-k7o8lstlvj] { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; }
.model-status-dot.active[b-k7o8lstlvj] { background: #52c41a; }
.model-status-text[b-k7o8lstlvj] { flex: 1 1 auto; color: #389e0d; font-size: 13px; }

.btn-chat[b-k7o8lstlvj] { min-height: 28px; padding: 3px 12px; border: 1px solid #1677ff; border-radius: 6px; background: #fff; color: #1677ff; cursor: pointer; font-size: 13px; line-height: 20px; transition: background 0.15s ease, color 0.15s ease; }
.btn-chat:hover[b-k7o8lstlvj] { background: #1677ff; color: #fff; }

/* 页面异步状态和空状态沿用数据集列表的容器语言。 */
.marketplace-page .loading-container[b-k7o8lstlvj], .marketplace-page .empty-state[b-k7o8lstlvj] { display: flex; align-items: center; justify-content: center; min-height: 300px; flex-direction: column; padding: 40px; background: var(--console-color-bg-card, #fff); border: 1px solid var(--console-color-border, #e5e7eb); border-radius: var(--console-radius-md, 8px); }
.marketplace-page .loading-spinner[b-k7o8lstlvj] { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #1677ff; border-radius: 50%; animation: marketplace-spin-b-k7o8lstlvj 1s linear infinite; }
@keyframes marketplace-spin-b-k7o8lstlvj { to { transform: rotate(360deg); } }
.marketplace-page .loading-text[b-k7o8lstlvj] { margin: 16px 0 0; color: var(--console-color-text-3, #8c8c8c); font-size: 14px; }
.empty-icon[b-k7o8lstlvj] { margin-bottom: 16px; color: #d1d5db; font-size: 48px; }
.empty-title[b-k7o8lstlvj] { margin: 0 0 8px; color: var(--console-color-text-1, #262626); font-size: 18px; font-weight: 600; }
.empty-desc[b-k7o8lstlvj] { max-width: 420px; margin: 0 0 20px; color: var(--console-color-text-3, #8c8c8c); font-size: 14px; line-height: 22px; text-align: center; }
.compact-empty[b-k7o8lstlvj] { min-height: 220px !important; margin-top: 16px; }

@media (max-width: 768px) {
    .catalog-grid[b-k7o8lstlvj] { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
    .model-card[b-k7o8lstlvj] { padding: 14px; }
}
@media (max-width: 600px) {
    .catalog-grid[b-k7o8lstlvj] { grid-template-columns: 1fr; }
    .model-meta[b-k7o8lstlvj] { justify-content: flex-start; }
}
/* /Components/Pages/ModelMarketplaceAdmin.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-9nx0f5xj6n] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-9nx0f5xj6n] { margin: 0 auto; }

/* 页面头部 */
.page-header[b-9nx0f5xj6n] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-9nx0f5xj6n] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.header-right[b-9nx0f5xj6n] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-9nx0f5xj6n] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.page-subtitle[b-9nx0f5xj6n] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

/* 按钮 */
.btn[b-9nx0f5xj6n] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
    background: white;
}

.btn:disabled[b-9nx0f5xj6n] { opacity: 0.6; cursor: not-allowed; }

.btn-primary[b-9nx0f5xj6n] { background: #2563eb; color: white; }
.btn-primary:hover:not(:disabled)[b-9nx0f5xj6n] { background: #1d4ed8; }

.btn-default[b-9nx0f5xj6n] { background: white; color: #374151; border-color: #d1d5db; }
.btn-default:hover:not(:disabled)[b-9nx0f5xj6n] { background: #f9fafb; }

.btn-sm[b-9nx0f5xj6n] { padding: 6px 12px; font-size: 12px; }

.btn-link[b-9nx0f5xj6n] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    padding: 0;
    font-size: 13px;
}

.btn-link:hover[b-9nx0f5xj6n] { text-decoration: underline; }
.btn-link-danger[b-9nx0f5xj6n] { color: #ef4444; }

/* 筛选栏 */
.filter-bar[b-9nx0f5xj6n] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding: 12px 16px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    flex-wrap: wrap;
}

.filter-left[b-9nx0f5xj6n] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-right[b-9nx0f5xj6n] { display: flex; align-items: center; gap: 8px; }

.search-box[b-9nx0f5xj6n] { position: relative; display: flex; align-items: center; }

.search-icon[b-9nx0f5xj6n] {
    position: absolute;
    left: 10px;
    color: #9ca3af;
    font-size: 13px;
    pointer-events: none;
}

.search-input[b-9nx0f5xj6n] {
    width: 240px;
    padding: 7px 12px 7px 32px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    transition: all 0.15s;
}

.search-input:focus[b-9nx0f5xj6n] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.search-input[b-9nx0f5xj6n]::placeholder { color: #9ca3af; }

.filter-select[b-9nx0f5xj6n] {
    padding: 7px 28px 7px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    background: white;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236b7280'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
    background-size: 16px;
}

.filter-select:focus[b-9nx0f5xj6n] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* 数据表格 */
.data-table-wrapper[b-9nx0f5xj6n] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.data-table[b-9nx0f5xj6n] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.data-table th[b-9nx0f5xj6n] {
    text-align: left;
    padding: 10px 16px;
    font-weight: 600;
    color: #6b7280;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-9nx0f5xj6n] {
    padding: 12px 16px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-9nx0f5xj6n] {
    background: #f9fafb;
}

.data-table tbody tr:last-child td[b-9nx0f5xj6n] {
    border-bottom: none;
}

/* 表格内模型单元格 */
.cell-model[b-9nx0f5xj6n] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cell-model-logo[b-9nx0f5xj6n] {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.cell-model-initial[b-9nx0f5xj6n] {
    font-weight: 700;
    color: #6366f1;
    font-size: 14px;
}

.cell-model-info[b-9nx0f5xj6n] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cell-model-name[b-9nx0f5xj6n] {
    font-weight: 600;
    color: #1e293b;
    font-size: 13px;
}

.cell-model-provider[b-9nx0f5xj6n] {
    font-size: 12px;
    color: #64748b;
}

.cell-text[b-9nx0f5xj6n] {
    font-size: 13px;
    color: #374151;
}

.cell-actions[b-9nx0f5xj6n] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 类型标签 */
.type-tag[b-9nx0f5xj6n] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.type-blue[b-9nx0f5xj6n] { background: #dbeafe; color: #2563eb; }
.type-green[b-9nx0f5xj6n] { background: #dcfce7; color: #16a34a; }
.type-orange[b-9nx0f5xj6n] { background: #fff7ed; color: #ea580c; }
.type-default[b-9nx0f5xj6n] { background: #f3f4f6; color: #6b7280; }

/* 状态标签 */
.status-tag[b-9nx0f5xj6n] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-enabled[b-9nx0f5xj6n] { background: #dcfce7; color: #16a34a; }
.status-disabled[b-9nx0f5xj6n] { background: #fee2e2; color: #ef4444; }

/* 模态框 */
.modal-overlay[b-9nx0f5xj6n] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-container[b-9nx0f5xj6n] {
    width: 100%;
    max-width: 500px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}

.modal-lg[b-9nx0f5xj6n] { max-width: 720px; }

.modal-header[b-9nx0f5xj6n] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-9nx0f5xj6n] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-9nx0f5xj6n] {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background: white;
    color: #6b7280;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 14px;
}

.modal-close:hover[b-9nx0f5xj6n] {
    background: #fee2e2;
    border-color: #ef4444;
    color: #ef4444;
}

.modal-body[b-9nx0f5xj6n] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}

.modal-footer[b-9nx0f5xj6n] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 表单 */
.form-group[b-9nx0f5xj6n] { margin-bottom: 16px; }
.form-group:last-child[b-9nx0f5xj6n] { margin-bottom: 0; }

.form-label[b-9nx0f5xj6n] {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-input[b-9nx0f5xj6n] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
    box-sizing: border-box;
}

.form-input:focus[b-9nx0f5xj6n] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* 开放范围 */
.policy-header[b-9nx0f5xj6n] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.policy-label[b-9nx0f5xj6n] {
    font-weight: 600;
    font-size: 14px;
    color: #111827;
}

.add-policy-form[b-9nx0f5xj6n] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 16px;
    padding: 12px;
    border: 1px dashed #d1d5db;
    border-radius: 6px;
    flex-wrap: wrap;
    background: #f9fafb;
}

.policy-table[b-9nx0f5xj6n] {
    margin-top: 8px;
}

.empty-policies[b-9nx0f5xj6n] {
    text-align: center;
    padding: 32px;
    color: #9ca3af;
    font-size: 14px;
}

/* 加载和空状态 */
.loading-container[b-9nx0f5xj6n], .empty-container[b-9nx0f5xj6n] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-9nx0f5xj6n] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-9nx0f5xj6n 1s linear infinite;
}

@keyframes spin-b-9nx0f5xj6n { to { transform: rotate(360deg); } }

.loading-text[b-9nx0f5xj6n] { margin-top: 16px; color: #6b7280; font-size: 14px; }

.empty-icon[b-9nx0f5xj6n] { font-size: 48px; color: #d1d5db; margin-bottom: 16px; }
.empty-title[b-9nx0f5xj6n] { font-size: 18px; font-weight: 600; color: #111827; margin: 0 0 8px 0; }
.empty-desc[b-9nx0f5xj6n] { font-size: 14px; color: #6b7280; margin: 0; }

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-9nx0f5xj6n] { flex-direction: column; align-items: flex-start; }
    .filter-bar[b-9nx0f5xj6n] { flex-direction: column; align-items: stretch; }
    .filter-left[b-9nx0f5xj6n] { flex-direction: column; }
    .search-input[b-9nx0f5xj6n] { width: 100%; }
    .data-table-wrapper[b-9nx0f5xj6n] { overflow-x: auto; }
}
/* /Components/Pages/ModelScope/ModelScopeBrowser.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-pd1rloibqv] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-pd1rloibqv] {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.page-header[b-pd1rloibqv] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.header-left[b-pd1rloibqv] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

.page-title[b-pd1rloibqv] {
    font-size: 18px;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.page-count[b-pd1rloibqv] {
    font-size: 13px;
    color: #6b7280;
}

.btn[b-pd1rloibqv] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all .15s;
    text-decoration: none;
}

.btn-primary[b-pd1rloibqv] {
    background: #7c3aed;
    color: #fff;
    border-color: #7c3aed;
}

.btn-primary:hover[b-pd1rloibqv] {
    background: #6d28d9;
}

.btn-default[b-pd1rloibqv] {
    background: #fff;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover[b-pd1rloibqv] {
    background: #f8fafc;
}

.btn-icon[b-pd1rloibqv] { line-height: 1; }

.card[b-pd1rloibqv] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.landing-banner[b-pd1rloibqv] {
    padding: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: linear-gradient(135deg, #f8f5ff 0%, #ffffff 60%);
}

.banner-copy h2[b-pd1rloibqv] {
    margin: 0;
    font-size: 20px;
    color: #111827;
}

.banner-copy p[b-pd1rloibqv] {
    margin: 10px 0 0;
    color: #6b7280;
    line-height: 1.7;
}

.banner-actions[b-pd1rloibqv] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.split-grid[b-pd1rloibqv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.split-card[b-pd1rloibqv] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.split-card:hover[b-pd1rloibqv] {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    border-color: #d9cffd;
}

.split-icon[b-pd1rloibqv] {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 800;
    flex-shrink: 0;
}

.split-icon.model[b-pd1rloibqv] {
    background: linear-gradient(135deg, #6d5efc, #8b5cf6);
}

.split-icon.dataset[b-pd1rloibqv] {
    background: linear-gradient(135deg, #059669, #10b981);
}

.split-content[b-pd1rloibqv] {
    flex: 1;
    min-width: 0;
}

.split-content h3[b-pd1rloibqv] {
    margin: 0;
    font-size: 16px;
    color: #111827;
}

.split-content p[b-pd1rloibqv] {
    margin: 6px 0 0;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.6;
}

.split-arrow[b-pd1rloibqv] {
    color: #a855f7;
    font-size: 20px;
    font-weight: 700;
}

@media (max-width: 960px) {
    .landing-banner[b-pd1rloibqv] {
        flex-direction: column;
        align-items: flex-start;
    }

    .split-grid[b-pd1rloibqv] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/ModelScope/ModelScopeDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-hdbat2iy4z] { min-height: 80vh; background: #f9fafb; padding: 24px; height: 100%; }
.main-content[b-hdbat2iy4z] { margin: 0 auto; }
.page-header[b-hdbat2iy4z] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 16px; }
.header-left[b-hdbat2iy4z], .header-right[b-hdbat2iy4z] { display: flex; align-items: center; gap: 12px; }
.header-icon[b-hdbat2iy4z] { width: 32px; height: 32px; border-radius: 8px; background: #2563eb; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.back-btn[b-hdbat2iy4z] { height: 32px; padding: 0 10px; border: 1px solid #cbd5e1; background: #fff; color: #374151; border-radius: 6px; cursor: pointer; }
.page-title[b-hdbat2iy4z] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; }
.repo-id[b-hdbat2iy4z] { margin-top: 3px; color: #6b7280; font-size: 13px; }
.card[b-hdbat2iy4z] { background: white; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); margin-bottom: 16px; overflow: hidden; }
.card-header[b-hdbat2iy4z] { padding: 16px 20px; border-bottom: 1px solid #e5e7eb; }
.card-title[b-hdbat2iy4z] { font-size: 15px; font-weight: 600; color: #111827; margin: 0; }
.info-grid[b-hdbat2iy4z] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; padding: 16px 20px; }
.info-item[b-hdbat2iy4z] { background: #f8fafc; border-radius: 8px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.info-label[b-hdbat2iy4z] { color: #6b7280; font-size: 12px; }
.info-item strong[b-hdbat2iy4z] { color: #111827; font-size: 14px; }
.metric-tag[b-hdbat2iy4z] { display: inline-flex; align-items: center; width: fit-content; padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.metric-download[b-hdbat2iy4z] { background: #eff6ff; color: #1d4ed8; }
.metric-like[b-hdbat2iy4z] { background: #fff1f2; color: #be123c; }
.metric-size[b-hdbat2iy4z] { background: #ecfdf5; color: #047857; }
.metric-license[b-hdbat2iy4z] { background: #f5f3ff; color: #6d28d9; }
.desc-block[b-hdbat2iy4z] { padding: 0 20px 16px; }
.desc-label[b-hdbat2iy4z] { color: #6b7280; font-size: 12px; margin-bottom: 6px; }
.desc[b-hdbat2iy4z] { color: #4b5563; line-height: 1.6; margin: 0; }
.tag-row[b-hdbat2iy4z] { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 16px; }
.tag[b-hdbat2iy4z] { background: #eef2ff; color: #3730a3; padding: 4px 9px; border-radius: 999px; font-size: 12px; }
.tab-header[b-hdbat2iy4z] { display: flex; gap: 8px; padding: 12px 20px 0; border-bottom: 1px solid #e5e7eb; }
.tab-item[b-hdbat2iy4z] { border: 0; background: transparent; padding: 10px 12px; cursor: pointer; color: #6b7280; border-bottom: 2px solid transparent; }
.tab-item.active[b-hdbat2iy4z] { color: #2563eb; border-bottom-color: #2563eb; font-weight: 600; }
.tab-content[b-hdbat2iy4z] { padding: 16px 20px; }
.readme[b-hdbat2iy4z] { line-height: 1.6; background: #f8fafc; border-radius: 8px; padding: 16px; overflow: auto; margin: 0; }
.markdown-body h1[b-hdbat2iy4z], .markdown-body h2[b-hdbat2iy4z], .markdown-body h3[b-hdbat2iy4z] { margin: 18px 0 10px; color: #111827; }
.markdown-body h1[b-hdbat2iy4z] { font-size: 24px; }
.markdown-body h2[b-hdbat2iy4z] { font-size: 20px; }
.markdown-body h3[b-hdbat2iy4z] { font-size: 17px; }
.markdown-body p[b-hdbat2iy4z] { margin: 8px 0; }
.markdown-body ul[b-hdbat2iy4z], .markdown-body ol[b-hdbat2iy4z] { padding-left: 24px; }
.markdown-body table[b-hdbat2iy4z] { border-collapse: collapse; width: 100%; margin: 12px 0; }
.markdown-body th[b-hdbat2iy4z], .markdown-body td[b-hdbat2iy4z] { border: 1px solid #e5e7eb; padding: 8px; }
.markdown-body th[b-hdbat2iy4z] { background: #f1f5f9; }
.markdown-body img[b-hdbat2iy4z] { max-width: 100%; }
.markdown-body blockquote[b-hdbat2iy4z] { margin: 12px 0; padding: 8px 12px; border-left: 4px solid #cbd5e1; background: #f8fafc; color: #4b5563; }
.markdown-body pre[b-hdbat2iy4z] { background: #111827; color: #f9fafb; padding: 12px; border-radius: 8px; overflow: auto; }
.markdown-body code[b-hdbat2iy4z] { background: #e5e7eb; padding: 1px 4px; border-radius: 4px; }
.markdown-body pre code[b-hdbat2iy4z] { background: transparent; padding: 0; }
.markdown-body a[b-hdbat2iy4z] { color: #2563eb; }
.table-wrap[b-hdbat2iy4z] { overflow: auto; }
.data-table[b-hdbat2iy4z] { width: 100%; border-collapse: collapse; }
.data-table th[b-hdbat2iy4z], .data-table td[b-hdbat2iy4z] { border-bottom: 1px solid #e5e7eb; padding: 10px 12px; text-align: left; font-size: 13px; }
.data-table th[b-hdbat2iy4z] { color: #64748b; font-size: 11px; text-transform: uppercase; background: #f8fafc; }
.path[b-hdbat2iy4z], .sha[b-hdbat2iy4z] { font-family: Consolas, monospace; font-size: 12px; color: #4b5563; max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-type[b-hdbat2iy4z] { color: #6b7280; margin-right: 6px; }
.file-summary[b-hdbat2iy4z], .hint[b-hdbat2iy4z] { color: #6b7280; margin-bottom: 12px; font-size: 13px; }
.gguf-hint[b-hdbat2iy4z] { margin-bottom: 12px; padding: 10px 12px; border: 1px solid #bfdbfe; background: #eff6ff; color: #1d4ed8; border-radius: 8px; font-size: 13px; }
.selection-toolbar[b-hdbat2iy4z] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; padding: 10px 12px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 8px; }
.selection-summary[b-hdbat2iy4z] { color: #374151; font-size: 13px; font-weight: 600; margin-right: auto; }
.select-col[b-hdbat2iy4z] { width: 42px; text-align: center !important; }
.select-col input[b-hdbat2iy4z] { cursor: pointer; }
.btn:disabled[b-hdbat2iy4z] { opacity: .55; cursor: not-allowed; }
.breadcrumb-container[b-hdbat2iy4z] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; padding: 8px 12px; background: #f3f4f6; border-radius: 6px; }
.breadcrumb-separator[b-hdbat2iy4z] { color: #9ca3af; }
.breadcrumb-current[b-hdbat2iy4z] { padding: 4px 8px; color: #111827; font-weight: 600; }
.btn-sm[b-hdbat2iy4z] { padding: 4px 10px; font-size: 12px; }
.file-name-btn[b-hdbat2iy4z] { display: inline-flex; align-items: center; gap: 8px; }
.entry-icon[b-hdbat2iy4z] { display: inline-flex; align-items: center; justify-content: center; width: 18px; font-size: 16px; line-height: 1; }
.folder-icon[b-hdbat2iy4z] { color: #f59e0b; }
.file-icon[b-hdbat2iy4z] { color: #6b7280; }
.folder-row[b-hdbat2iy4z] { cursor: pointer; }
.folder-row:hover[b-hdbat2iy4z] { background: #eff6ff; }
.file-row:hover[b-hdbat2iy4z] { background: #f9fafb; }
.btn[b-hdbat2iy4z] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid transparent; }
.btn-primary[b-hdbat2iy4z] { background: #2563eb; border-color: #2563eb; color: #fff; }
.btn-default[b-hdbat2iy4z] { background: #fff; color: #374151; border-color: #cbd5e1; }
.loading-container[b-hdbat2iy4z], .empty-state[b-hdbat2iy4z] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 50px; text-align: center; color: #6b7280; }
.loading-spinner[b-hdbat2iy4z] { width: 34px; height: 34px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; margin: 0 auto 12px; animation: spin-b-hdbat2iy4z 1s linear infinite; }
.loading-text[b-hdbat2iy4z] { color: #6b7280; }
.loading-inline[b-hdbat2iy4z] { color: #6b7280; padding: 24px; }
@keyframes spin-b-hdbat2iy4z { to { transform: rotate(360deg); } }
/* /Components/Pages/ModelScope/ModelScopeImportModal.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。弹窗和表单控件统一使用 Ant Design Blazor。 */
.import-form[b-78jienadqs] { min-width: 0; }
.form-row[b-78jienadqs] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-group[b-78jienadqs] { margin-bottom: 14px; }
.form-group label[b-78jienadqs] { display: block; margin-bottom: 6px; font-weight: 600; color: #374151; }
.field-error[b-78jienadqs] { color: #dc2626; font-size: 12px; margin-top: 4px; }
.selected-summary[b-78jienadqs] { padding: 12px; border-radius: 8px; margin-bottom: 14px; border: 1px solid #e5e7eb; background: #f8fafc; }
.selected-summary.selected[b-78jienadqs] { border-color: #bfdbfe; background: #eff6ff; }
.selected-title[b-78jienadqs] { color: #111827; font-weight: 600; font-size: 14px; }
.selected-desc[b-78jienadqs] { color: #6b7280; font-size: 13px; margin-top: 4px; }
.selected-file-list[b-78jienadqs] { margin: 8px 0 0; padding-left: 18px; color: #374151; font-size: 12px; max-height: 140px; overflow: auto; }
.selected-file-list li[b-78jienadqs] { margin-bottom: 3px; word-break: break-all; }
.hint[b-78jienadqs] { color: #6b7280; font-size: 13px; margin-bottom: 16px; }
.modal-actions[b-78jienadqs] { display: flex; justify-content: flex-end; padding-top: 16px; border-top: 1px solid #e5e7eb; }

@media (max-width: 640px) {
    .form-row[b-78jienadqs] { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
/* /Components/Pages/ModelScope/ModelScopeResourceGallery.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-toolbar-header[b-j5opm1m0k4] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
    .page-toolbar-header .page-intro[b-j5opm1m0k4] { flex: 1 1 auto; margin-bottom: 0; }
    .page-header-actions[b-j5opm1m0k4] { display: flex; align-items: center; gap: 8px; padding-top: 28px; flex: 0 0 auto; }
    @media (max-width: 768px) { .page-toolbar-header[b-j5opm1m0k4] { flex-direction: column; align-items: stretch; } .page-header-actions[b-j5opm1m0k4] { padding-top: 0; } }
.page-container[b-j5opm1m0k4] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-j5opm1m0k4] {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.page-header[b-j5opm1m0k4] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.header-left[b-j5opm1m0k4] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-j5opm1m0k4] {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #111827;
}

.page-subtitle[b-j5opm1m0k4] {
    margin: 6px 0 0;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.6;
}

.header-right[b-j5opm1m0k4] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.btn[b-j5opm1m0k4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all .15s;
    text-decoration: none;
}

.btn:disabled[b-j5opm1m0k4] {
    opacity: .6;
    cursor: not-allowed;
}

.btn-sm[b-j5opm1m0k4] {
    padding: 6px 12px;
    font-size: 13px;
}

.btn-primary[b-j5opm1m0k4] {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.btn-primary:hover:not(:disabled)[b-j5opm1m0k4] {
    background: #1d4ed8;
}

.btn-default[b-j5opm1m0k4] {
    background: #fff;
    border-color: #d1d5db;
    color: #374151;
}

.btn-default:hover:not(:disabled)[b-j5opm1m0k4] {
    background: #f8fafc;
}

.btn-icon[b-j5opm1m0k4] {
    line-height: 1;
}

.page-content[b-j5opm1m0k4] {
    display: flex;
    flex-direction: column;
}

.resource-layout[b-j5opm1m0k4] {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 16px;
}

.resource-sidebar[b-j5opm1m0k4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sidebar-card[b-j5opm1m0k4],
.catalog-toolbar[b-j5opm1m0k4],
.catalog-sub-toolbar[b-j5opm1m0k4],
.loading-state[b-j5opm1m0k4],
.empty-state[b-j5opm1m0k4],
.resource-card[b-j5opm1m0k4] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.hero-card[b-j5opm1m0k4] {
    padding: 18px;
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
}

.hero-eyebrow[b-j5opm1m0k4] {
    font-size: 12px;
    font-weight: 600;
    color: #2563eb;
    margin-bottom: 12px;
}

.hero-card h2[b-j5opm1m0k4] {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
    color: #111827;
}

.hero-card p[b-j5opm1m0k4] {
    margin: 10px 0 0;
    line-height: 1.65;
    color: #4b5563;
}

.hero-actions[b-j5opm1m0k4] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.hero-pill[b-j5opm1m0k4] {
    padding: 6px 10px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
    font-size: 12px;
    font-weight: 600;
}

.sidebar-card[b-j5opm1m0k4] {
    padding: 16px;
}

.card-title[b-j5opm1m0k4] {
    font-size: 14px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 12px;
}

.source-grid[b-j5opm1m0k4] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.source-grid.single-source[b-j5opm1m0k4] {
    justify-content: flex-start;
}

.source-chip[b-j5opm1m0k4] {
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    background: #f3f4f6;
    color: #4b5563;
    border: 1px solid #e5e7eb;
}

.source-chip.active[b-j5opm1m0k4] {
    background: #dbeafe;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.sidebar-card-head[b-j5opm1m0k4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.clear-link[b-j5opm1m0k4] {
    border: 0;
    background: transparent;
    color: #2563eb;
    font-size: 12px;
    cursor: pointer;
    padding: 0;
}

.filter-group + .filter-group[b-j5opm1m0k4] {
    margin-top: 14px;
}

.filter-label[b-j5opm1m0k4] {
    margin-bottom: 8px;
    color: #374151;
    font-size: 13px;
    font-weight: 600;
}

.filter-chip-row[b-j5opm1m0k4] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-chip[b-j5opm1m0k4] {
    padding: 6px 10px;
    border: 1px solid #dbeafe;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 12px;
    cursor: pointer;
    transition: all .15s ease;
}

.filter-chip:hover[b-j5opm1m0k4] {
    background: #dbeafe;
    border-color: #93c5fd;
}

.filter-chip.active[b-j5opm1m0k4] {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.filter-input[b-j5opm1m0k4] {
    width: 100%;
    box-sizing: border-box;
    height: 36px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 12px;
    font-size: 13px;
    outline: none;
}

.filter-input:focus[b-j5opm1m0k4] {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}

.filter-apply-btn[b-j5opm1m0k4] {
    width: 100%;
    margin-top: 14px;
}

.tip-list[b-j5opm1m0k4] {
    margin: 0;
    padding-left: 18px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.75;
}

.resource-panel[b-j5opm1m0k4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.catalog-toolbar[b-j5opm1m0k4] {
    padding: 14px 16px;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) 180px auto;
    gap: 12px;
    align-items: center;
}

.search-box[b-j5opm1m0k4] {
    position: relative;
    width: 100%;
}

.search-icon[b-j5opm1m0k4] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    pointer-events: none;
}

.search-input[b-j5opm1m0k4] {
    width: 100%;
    height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 12px 0 34px;
    font-size: 14px;
    box-sizing: border-box;
    outline: none;
}

.search-input:focus[b-j5opm1m0k4] {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}

.filter-select[b-j5opm1m0k4] {
    width: 180px;
    height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 10px;
    background: #fff;
    font-size: 14px;
}

.catalog-sub-toolbar[b-j5opm1m0k4] {
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    color: #6b7280;
    font-size: 13px;
}

.catalog-stats strong[b-j5opm1m0k4] {
    color: #111827;
}

.loading-state[b-j5opm1m0k4],
.empty-state[b-j5opm1m0k4] {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 36px;
    text-align: center;
}

.loading-spinner[b-j5opm1m0k4] {
    width: 34px;
    height: 34px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-j5opm1m0k4 1s linear infinite;
}

@keyframes spin-b-j5opm1m0k4 { to { transform: rotate(360deg); } }

.empty-state[b-j5opm1m0k4] {
    color: #6b7280;
}

.empty-state .empty-title[b-j5opm1m0k4] {
    margin: 14px 0 8px;
    font-size: 18px;
    color: #111827;
}

.empty-state .empty-desc[b-j5opm1m0k4] {
    margin: 0;
    max-width: 440px;
    line-height: 1.7;
}

.empty-state .empty-icon-wrap[b-j5opm1m0k4] {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #eff6ff;
    color: #2563eb;
}

.empty-state-icon[b-j5opm1m0k4] {
    font-size: 24px;
}

.catalog-grid[b-j5opm1m0k4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(360px, 1fr));
    gap: 12px;
}

.resource-card[b-j5opm1m0k4] {
    position: relative;
    min-height: 208px;
    padding: 20px 20px 14px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.resource-card:hover[b-j5opm1m0k4] {
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.08);
    border-color: #93c5fd;
}

.resource-ribbon[b-j5opm1m0k4] {
    position: absolute;
    top: 0;
    right: 0;
    height: 28px;
    min-width: 58px;
    padding: 0 12px;
    border-radius: 0 14px 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-left: 1px solid #bfdbfe;
    border-bottom: 1px solid #bfdbfe;
    color: #1d4ed8;
    background: #eff6ff;
    font-size: 12px;
    font-weight: 600;
}

.resource-ribbon.public[b-j5opm1m0k4] {
    background: #eff6ff;
    color: #2563eb;
}

.resource-ribbon.locked[b-j5opm1m0k4] {
    background: #dbeafe;
    color: #1d4ed8;
}

.resource-card-body[b-j5opm1m0k4] {
    padding-right: 64px;
}

.resource-title[b-j5opm1m0k4] {
    margin: 0;
    font-size: 16px;
    line-height: 24px;
    font-weight: 700;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.resource-id[b-j5opm1m0k4] {
    margin-top: 3px;
    color: #9ca3af;
    font-size: 12px;
    line-height: 18px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tag-row[b-j5opm1m0k4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.tag[b-j5opm1m0k4] {
    padding: 3px 9px;
    border-radius: 2px;
    font-size: 12px;
    line-height: 18px;
    color: #2563eb;
    background: #eff6ff;
    border: 0;
}

.tag-primary[b-j5opm1m0k4] {
    color: #0f766e;
    background: #ccfbf1;
}

.resource-desc[b-j5opm1m0k4] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 44px;
    margin: 14px 0 0;
    color: #4b5563;
    line-height: 22px;
    font-size: 13px;
}

.resource-footer[b-j5opm1m0k4] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding-top: 12px;
    border-top: 1px solid #f3f4f6;
    color: #9ca3af;
    font-size: 12px;
    line-height: 20px;
}

.resource-source[b-j5opm1m0k4] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #4b5563;
    font-weight: 600;
    white-space: nowrap;
}

.source-mark[b-j5opm1m0k4] {
    color: #2563eb;
    font-size: 15px;
    line-height: 1;
}

.footer-divider[b-j5opm1m0k4] {
    width: 1px;
    height: 12px;
    background: #e5e7eb;
}

.resource-time[b-j5opm1m0k4],
.resource-stat[b-j5opm1m0k4] {
    color: #9ca3af;
    white-space: nowrap;
}

.resource-action[b-j5opm1m0k4] {
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #6b7280;
    font-size: 12px;
    cursor: pointer;
}

.resource-action:hover[b-j5opm1m0k4] {
    color: #2563eb;
}

.pager[b-j5opm1m0k4] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    padding: 8px 0 4px;
    color: #4b5563;
}

@media (max-width: 1200px) {
    .resource-layout[b-j5opm1m0k4] {
        grid-template-columns: 1fr;
    }

    .resource-sidebar[b-j5opm1m0k4] {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        display: grid;
    }
}

@media (max-width: 1024px) {
    .catalog-grid[b-j5opm1m0k4] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .catalog-toolbar[b-j5opm1m0k4] {
        grid-template-columns: 1fr;
    }

    .resource-card-body[b-j5opm1m0k4] {
        padding-right: 0;
    }

    .resource-footer[b-j5opm1m0k4] {
        flex-wrap: wrap;
    }

    .resource-action[b-j5opm1m0k4] {
        width: 100%;
        margin-left: 0;
        text-align: left;
    }
}

/* 弹窗模式只保留操作界面，使用平台弹窗的紧凑、中性布局。 */
.page-container.modal-mode[b-j5opm1m0k4] {
    width: 100%;
    height: min(720px, 72vh);
    min-height: 480px;
    padding: 0;
    overflow: hidden;
    background: #fff;
}

.modal-mode .main-content[b-j5opm1m0k4],
.modal-mode .page-content[b-j5opm1m0k4],
.modal-mode .resource-layout[b-j5opm1m0k4] {
    height: 100%;
    min-height: 0;
}

.modal-mode .main-content[b-j5opm1m0k4] {
    gap: 0;
}

.modal-mode .resource-layout[b-j5opm1m0k4] {
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 0;
}

.modal-mode .resource-sidebar[b-j5opm1m0k4] {
    display: block;
    min-height: 0;
    padding: 18px 16px;
    overflow-y: auto;
    border-right: 1px solid #e5e7eb;
    background: #f7f8fa;
}

.modal-mode .sidebar-card[b-j5opm1m0k4] {
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.modal-mode .filter-group + .filter-group[b-j5opm1m0k4] {
    margin-top: 12px;
}

.modal-mode .filter-chip-row[b-j5opm1m0k4] {
    gap: 6px;
}

.modal-mode .filter-chip[b-j5opm1m0k4] {
    padding: 4px 8px;
    border-radius: 4px;
    background: #fff;
    color: #4b5563;
    border-color: #d9d9d9;
}

.modal-mode .filter-chip:hover[b-j5opm1m0k4] {
    color: #1677ff;
    border-color: #91caff;
    background: #fff;
}

.modal-mode .filter-chip.active[b-j5opm1m0k4] {
    color: #0958d9;
    border-color: #91caff;
    background: #e6f4ff;
}

.modal-mode .resource-panel[b-j5opm1m0k4] {
    min-width: 0;
    min-height: 0;
    padding: 14px 18px 18px;
    overflow-y: auto;
    gap: 12px;
    background: #fff;
}

.modal-resource-toolbar[b-j5opm1m0k4] {
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.modal-resource-source[b-j5opm1m0k4] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #595959;
    font-size: 13px;
}

.modal-resource-separator[b-j5opm1m0k4] {
    color: #bfbfbf;
}

.modal-mode .catalog-sub-toolbar[b-j5opm1m0k4],
.modal-mode .loading-state[b-j5opm1m0k4],
.modal-mode .empty-state[b-j5opm1m0k4],
.modal-mode .resource-card[b-j5opm1m0k4] {
    border-radius: 6px;
    box-shadow: none;
}

.modal-mode .catalog-sub-toolbar[b-j5opm1m0k4] {
    padding: 10px 12px;
    background: #fafafa;
}

.modal-mode .catalog-grid[b-j5opm1m0k4] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.modal-mode .resource-card[b-j5opm1m0k4] {
    min-height: 184px;
    padding: 16px 16px 12px;
}

.modal-mode .resource-ribbon[b-j5opm1m0k4] {
    border-radius: 0 6px 0 6px;
}

.modal-mode .loading-state[b-j5opm1m0k4],
.modal-mode .empty-state[b-j5opm1m0k4] {
    min-height: 280px;
}

@media (max-width: 900px) {
    .page-container.modal-mode[b-j5opm1m0k4] {
        height: 74vh;
        min-height: 0;
    }

    .modal-mode .resource-layout[b-j5opm1m0k4] {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(120px, 32%) minmax(0, 1fr);
    }

    .modal-mode .resource-sidebar[b-j5opm1m0k4] {
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .modal-mode .resource-panel[b-j5opm1m0k4] {
        padding: 12px;
    }
}

@media (max-width: 680px) {
    .modal-mode .catalog-grid[b-j5opm1m0k4] {
        grid-template-columns: 1fr;
    }

    .modal-resource-toolbar[b-j5opm1m0k4],
    .modal-mode .catalog-sub-toolbar[b-j5opm1m0k4] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/Pages/MonitoringAlerts.razor.rz.scp.css */
.alert-detail-toolbar[b-38ugq3j5e0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.alert-detail-actions[b-38ugq3j5e0] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.alert-detail-state[b-38ugq3j5e0] {
    padding: 48px 16px;
    color: #6b7280;
    text-align: center;
}

.alert-timeline-section[b-38ugq3j5e0] {
    margin-top: 24px;
}

.alert-timeline-section h3[b-38ugq3j5e0] {
    margin: 0 0 16px;
    font-size: 15px;
    font-weight: 600;
}

.alert-event-heading[b-38ugq3j5e0] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.alert-event-heading span[b-38ugq3j5e0],
.alert-event-operator[b-38ugq3j5e0] {
    color: #6b7280;
    font-size: 12px;
}

.alert-action-form[b-38ugq3j5e0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
}

.required-mark[b-38ugq3j5e0] {
    color: #dc2626;
}

@media (max-width: 720px) {
    .alert-detail-toolbar[b-38ugq3j5e0] {
        align-items: stretch;
        flex-direction: column;
    }

    .alert-detail-actions[b-38ugq3j5e0] {
        justify-content: flex-start;
    }

    .alert-event-heading[b-38ugq3j5e0] {
        flex-direction: column;
        gap: 2px;
    }
}
/* /Components/Pages/MyNotifications.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面间距、列表面板与分页来自 Console.UI 公共版式。 */
.my-notif-page[b-rsniz0oz2l] { min-height:0; }

    .notification-category-field[b-rsniz0oz2l] { min-width:176px !important; }
    .notification-category-field[b-rsniz0oz2l]  .ant-select { width:176px !important; }
    .read-state-field[b-rsniz0oz2l] { min-width:224px !important; }
    .read-state-field[b-rsniz0oz2l]  .ant-radio-group { display:flex; align-items:center; min-height:32px; gap:18px; white-space:nowrap; }
    .read-state-field[b-rsniz0oz2l]  .ant-radio-wrapper { margin-right:0; }

    .my-notif-list-summary[b-rsniz0oz2l] { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:32px; margin-bottom:8px; }
    .my-notif-list-summary__main[b-rsniz0oz2l] { display:flex; align-items:baseline; gap:8px; min-width:0; }
    .my-notif-list-summary__title[b-rsniz0oz2l] { color:#262626; font-size:15px; font-weight:600; }
    .my-notif-list-summary__total[b-rsniz0oz2l] { color:#8c8c8c; font-size:13px; }
    .my-notif-list-summary[b-rsniz0oz2l]  .ant-tag { margin-right:0; }

    .my-notif-surface[b-rsniz0oz2l] { flex:1 1 auto; }

    .my-notif-list[b-rsniz0oz2l] { display:flex; flex-direction:column; }

    .my-notif-item[b-rsniz0oz2l] { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border-bottom:1px solid #f0f0f0; cursor:pointer; transition:background 0.15s; position:relative; }
    .my-notif-item:last-child[b-rsniz0oz2l] { border-bottom:0; }
    .my-notif-item:hover[b-rsniz0oz2l] { background:#f9fafb; }
    .my-notif-item.unread[b-rsniz0oz2l] { background:#fafbff; }
    .my-notif-item.unread:hover[b-rsniz0oz2l] { background:#f0f4ff; }

    .my-notif-dot[b-rsniz0oz2l] { width:8px; flex-shrink:0; padding-top:6px; }
    .my-notif-dot-unread[b-rsniz0oz2l] { display:block; width:8px; height:8px; border-radius:50%; background:#2563eb; }

    .my-notif-icon[b-rsniz0oz2l] { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
    .my-notif-icon.task[b-rsniz0oz2l] { background:#dbeafe; color:#2563eb; }
    .my-notif-icon.training[b-rsniz0oz2l] { background:#dcfce7; color:#16a34a; }
    .my-notif-icon.expiry[b-rsniz0oz2l] { background:#fefce8; color:#ca8a04; }
    .my-notif-icon.deploy[b-rsniz0oz2l] { background:#f3e8ff; color:#9333ea; }
    .my-notif-icon.model[b-rsniz0oz2l] { background:#eef2ff; color:#4f46e5; }
    .my-notif-icon.debug[b-rsniz0oz2l] { background:#fff7ed; color:#ea580c; }
    .my-notif-icon.budget[b-rsniz0oz2l] { background:#fff7ed; color:#ea580c; }
    .my-notif-icon.monitoring[b-rsniz0oz2l] { background:#fef2f2; color:#dc2626; }
    .my-notif-icon.urgent[b-rsniz0oz2l] { background:#fef2f2; color:#dc2626; }
    .my-notif-icon.announcement[b-rsniz0oz2l] { background:#ecfeff; color:#0891b2; }
    .my-notif-icon.default[b-rsniz0oz2l] { background:#f3f4f6; color:#6b7280; }

    .my-notif-body[b-rsniz0oz2l] { flex:1; min-width:0; }
    .my-notif-title-row[b-rsniz0oz2l] { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
    .my-notif-title[b-rsniz0oz2l] { font-size:14px; font-weight:500; color:#111827; }
    .unread .my-notif-title[b-rsniz0oz2l] { font-weight:600; }
    .my-notif-content[b-rsniz0oz2l] { margin:4px 0 0; font-size:13px; color:#6b7280; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:600px; }
    .my-notif-time[b-rsniz0oz2l] { font-size:12px; color:#9ca3af; }

    .my-notif-item-actions[b-rsniz0oz2l] { display:flex; gap:8px; flex-shrink:0; align-items:center; padding-top:2px; }
    @media (max-width: 640px) {
        .notification-category-field[b-rsniz0oz2l],
        .read-state-field[b-rsniz0oz2l] { min-width:100% !important; }
        .notification-category-field[b-rsniz0oz2l]  .ant-select { width:100% !important; }
        .my-notif-list-summary[b-rsniz0oz2l] { align-items:flex-start; }
        .my-notif-item[b-rsniz0oz2l] { display:grid; grid-template-columns:6px 32px minmax(0, 1fr); gap:8px; padding:12px 8px; }
        .my-notif-icon[b-rsniz0oz2l] { width:32px; height:32px; }
        .my-notif-body[b-rsniz0oz2l] { grid-column:3; }
        .my-notif-item-actions[b-rsniz0oz2l] { grid-column:3; justify-content:flex-start; padding-top:0; }
        .my-notif-content[b-rsniz0oz2l] { white-space:normal; }
    }
/* /Components/Pages/Organizations.razor.rz.scp.css */

    .page-container[b-uhkgy8c7jt] {
        padding: 20px;
        height: 100%;
        display: flex;
        flex-direction: column;
    }
    .main-content[b-uhkgy8c7jt] {
        flex: 1;
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    .page-header[b-uhkgy8c7jt] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 16px;
    }
    .header-left[b-uhkgy8c7jt] {
        display: flex;
        align-items: center;
        gap: 10px;
    }
    .page-icon[b-uhkgy8c7jt] { font-size: 22px; color: #2563eb; }
    .page-title[b-uhkgy8c7jt] { font-size: 20px; font-weight: 600; color: #111827; margin: 0; }
    .header-right[b-uhkgy8c7jt] { display: flex; gap: 8px; }
    .btn[b-uhkgy8c7jt] { padding: 6px 14px; border-radius: 6px; border: 1px solid #d1d5db; cursor: pointer; font-size: 13px; display: inline-flex; align-items: center; gap: 4px; transition: all .2s; }
    .btn-primary[b-uhkgy8c7jt] { background: #2563eb; color: #fff; border-color: #2563eb; }
    .btn-primary:hover[b-uhkgy8c7jt] { background: #1d4ed8; }
    .btn-sm[b-uhkgy8c7jt] { padding: 4px 10px; font-size: 12px; }
    .btn-default[b-uhkgy8c7jt] { background: #fff; color: #374151; }
    .btn-default:hover[b-uhkgy8c7jt] { background: #f3f4f6; }
    .btn-danger[b-uhkgy8c7jt] { background: #fff; color: #dc2626; border-color: #fca5a5; }
    .btn-danger:hover[b-uhkgy8c7jt] { background: #fef2f2; }

    .stats-row[b-uhkgy8c7jt] { display: flex; gap: 16px; margin-bottom: 16px; }
    .stat-card[b-uhkgy8c7jt] { flex: 1; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
    .stat-icon[b-uhkgy8c7jt] { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; }
    .stat-icon-blue[b-uhkgy8c7jt] { background: #eff6ff; color: #2563eb; }
    .stat-icon-green[b-uhkgy8c7jt] { background: #f0fdf4; color: #16a34a; }
    .stat-icon-orange[b-uhkgy8c7jt] { background: #fff7ed; color: #ea580c; }
    .stat-info[b-uhkgy8c7jt] { display: flex; flex-direction: column; }
    .stat-number[b-uhkgy8c7jt] { font-size: 20px; font-weight: 700; color: #111827; }
    .stat-label[b-uhkgy8c7jt] { font-size: 12px; color: #6b7280; }

    .body-layout[b-uhkgy8c7jt] { display: flex; gap: 16px; flex: 1; min-height: 0; }
    .tree-panel[b-uhkgy8c7jt] { width: 280px; min-width: 280px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; }
    .tree-panel-header[b-uhkgy8c7jt] { padding: 12px 14px; border-bottom: 1px solid #e5e7eb; display: flex; justify-content: space-between; align-items: center; }
    .tree-panel-title[b-uhkgy8c7jt] { font-size: 14px; font-weight: 600; color: #374151; margin: 0; display: flex; align-items: center; gap: 6px; }
    .tree-search-box[b-uhkgy8c7jt] { padding: 8px 12px; border-bottom: 1px solid #f3f4f6; }
    .search-input-wrapper[b-uhkgy8c7jt] { position: relative; }
    .search-icon[b-uhkgy8c7jt] { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: #9ca3af; font-size: 12px; }
    .search-input[b-uhkgy8c7jt] { width: 100%; padding: 6px 10px 6px 30px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 13px; outline: none; }
    .search-input:focus[b-uhkgy8c7jt] { border-color: #2563eb; }
    .tree-container[b-uhkgy8c7jt] { flex: 1; overflow-y: auto; padding: 8px; }
    .tree-empty[b-uhkgy8c7jt] { text-align: center; padding: 40px 20px; color: #9ca3af; }
    .tree-empty i[b-uhkgy8c7jt] { font-size: 32px; margin-bottom: 8px; display: block; }
    .tree-empty p[b-uhkgy8c7jt] { font-size: 13px; margin: 0; }

    .org-list[b-uhkgy8c7jt] { display: flex; flex-direction: column; gap: 4px; }
    .org-item[b-uhkgy8c7jt] { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 6px; cursor: pointer; transition: all .15s; border: 1px solid transparent; }
    .org-item:hover[b-uhkgy8c7jt] { background: #f9fafb; }
    .org-item.active[b-uhkgy8c7jt] { background: #eff6ff; border-color: #bfdbfe; }
    .org-item-icon[b-uhkgy8c7jt] { width: 36px; height: 36px; border-radius: 8px; background: #eff6ff; color: #2563eb; display: flex; align-items: center; justify-content: center; font-size: 16px; }
    .org-item-info[b-uhkgy8c7jt] { display: flex; flex-direction: column; }
    .org-item-name[b-uhkgy8c7jt] { font-size: 14px; font-weight: 500; color: #111827; }
    .org-item-meta[b-uhkgy8c7jt] { font-size: 12px; color: #6b7280; }

    .detail-panel[b-uhkgy8c7jt] { flex: 1; min-width: 0; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; overflow-y: auto; }
    .empty-detail[b-uhkgy8c7jt] { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 300px; color: #9ca3af; }
    .empty-icon[b-uhkgy8c7jt] { font-size: 48px; margin-bottom: 12px; }
    .empty-detail p[b-uhkgy8c7jt] { font-size: 14px; margin: 0; }

    .department-detail[b-uhkgy8c7jt] { padding: 20px; }
    .detail-header[b-uhkgy8c7jt] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
    .detail-title[b-uhkgy8c7jt] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; display: flex; align-items: center; gap: 8px; }
    .detail-actions[b-uhkgy8c7jt] { display: flex; gap: 6px; }

    .detail-info[b-uhkgy8c7jt] { background: #f9fafb; border-radius: 8px; padding: 14px 16px; margin-bottom: 20px; }
    .info-row[b-uhkgy8c7jt] { display: flex; align-items: center; padding: 6px 0; }
    .info-row + .info-row[b-uhkgy8c7jt] { border-top: 1px solid #e5e7eb; }
    .info-label[b-uhkgy8c7jt] { font-size: 13px; color: #6b7280; min-width: 100px; display: flex; align-items: center; gap: 6px; }
    .info-value[b-uhkgy8c7jt] { font-size: 13px; color: #111827; }
    .info-value.highlight[b-uhkgy8c7jt] { font-weight: 600; color: #2563eb; }

    .members-section[b-uhkgy8c7jt] { margin-top: 16px; }
    .section-title[b-uhkgy8c7jt] { font-size: 14px; font-weight: 600; color: #374151; margin: 0 0 12px; display: flex; align-items: center; gap: 6px; }
    .members-grid[b-uhkgy8c7jt] { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
    .member-card[b-uhkgy8c7jt] { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #e5e7eb; border-radius: 6px; }
    .member-avatar[b-uhkgy8c7jt] { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; color: #fff; }
    .member-avatar.avatar-admin[b-uhkgy8c7jt] { background: #2563eb; }
    .member-avatar.avatar-user[b-uhkgy8c7jt] { background: #6b7280; }
    .member-info[b-uhkgy8c7jt] { display: flex; flex-direction: column; }
    .member-name[b-uhkgy8c7jt] { font-size: 13px; font-weight: 500; color: #111827; }
    .member-job[b-uhkgy8c7jt] { font-size: 11px; color: #9ca3af; }

    .subdepts-section[b-uhkgy8c7jt] { margin-top: 16px; }
    .subdepts-list[b-uhkgy8c7jt] { display: flex; flex-direction: column; gap: 4px; }
    .subdept-item[b-uhkgy8c7jt] { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #e5e7eb; border-radius: 6px; cursor: default; }
    .subdept-item i[b-uhkgy8c7jt] { color: #6b7280; font-size: 14px; }
    .subdept-name[b-uhkgy8c7jt] { flex: 1; font-size: 13px; color: #111827; }
    .subdept-count[b-uhkgy8c7jt] { font-size: 12px; color: #6b7280; }

    .loading-container[b-uhkgy8c7jt] { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 300px; }
    .loading-spinner[b-uhkgy8c7jt] { width: 36px; height: 36px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin-b-uhkgy8c7jt .8s linear infinite; }
    .loading-text[b-uhkgy8c7jt] { margin-top: 12px; color: #6b7280; font-size: 14px; }
    @keyframes spin-b-uhkgy8c7jt { to { transform: rotate(360deg); } }

    @media (max-width: 900px) {
        .body-layout[b-uhkgy8c7jt] { flex-direction: column; }
        .tree-panel[b-uhkgy8c7jt] { width: 100%; min-width: auto; max-height: 300px; }
        .stats-row[b-uhkgy8c7jt] { flex-direction: column; }
    }

.page-container.console-list-page[b-uhkgy8c7jt] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

/* 统一控制台页面外壳（放在历史响应式规则之后，确保桌面端也生效）。 */
.page-container.console-list-page[b-uhkgy8c7jt] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-uhkgy8c7jt] {
    width: 100%;
    min-height: 0;
}

.page-container.console-list-page .page-header[b-uhkgy8c7jt] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.page-container.console-list-page .stats-row[b-uhkgy8c7jt] {
    gap: var(--console-space-3);
    margin-bottom: var(--console-space-4);
}

.page-container.console-list-page .stat-card[b-uhkgy8c7jt],
.page-container.console-list-page .tree-panel[b-uhkgy8c7jt],
.page-container.console-list-page .detail-panel[b-uhkgy8c7jt] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}

.page-container.console-list-page .stats-row[b-uhkgy8c7jt] {
    flex: 0 0 auto;
}

.page-container.console-list-page .body-layout[b-uhkgy8c7jt] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.page-container.console-list-page .tree-panel[b-uhkgy8c7jt],
.page-container.console-list-page .detail-panel[b-uhkgy8c7jt] {
    min-height: 0;
}

@media (max-width: 900px) {
    .page-container.console-list-page .body-layout[b-uhkgy8c7jt] {
        overflow: auto;
    }
}

.page-container.console-list-page > .main-content[b-uhkgy8c7jt] {
    width: 100%;
    min-height: 0;
}

.page-container.console-list-page .page-header[b-uhkgy8c7jt] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.page-container.console-list-page .stats-row[b-uhkgy8c7jt] {
    gap: var(--console-space-3);
    margin-bottom: var(--console-space-4);
}

.page-container.console-list-page .stat-card[b-uhkgy8c7jt],
.page-container.console-list-page .tree-panel[b-uhkgy8c7jt],
.page-container.console-list-page .detail-panel[b-uhkgy8c7jt] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-uhkgy8c7jt] {
        padding: var(--console-space-4);
    }
}

/* 桌面端统一控制台页面外壳。 */
.page-container.console-list-page[b-uhkgy8c7jt] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}
.page-container.console-list-page > .main-content[b-uhkgy8c7jt] { width: 100%; min-height: 0; }
.page-container.console-list-page .page-header[b-uhkgy8c7jt] {
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}
.page-container.console-list-page .stats-row[b-uhkgy8c7jt] { gap: var(--console-space-3); margin-bottom: var(--console-space-4); }
.page-container.console-list-page .stat-card[b-uhkgy8c7jt],
.page-container.console-list-page .tree-panel[b-uhkgy8c7jt],
.page-container.console-list-page .detail-panel[b-uhkgy8c7jt] {
    border-radius: var(--console-radius-md);
    box-shadow: none;
}
/* /Components/Pages/OrgChart.razor.rz.scp.css */
.org-chart-page[b-qj1gyf8lcr] {
    flex: 1;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.body-layout[b-qj1gyf8lcr] {
    display: flex;
    flex: 1;
    min-height: 0;
    gap: 12px;
    height: auto;
}

/* ===== 左侧树面板 ===== */
.tree-panel[b-qj1gyf8lcr] {
    width: 280px;
    min-width: 280px;
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.tree-panel-header[b-qj1gyf8lcr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-bottom: 1px solid #e5e7eb;
}

.tree-panel-title[b-qj1gyf8lcr] {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.tree-panel-title i[b-qj1gyf8lcr] { color: #2563eb; }

.tree-panel-actions[b-qj1gyf8lcr] { display: flex; gap: 4px; }

.icon-btn[b-qj1gyf8lcr] {
    width: 28px; height: 28px; border: none; background: transparent;
    border-radius: 6px; cursor: pointer; display: flex; align-items: center;
    justify-content: center; color: #6b7280; font-size: 12px;
}
.icon-btn:hover[b-qj1gyf8lcr] { background: #f3f4f6; color: #2563eb; }

.tree-search-box[b-qj1gyf8lcr] { padding: 8px 10px; }

.search-input-wrapper[b-qj1gyf8lcr] {
    display: flex; align-items: center; gap: 8px; padding: 6px 10px;
    border-radius: 6px; border: 1px solid #d1d5db; background: white;
}
.search-input-wrapper:focus-within[b-qj1gyf8lcr] { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }
.search-icon[b-qj1gyf8lcr] { color: #9ca3af; font-size: 13px; }
.search-input[b-qj1gyf8lcr] { border: none; outline: none; background: transparent; flex: 1; font-size: 13px; color: #111827; }
.search-input[b-qj1gyf8lcr]::placeholder { color: #9ca3af; }

.tree-container[b-qj1gyf8lcr] { flex: 1; overflow-y: auto; padding: 4px 8px; }
.tree-container[b-qj1gyf8lcr]::-webkit-scrollbar { width: 4px; }
.tree-container[b-qj1gyf8lcr]::-webkit-scrollbar-track { background: transparent; }
.tree-container[b-qj1gyf8lcr]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

.custom-tree[b-qj1gyf8lcr] { display: flex; flex-direction: column; gap: 1px; }

.tree-node-row[b-qj1gyf8lcr] {
    display: flex; align-items: center; padding: 5px 6px; border-radius: 6px;
    cursor: pointer; gap: 5px; min-height: 30px;
}
.tree-node-row:hover[b-qj1gyf8lcr] { background: #f3f4f6; }
.tree-node-row.selected[b-qj1gyf8lcr] { background: #eff6ff; }
.tree-node-row.selected .tn-name[b-qj1gyf8lcr] { color: #2563eb; font-weight: 600; }

.tn-toggle[b-qj1gyf8lcr] {
    width: 18px; height: 18px; border: none; background: transparent;
    border-radius: 4px; cursor: pointer; display: flex; align-items: center;
    justify-content: center; color: #9ca3af; font-size: 10px; padding: 0;
    flex-shrink: 0; transition: transform 0.15s;
}
.tn-toggle:hover[b-qj1gyf8lcr] { background: #e5e7eb; color: #2563eb; }
.tn-toggle.expanded[b-qj1gyf8lcr] { transform: rotate(90deg); }
.tn-toggle-placeholder[b-qj1gyf8lcr] { width: 18px; flex-shrink: 0; }

.tn-icon[b-qj1gyf8lcr] {
    width: 22px; height: 22px; border-radius: 5px; display: flex;
    align-items: center; justify-content: center; font-size: 11px;
    flex-shrink: 0; color: #2563eb; background: #eff6ff;
}
.tn-icon.user-icon[b-qj1gyf8lcr] { color: #722ed1; background: #f9f0ff; }
.tn-icon.org-icon[b-qj1gyf8lcr] { color: #1d4ed8; background: #dbeafe; font-size: 12px; }
.tn-count.org-count[b-qj1gyf8lcr] { background: #1d4ed8; }
.tn-name[b-qj1gyf8lcr] { font-size: 13px; color: #111827; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tn-job[b-qj1gyf8lcr] { font-size: 11px; color: #9ca3af; margin-left: 4px; }
.tn-count[b-qj1gyf8lcr] { padding: 0 5px; height: 16px; line-height: 16px; border-radius: 8px; font-size: 10px; font-weight: 600; color: white; background: #94a3b8; margin-left: 4px; }
.tree-children[b-qj1gyf8lcr] { margin-left: 10px; padding-left: 10px; border-left: 1px solid #e5e7eb; }
.tree-empty[b-qj1gyf8lcr] { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 0; gap: 8px; color: #9ca3af; font-size: 13px; }

/* ===== 右侧详情面板 ===== */
.detail-panel[b-qj1gyf8lcr] {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    max-height: 100%;
}

.empty-detail[b-qj1gyf8lcr] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    height: 100%; min-height: 300px; background: white; border-radius: 8px;
    border: 1px solid #e5e7eb; gap: 12px;
}
.empty-icon[b-qj1gyf8lcr] { font-size: 48px; color: #d1d5db; }
.empty-detail p[b-qj1gyf8lcr] { color: #6b7280; font-size: 14px; margin: 0; }

.detail-card[b-qj1gyf8lcr] {
    background: white; border-radius: 8px; border: 1px solid #e5e7eb;
    padding: 20px; min-height: 100%; box-sizing: border-box;
}

/* 部门头部 */
.dept-header[b-qj1gyf8lcr] { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.dept-icon-lg[b-qj1gyf8lcr] {
    width: 52px; height: 52px; border-radius: 12px; display: flex;
    align-items: center; justify-content: center; font-size: 22px;
    color: #2563eb; background: #eff6ff; flex-shrink: 0;
}
.dept-header-info[b-qj1gyf8lcr] { display: flex; flex-direction: column; gap: 2px; }
.dept-name[b-qj1gyf8lcr] { margin: 0; font-size: 18px; font-weight: 600; color: #111827; }
.dept-parent[b-qj1gyf8lcr] { font-size: 13px; color: #6b7280; }

/* 统计卡片 */
.stat-cards[b-qj1gyf8lcr] { display: flex; gap: 12px; margin-bottom: 20px; }
.stat-card[b-qj1gyf8lcr] {
    flex: 1; background: #f8fafc; border-radius: 8px; padding: 12px;
    text-align: center; border: 1px solid #e5e7eb;
}
.stat-num[b-qj1gyf8lcr] { font-size: 24px; font-weight: 700; color: #2563eb; }
.stat-text[b-qj1gyf8lcr] { font-size: 12px; color: #6b7280; margin-top: 2px; }

/* 用户头部 */
.user-header[b-qj1gyf8lcr] { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.user-avatar-lg[b-qj1gyf8lcr] {
    width: 56px; height: 56px; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; font-size: 22px;
    color: #fff; font-weight: 600; flex-shrink: 0;
}
.user-header-info[b-qj1gyf8lcr] { display: flex; flex-direction: column; gap: 2px; }
.user-name[b-qj1gyf8lcr] { margin: 0; font-size: 18px; font-weight: 600; color: #111827; }
.user-title[b-qj1gyf8lcr] { font-size: 13px; color: #6b7280; }

/* 角色标签 */
.role-tag[b-qj1gyf8lcr] {
    display: inline-block; padding: 1px 8px; border-radius: 4px;
    font-size: 11px; font-weight: 500;
}
.role-tag.admin[b-qj1gyf8lcr] { background: #fff7e6; color: #d46b08; border: 1px solid #ffd591; }

/* 信息区块 */
.info-section[b-qj1gyf8lcr] { margin-top: 16px; }
.info-section-title[b-qj1gyf8lcr] {
    font-size: 13px; font-weight: 600; color: #374151;
    padding-bottom: 8px; border-bottom: 1px solid #f0f0f0;
    margin-bottom: 4px; display: flex; align-items: center; gap: 6px;
}
.info-section-title i[b-qj1gyf8lcr] { color: #2563eb; font-size: 12px; }

/* 信息行（用户详情） */
.info-item[b-qj1gyf8lcr] {
    display: flex; align-items: center; padding: 8px 4px; gap: 10px;
    border-bottom: 1px solid #fafafa;
}
.info-item i[b-qj1gyf8lcr] { color: #9ca3af; font-size: 13px; width: 16px; text-align: center; }
.info-item-label[b-qj1gyf8lcr] { font-size: 13px; color: #6b7280; min-width: 64px; }
.info-item-value[b-qj1gyf8lcr] { font-size: 13px; color: #111827; }

/* 人员行（列表式，企业微信风格） */
.person-row[b-qj1gyf8lcr] {
    display: flex; align-items: center; padding: 8px 4px; gap: 10px;
    border-bottom: 1px solid #fafafa; transition: background 0.15s;
}
.person-row:hover[b-qj1gyf8lcr] { background: #f8faff; }
.person-avatar[b-qj1gyf8lcr] {
    width: 32px; height: 32px; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; color: #fff;
    font-size: 13px; font-weight: 500; flex-shrink: 0;
}
.person-detail[b-qj1gyf8lcr] { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.person-name[b-qj1gyf8lcr] { font-size: 13px; font-weight: 500; color: #111827; }
.person-meta[b-qj1gyf8lcr] { font-size: 12px; color: #9ca3af; }

/* 部门行（子部门列表） */
.dept-row[b-qj1gyf8lcr] {
    display: flex; align-items: center; padding: 8px 4px; gap: 10px;
    border-bottom: 1px solid #fafafa; transition: background 0.15s;
}
.dept-row:hover[b-qj1gyf8lcr] { background: #f8faff; }
.dept-row-icon[b-qj1gyf8lcr] {
    width: 32px; height: 32px; border-radius: 8px; display: flex;
    align-items: center; justify-content: center; font-size: 14px;
    color: #2563eb; background: #eff6ff; flex-shrink: 0;
}
.dept-row-info[b-qj1gyf8lcr] { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.dept-row-name[b-qj1gyf8lcr] { font-size: 13px; font-weight: 500; color: #111827; }
.dept-row-meta[b-qj1gyf8lcr] { font-size: 12px; color: #9ca3af; }
.dept-row-arrow[b-qj1gyf8lcr] { color: #d1d5db; font-size: 11px; }

@media (max-width: 992px) {
    .body-layout[b-qj1gyf8lcr] { flex-direction: column; height: auto; overflow: auto; }
    .tree-panel[b-qj1gyf8lcr] { width: 100%; min-width: unset; min-height: 280px; }
}
/* /Components/Pages/PermissionInventory.razor.rz.scp.css */
/* ========== 全局变量和容器 ========== */
.pi-container[b-d7z49m940a] {
    --bg-body: #f9fafb;
    --bg-card: rgba(255, 255, 255, 0.95);
    --fg-primary: #1e293b;
    --fg-secondary: #64748b;
    --fg-muted: #94a3b8;
    --accent-primary: #2563eb;
    --border-color: #e5e7eb;
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);

    min-height: 100vh;
    background: var(--bg-body);
    position: relative;
    overflow-x: hidden;
}

.main-content[b-d7z49m940a] {
    padding: 24px;
}

/* ========== 玻璃卡片 ========== */
.glass-card[b-d7z49m940a] {
    background: var(--bg-card);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    box-shadow: var(--shadow-md);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.glass-card:hover[b-d7z49m940a] {
    box-shadow: var(--shadow-lg);
    border-color: rgba(37, 99, 235, 0.2);
}

/* ========== 页面头部 ========== */
.page-header[b-d7z49m940a] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.header-left[b-d7z49m940a] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.header-title-group[b-d7z49m940a] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.page-title[b-d7z49m940a] {
    font-size: 28px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    font-family: 'Outfit', 'Inter', sans-serif;
}

.page-subtitle[b-d7z49m940a] {
    font-size: 14px;
    color: #64748b;
    margin: 0;
}

.header-right[b-d7z49m940a] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.action-btn[b-d7z49m940a] {
    border-radius: 12px;
}

/* ========== Tabs ========== */
.tab-content[b-d7z49m940a] {
    padding-top: 16px;
}

/* ========== 筛选区域 ========== */
.filter-section[b-d7z49m940a] {
    padding: 16px 24px;
    margin-bottom: 24px;
}

.filter-row[b-d7z49m940a] {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.filter-item[b-d7z49m940a] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.filter-label[b-d7z49m940a] {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
    white-space: nowrap;
}

/* ========== 统计卡片 ========== */
.stats-grid[b-d7z49m940a] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.stat-card[b-d7z49m940a] {
    padding: 24px;
}

.stat-card-header[b-d7z49m940a] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
}

.stat-icon[b-d7z49m940a] {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.stat-icon-blue[b-d7z49m940a] { background: #eff6ff; color: #2563eb; }
.stat-icon-green[b-d7z49m940a] { background: #ecfdf5; color: #10b981; }
.stat-icon-orange[b-d7z49m940a] { background: #fff7ed; color: #f59e0b; }
.stat-icon-violet[b-d7z49m940a] { background: #f5f3ff; color: #7c3aed; }
.stat-icon-red[b-d7z49m940a] { background: #fef2f2; color: #ef4444; }

.stat-label[b-d7z49m940a] {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 8px;
}

.stat-value[b-d7z49m940a] {
    font-size: 32px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

/* ========== 表格区域 ========== */
.table-section[b-d7z49m940a] {
    padding: 24px;
    margin-bottom: 24px;
}

.table-header[b-d7z49m940a] {
    margin-bottom: 20px;
}

.chart-title[b-d7z49m940a] {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 4px 0;
}

.chart-subtitle[b-d7z49m940a] {
    font-size: 13px;
    color: #64748b;
    margin: 0;
}

.table-section[b-d7z49m940a]  .ant-table {
    border-radius: 12px;
    overflow: hidden;
}

.table-section[b-d7z49m940a]  .ant-table-thead > tr > th {
    background: #f8fafc !important;
    color: #475569;
    font-weight: 600;
    font-size: 13px;
    border-bottom: 2px solid #e2e8f0;
}

.table-section[b-d7z49m940a]  .ant-table-tbody > tr > td {
    border-bottom: 1px solid #f1f5f9;
    padding: 12px 16px;
}

.table-section[b-d7z49m940a]  .ant-table-tbody > tr:hover > td {
    background: #f8fafc !important;
}

/* ========== 单元格样式 ========== */
.key-cell[b-d7z49m940a] {
    font-size: 13px;
    color: #475569;
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
}

.stat-number[b-d7z49m940a] {
    font-weight: 600;
    color: #1e293b;
}

.text-muted[b-d7z49m940a] {
    color: #94a3b8;
}

/* ========== 矩阵单元格 ========== */
.matrix-cell[b-d7z49m940a] {
    text-align: center;
}

.matrix-legend[b-d7z49m940a] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 16px;
    padding: 12px 16px;
    background: #f8fafc;
    border-radius: 8px;
}

.matrix-assignments[b-d7z49m940a] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
}

/* ========== 高风险权限列表 ========== */
.high-risk-list[b-d7z49m940a] {
    padding: 12px 0;
}

/* ========== 差异列表 ========== */
.diff-list[b-d7z49m940a] {
    margin-top: 12px;
}

/* ========== 一致性校验 ========== */
.consistency-section[b-d7z49m940a] {
    padding: 24px;
}

.consistency-result[b-d7z49m940a] {
    margin-top: 8px;
}

/* ========== 加载状态 ========== */
.loading-container[b-d7z49m940a] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border-radius: 20px;
    margin-bottom: 24px;
}

/* ========== 空状态 ========== */
.empty-state[b-d7z49m940a] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    gap: 16px;
    color: #94a3b8;
    font-size: 15px;
}

/* ========== 响应式 ========== */
@media (max-width: 1200px) {
    .stats-grid[b-d7z49m940a] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .main-content[b-d7z49m940a] {
        padding: 16px;
    }

    .page-header[b-d7z49m940a] {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .header-right[b-d7z49m940a] {
        width: 100%;
    }

    .stats-grid[b-d7z49m940a] {
        grid-template-columns: 1fr;
    }

    .page-title[b-d7z49m940a] {
        font-size: 22px;
    }

    .filter-row[b-d7z49m940a] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /Components/Pages/PlatformAnnouncements.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.announcement-admin-page[b-8bb1vrvzfn] { min-height: calc(100vh - 64px); background: #f5f6f8; }
.announcements-content[b-8bb1vrvzfn] { flex: 1; min-width: 0; padding: 0; }

.filter-card[b-8bb1vrvzfn] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; box-shadow: none; }
.filter-row[b-8bb1vrvzfn] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.filter-item[b-8bb1vrvzfn] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-8bb1vrvzfn] { font-size: 12px; font-weight: 500; color: #6b7280; }
.filter-row[b-8bb1vrvzfn]  .ant-input { width: 200px; height: 36px !important; min-height: 36px !important; font-size: 14px; border-radius: 6px; padding: 6px 12px !important; line-height: 22px !important; }
.filter-row .search-input[b-8bb1vrvzfn] { width: 200px !important; min-width: 200px; }
.filter-row .select-input[b-8bb1vrvzfn] { min-width: 140px; width: 160px; }
.filter-row[b-8bb1vrvzfn]  .ant-select-selector { height: 36px !important; border-radius: 6px !important; }
.filter-row[b-8bb1vrvzfn]  .ant-btn { height: 36px; padding: 0 16px; font-size: 14px; border-radius: 6px; }
.filter-row[b-8bb1vrvzfn]  .ant-btn-primary { background: #2563eb; border-color: #2563eb; }

.table-header[b-8bb1vrvzfn] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; gap: 16px; }
.table-header-left[b-8bb1vrvzfn] { flex: 1; }
.table-header-right[b-8bb1vrvzfn] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
/* /Components/Pages/PlatformExceptions.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.announcement-admin-page[b-uecgkxxupt] { min-height: calc(100vh - 64px); background: #f5f6f8; }
.announcements-content[b-uecgkxxupt] { flex: 1; min-width: 0; padding: 0; }
.filter-card[b-uecgkxxupt] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; box-shadow: none; }
.filter-row[b-uecgkxxupt] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.filter-item[b-uecgkxxupt] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-uecgkxxupt] { font-size: 12px; font-weight: 500; color: #6b7280; }
.filter-row[b-uecgkxxupt]  .ant-input { width: 200px; height: 36px !important; min-height: 36px !important; font-size: 14px; border-radius: 6px; padding: 6px 12px !important; line-height: 22px !important; }
.filter-row .search-input[b-uecgkxxupt] { width: 200px !important; min-width: 200px; }
.filter-row .select-input[b-uecgkxxupt] { min-width: 140px; width: 160px; }
.filter-row[b-uecgkxxupt]  .ant-select-selector { height: 36px !important; border-radius: 6px !important; }
.filter-row[b-uecgkxxupt]  .ant-btn { height: 36px; padding: 0 16px; font-size: 14px; border-radius: 6px; }
.filter-row[b-uecgkxxupt]  .ant-btn-primary { background: #2563eb; border-color: #2563eb; }
.table-header[b-uecgkxxupt] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; gap: 16px; }
.table-header-left[b-uecgkxxupt] { flex: 1; }
.table-header-right[b-uecgkxxupt] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
/* /Components/Pages/PlatformOverview.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.platform-overview[b-aj2pkhyd5p] {
        --overview-gap: 16px;
        --card-radius: 14px;
        --inner-card-radius: 12px;
        --card-padding-y: 18px;
        --card-padding-x: 24px;
        --card-border: #e6edf6;
        --card-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
        --card-shadow-hover: 0 18px 42px rgba(15, 23, 42, 0.1);
        width: calc(100% + 48px);
        margin: -24px -24px 0;
        min-height: calc(100vh - 64px - 69px);
        padding: 20px 18px 28px;
        box-sizing: border-box;
        color: #0f172a;
        display: flex;
        flex-direction: column;
        gap: var(--overview-gap);
        background:
            radial-gradient(circle at 16% 0%, rgba(37, 99, 235, 0.08), transparent 28%),
            radial-gradient(circle at 86% 12%, rgba(16, 185, 129, 0.08), transparent 24%),
            linear-gradient(180deg, #f8fbff 0%, #f8fafc 42%, #f6f8fb 100%);
    }

    /* toolbar */
    .overview-toolbar[b-aj2pkhyd5p] { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: var(--overview-gap); padding: 12px 16px; overflow: visible; background: rgba(255,255,255,.86); border: 1px solid var(--card-border); border-radius: var(--card-radius); box-shadow: 0 8px 22px rgba(15,23,42,.045); backdrop-filter: blur(10px); min-width: 0; }
    .toolbar-left[b-aj2pkhyd5p] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; min-width: 0; }
    .overview-toolbar-meta[b-aj2pkhyd5p] { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px 16px; color: #64748b; font-size: 12px; }
    .overview-toolbar-meta span[b-aj2pkhyd5p] { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
    .link-btn[b-aj2pkhyd5p] { color: #2563eb; font-size: 13px; text-decoration: none; font-weight: 500; }
    .link-btn:hover[b-aj2pkhyd5p] { text-decoration: underline; }
    .date-range-wrap[b-aj2pkhyd5p] { display: flex; align-items: center; gap: 6px; }
    .date-range-sep[b-aj2pkhyd5p] { font-size: 13px; color: #94a3b8; }

    /* section blocks —— 用 ::deep 让 PlatformOverview 内嵌的子组件(如 PostgreSqlStoragePanel)也能命中这些版式基元 */
    .platform-overview[b-aj2pkhyd5p]  .section-block { position: relative; z-index: 1; background: rgba(255,255,255,.94); border: 1px solid var(--card-border); border-radius: var(--card-radius); padding: var(--card-padding-y) var(--card-padding-x); box-shadow: var(--card-shadow); overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
    .platform-overview[b-aj2pkhyd5p]  .section-block::before,
    .platform-overview[b-aj2pkhyd5p]  .overview-panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, rgba(37,99,235,.72), rgba(8,145,178,.48), rgba(16,185,129,.42)); opacity: .75; }
    .platform-overview[b-aj2pkhyd5p]  .section-block:hover,
    .platform-overview[b-aj2pkhyd5p]  .overview-panel:hover { border-color: #d7e3f2; box-shadow: var(--card-shadow-hover); transform: translateY(-1px); }
    .platform-overview[b-aj2pkhyd5p]  .section-title { display: flex; align-items: center; gap: 8px; font-size: 16px; line-height: 1.2; font-weight: 700; color: #0f172a; margin: 0 0 var(--overview-gap); padding-bottom: 0; border-bottom: 0; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot { width: 4px; height: 18px; border-radius: 999px; flex: 0 0 4px; box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.blue-dot { background: #2563eb; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.cyan-dot { background: #0891b2; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.green-dot { background: #10b981; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.orange-dot { background: #f97316; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.purple-dot { background: #7c3aed; }
    .platform-overview[b-aj2pkhyd5p]  .section-dot.red-dot { background: #ef4444; }
    .platform-overview[b-aj2pkhyd5p]  .section-loading { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 112px; padding: var(--overview-gap) 0; color: #94a3b8; font-size: 13px; }

    /* gpu stat */
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: var(--overview-gap); }
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-card { text-align: center; padding: 18px 14px; border-radius: var(--inner-card-radius); border: 1px solid #eef3f8; background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); min-height: 136px; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: inset 0 1px 0 rgba(255,255,255,.85); transition: transform .16s ease, border-color .16s ease, background .16s ease; }
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-card:hover { transform: translateY(-1px); border-color: #dbeafe; background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%); }
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-value { font-size: 36px; font-weight: 800; line-height: 1.2; }
    .platform-overview[b-aj2pkhyd5p]  .sv-purple { color: #7c3aed; }
    .platform-overview[b-aj2pkhyd5p]  .sv-blue { color: #2563eb; }
    .platform-overview[b-aj2pkhyd5p]  .sv-green { color: #10b981; }
    .platform-overview[b-aj2pkhyd5p]  .sv-orange { color: #f97316; }
    .platform-overview[b-aj2pkhyd5p]  .sv-cyan { color: #0891b2; }
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-label { margin-top: 6px; font-size: 14px; color: #475569; font-weight: 500; }
    .platform-overview[b-aj2pkhyd5p]  .gpu-stat-sub { margin-top: 4px; font-size: 12px; color: #94a3b8; }

    /* overview panel and metric */
    .overview-panel[b-aj2pkhyd5p],
    .metric-card[b-aj2pkhyd5p] {
        background: rgba(255,255,255,.94);
        border: 1px solid var(--card-border);
        box-shadow: var(--card-shadow);
    }

    .overview-hero[b-aj2pkhyd5p] {
        min-height: 108px;
        border-radius: 8px;
        padding: 22px 24px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .overview-hero h1[b-aj2pkhyd5p] {
        margin: 0 0 8px;
        font-size: 28px;
        font-weight: 700;
        letter-spacing: 0;
    }

    .overview-hero p[b-aj2pkhyd5p] {
        margin: 0;
        color: #64748b;
        font-size: 15px;
    }

    .metric-grid[b-aj2pkhyd5p] {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: var(--overview-gap);
    }

    .metric-card[b-aj2pkhyd5p] {
        border-radius: var(--inner-card-radius);
        padding: 18px;
        display: flex;
        align-items: center;
        gap: 14px;
        min-height: 116px;
        min-width: 0;
        background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
        border-color: #eef3f8;
        box-shadow: none;
        transition: transform .16s ease, border-color .16s ease, background .16s ease;
    }

    .metric-card:hover[b-aj2pkhyd5p] {
        transform: translateY(-1px);
        border-color: #dbeafe;
        background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
    }

    .metric-icon[b-aj2pkhyd5p] {
        width: 46px;
        height: 46px;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 21px;
        flex: 0 0 46px;
    }

    .metric-icon.blue[b-aj2pkhyd5p] { background: #eef5ff; color: #2563eb; }
    .metric-icon.cyan[b-aj2pkhyd5p] { background: #ecfeff; color: #0891b2; }
    .metric-icon.green[b-aj2pkhyd5p] { background: #ecfdf5; color: #059669; }
    .metric-icon.orange[b-aj2pkhyd5p] { background: #fff7ed; color: #ea580c; }
    .metric-icon.purple[b-aj2pkhyd5p] { background: #f5f3ff; color: #7c3aed; }
    .metric-icon.red[b-aj2pkhyd5p] { background: #fef2f2; color: #dc2626; }

    .metric-value[b-aj2pkhyd5p] {
        font-size: 28px;
        line-height: 1.1;
        font-weight: 700;
    }

    .metric-label[b-aj2pkhyd5p] {
        margin-top: 6px;
        color: #64748b;
        font-size: 14px;
    }

    .metric-sub[b-aj2pkhyd5p] {
        margin-top: 4px;
        color: #94a3b8;
        font-size: 12px;
    }

    .panel-grid[b-aj2pkhyd5p],
    .report-grid[b-aj2pkhyd5p] {
        display: grid;
        gap: var(--overview-gap);
    }

    .panel-grid[b-aj2pkhyd5p] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-grid[b-aj2pkhyd5p] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .overview-panel[b-aj2pkhyd5p] {
        border-radius: var(--card-radius);
        padding: var(--card-padding-y) var(--card-padding-x);
        min-width: 0;
        position: relative;
        overflow: hidden;
        transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }

    .chart-panel[b-aj2pkhyd5p] {
        min-height: 286px;
    }

    .panel-header[b-aj2pkhyd5p] {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 16px;
        min-height: 24px;
        margin-bottom: var(--overview-gap);
    }

    .panel-header.compact[b-aj2pkhyd5p] {
        margin-bottom: var(--overview-gap);
    }

    .panel-header h2[b-aj2pkhyd5p] {
        margin: 0;
        font-size: 17px;
        font-weight: 700;
        color: #0f172a;
        display: flex;
        align-items: center;
        gap: 8px;
        line-height: 1.2;
    }

    .panel-header span[b-aj2pkhyd5p] {
        color: #94a3b8;
        font-size: 13px;
        white-space: nowrap;
    }

    .trend-chart[b-aj2pkhyd5p] {
        min-height: 244px;
    }

    .trend-empty[b-aj2pkhyd5p] {
        min-height: 180px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        border-radius: var(--inner-card-radius);
        background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
        color: #94a3b8;
        border: 1px dashed #cbd5e1;
    }

    .trend-summary[b-aj2pkhyd5p] {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-top: 10px;
    }

    .compact-summary .trend-summary-item[b-aj2pkhyd5p] {
        padding: 8px 10px;
    }

    .trend-summary-item[b-aj2pkhyd5p] {
        border-radius: 8px;
        background: #f8fafc;
        padding: 10px 12px;
    }

    .trend-summary-item span[b-aj2pkhyd5p] {
        display: block;
        color: #94a3b8;
        font-size: 12px;
    }

    .trend-summary-item strong[b-aj2pkhyd5p] {
        display: block;
        margin-top: 4px;
        color: #334155;
        font-size: 16px;
    }

    .report-panel[b-aj2pkhyd5p] {
        min-height: 286px;
    }

    .report-list[b-aj2pkhyd5p] {
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .compact-list[b-aj2pkhyd5p] {
        margin-top: 14px;
    }

    .report-row-header[b-aj2pkhyd5p] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 8px;
        color: #475569;
    }

    .report-row-header strong[b-aj2pkhyd5p] {
        color: #0f172a;
    }

    .report-track[b-aj2pkhyd5p] {
        height: 8px;
        border-radius: 999px;
        background: #edf2f7;
        overflow: hidden;
    }

    .report-fill[b-aj2pkhyd5p] {
        height: 100%;
        min-width: 4px;
        border-radius: inherit;
    }

    .report-fill.blue[b-aj2pkhyd5p] { background: #2563eb; }
    .report-fill.cyan[b-aj2pkhyd5p] { background: #0891b2; }
    .report-fill.green[b-aj2pkhyd5p] { background: #10b981; }
    .report-fill.orange[b-aj2pkhyd5p] { background: #f97316; }
    .report-fill.purple[b-aj2pkhyd5p] { background: #7c3aed; }
    .report-fill.red[b-aj2pkhyd5p] { background: #ef4444; }

    .report-note[b-aj2pkhyd5p] {
        margin-top: 6px;
        color: #94a3b8;
        font-size: 12px;
    }

    .risk-summary[b-aj2pkhyd5p] {
        border-radius: 10px;
        padding: 18px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .risk-summary.safe[b-aj2pkhyd5p] {
        background: #ecfdf5;
        color: #047857;
    }

    .risk-summary.warning[b-aj2pkhyd5p] {
        background: #fef2f2;
        color: #b91c1c;
    }

    .risk-summary .anticon[b-aj2pkhyd5p] {
        font-size: 28px;
    }

    .risk-value[b-aj2pkhyd5p] {
        font-size: 30px;
        line-height: 1;
        font-weight: 800;
    }

    .risk-label[b-aj2pkhyd5p] {
        margin-top: 6px;
        font-size: 13px;
        opacity: 0.8;
    }

    .recent-panel[b-aj2pkhyd5p] {
        flex: 1;
        min-height: 0;
    }

    .recent-list[b-aj2pkhyd5p] {
        display: flex;
        flex-direction: column;
        gap: 10px;
        max-height: 360px;
        overflow: auto;
        padding-right: 4px;
    }

    .recent-row[b-aj2pkhyd5p] {
        border: 1px solid #edf2f7;
        background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
        border-radius: var(--inner-card-radius);
        display: grid;
        grid-template-columns: 70px minmax(180px, 1fr) 160px 110px 110px;
        gap: 12px;
        align-items: center;
        min-height: 56px;
        padding: 0 14px;
        text-align: left;
        cursor: pointer;
    }

    .recent-row:hover[b-aj2pkhyd5p] {
        background: #eef5ff;
        border-color: #dbeafe;
    }

    .recent-type[b-aj2pkhyd5p] {
        color: #2563eb;
        font-weight: 700;
    }

    .recent-name[b-aj2pkhyd5p] {
        font-weight: 600;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .recent-owner[b-aj2pkhyd5p],
    .recent-time[b-aj2pkhyd5p] {
        color: #64748b;
    }

    .recent-status[b-aj2pkhyd5p] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        min-height: 26px;
        padding: 0 10px;
        font-size: 12px;
        font-weight: 700;
        background: #e2e8f0;
        color: #475569;
    }

    .recent-status.running[b-aj2pkhyd5p] { background: #dcfce7; color: #15803d; }
    .recent-status.failed[b-aj2pkhyd5p] { background: #fee2e2; color: #b91c1c; }
    .recent-status.done[b-aj2pkhyd5p] { background: #dbeafe; color: #1d4ed8; }

    .empty-list[b-aj2pkhyd5p],
    .overview-state[b-aj2pkhyd5p] {
        min-height: 220px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        color: #64748b;
    }

    .overview-state[b-aj2pkhyd5p] {
        flex: 1;
        background: #fff;
        border-radius: 8px;
        border: 1px solid #e7edf5;
        flex-direction: column;
    }

    /* token stat */
    .token-stat-grid[b-aj2pkhyd5p] { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--overview-gap); }
    .token-stat-card[b-aj2pkhyd5p] { display: flex; align-items: center; gap: 14px; padding: 18px; min-height: 136px; background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); border-radius: var(--inner-card-radius); border: 1px solid #eef3f8; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
    .token-stat-card:hover[b-aj2pkhyd5p] { transform: translateY(-1px); border-color: #dbeafe; background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%); }
    .token-stat-icon[b-aj2pkhyd5p] { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
    .icon-violet[b-aj2pkhyd5p] { background: #f5f3ff; color: #7c3aed; }
    .icon-blue[b-aj2pkhyd5p] { background: #eff6ff; color: #2563eb; }
    .icon-green[b-aj2pkhyd5p] { background: #ecfdf5; color: #059669; }
    .icon-orange[b-aj2pkhyd5p] { background: #fff7ed; color: #ea580c; }
    .token-stat-body[b-aj2pkhyd5p] { flex: 1; min-width: 0; }
    .token-stat-value[b-aj2pkhyd5p] { font-size: 28px; font-weight: 800; color: #0f172a; line-height: 1.1; }
    .token-stat-label[b-aj2pkhyd5p] { margin-top: 5px; font-size: 13px; color: #64748b; }
    .token-stat-sub[b-aj2pkhyd5p] { margin-top: 3px; font-size: 12px; color: #94a3b8; }
    .token-progress-wrap[b-aj2pkhyd5p] { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
    .token-progress-bg[b-aj2pkhyd5p] { flex: 1; height: 6px; border-radius: 3px; background: #e2e8f0; overflow: hidden; }
    .token-progress-fill[b-aj2pkhyd5p] { height: 100%; border-radius: 3px; background: linear-gradient(90deg, #7c3aed, #a78bfa); transition: width 0.5s; }
    .token-progress-pct[b-aj2pkhyd5p] { font-size: 12px; color: #7c3aed; font-weight: 600; white-space: nowrap; }

    /* gpu bar chart - removed, using ECharts now */
    .gpu-chart-placeholder[b-aj2pkhyd5p] { height: 220px; display: flex; align-items: flex-end; }

    /* cluster + alert */
    .cluster-alert-grid[b-aj2pkhyd5p] { display: grid; grid-template-columns: 3fr 2fr; gap: var(--overview-gap); }
    .cluster-panel[b-aj2pkhyd5p] { min-height: 260px; }
    .alert-panel[b-aj2pkhyd5p] { min-height: 260px; }

    .cluster-table[b-aj2pkhyd5p] { display: flex; flex-direction: column; gap: 0; border: 1px solid #eef3f8; border-radius: var(--inner-card-radius); overflow: hidden; background: #fff; }
    .cluster-thead[b-aj2pkhyd5p] { display: grid; grid-template-columns: 1.2fr 1.2fr 0.6fr 1.8fr 0.8fr 0.7fr; gap: 8px; padding: 10px 12px; font-size: 12px; color: #94a3b8; font-weight: 700; border-bottom: 1px solid #f1f5f9; background: #f8fafc; }
    .cluster-row[b-aj2pkhyd5p] { display: grid; grid-template-columns: 1.2fr 1.2fr 0.6fr 1.8fr 0.8fr 0.7fr; gap: 8px; align-items: center; min-height: 46px; padding: 10px 12px; font-size: 13px; border-bottom: 1px solid #f8fafc; }
    .cluster-row:last-child[b-aj2pkhyd5p] { border-bottom: none; }
    .cluster-row:hover[b-aj2pkhyd5p] { background: #f8fafc; border-radius: 6px; }
    .node-name[b-aj2pkhyd5p] { font-weight: 600; color: #2563eb; }
    .node-model[b-aj2pkhyd5p] { color: #475569; }
    .node-count[b-aj2pkhyd5p] { text-align: center; color: #0f172a; font-weight: 600; }
    .node-mem[b-aj2pkhyd5p] { display: flex; align-items: center; gap: 6px; }
    .node-mem span[b-aj2pkhyd5p] { font-size: 12px; color: #475569; white-space: nowrap; }
    .mem-bar-bg[b-aj2pkhyd5p] { flex: 1; height: 6px; border-radius: 3px; background: #e2e8f0; overflow: hidden; }
    .mem-bar-fill[b-aj2pkhyd5p] { height: 100%; border-radius: 3px; transition: width 0.4s; }
    .fill-green[b-aj2pkhyd5p] { background: #10b981; }
    .fill-orange[b-aj2pkhyd5p] { background: #f97316; }
    .fill-red[b-aj2pkhyd5p] { background: #ef4444; }
    .node-util[b-aj2pkhyd5p] { color: #475569; font-size: 13px; }
    .node-status[b-aj2pkhyd5p] { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 600; }
    .status-ok[b-aj2pkhyd5p] { background: #dcfce7; color: #15803d; }
    .status-warn[b-aj2pkhyd5p] { background: #fef3c7; color: #b45309; }

    .alert-badge[b-aj2pkhyd5p] { background: #ef4444; color: #fff; border-radius: 999px; padding: 1px 9px; font-size: 12px; font-weight: 700; }
    .alert-list[b-aj2pkhyd5p] { display: flex; flex-direction: column; gap: 10px; }
    .alert-row[b-aj2pkhyd5p] { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: var(--inner-card-radius); background: #fafbfc; border: 1px solid #f1f5f9; }
    .alert-row.alert-error[b-aj2pkhyd5p] { background: #fff5f5; border-color: #fecaca; }
    .alert-row.alert-warning[b-aj2pkhyd5p] { background: #fffbeb; border-color: #fde68a; }
    .alert-dot[b-aj2pkhyd5p] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }
    .dot-error[b-aj2pkhyd5p] { background: #ef4444; box-shadow: 0 0 0 3px #fecaca; }
    .dot-warning[b-aj2pkhyd5p] { background: #f97316; box-shadow: 0 0 0 3px #fed7aa; }
    .alert-body[b-aj2pkhyd5p] { flex: 1; min-width: 0; }
    .alert-title[b-aj2pkhyd5p] { font-size: 13px; font-weight: 600; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .alert-desc[b-aj2pkhyd5p] { font-size: 12px; color: #64748b; margin-top: 2px; }
    .alert-time[b-aj2pkhyd5p] { font-size: 11px; color: #94a3b8; white-space: nowrap; flex-shrink: 0; margin-top: 2px; }

    /* legend inline */
    .legend-inline[b-aj2pkhyd5p] { display: flex; align-items: center; gap: 12px; font-size: 12px; color: #64748b; }
    .legend-line[b-aj2pkhyd5p] { display: inline-block; width: 16px; height: 3px; border-radius: 2px; margin-right: 4px; vertical-align: middle; }
    .legend-line.lbl-blue[b-aj2pkhyd5p] { background: #2563eb; }
    .legend-line.lbl-green[b-aj2pkhyd5p] { background: #10b981; }

    @media (max-width: 1500px) {
        .metric-grid[b-aj2pkhyd5p] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .platform-overview[b-aj2pkhyd5p]  .gpu-stat-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
        .token-stat-grid[b-aj2pkhyd5p] { grid-template-columns: repeat(2, minmax(0,1fr)); }
    }

    @media (max-width: 1100px) {
        .panel-grid[b-aj2pkhyd5p],
        .report-grid[b-aj2pkhyd5p],
        .cluster-alert-grid[b-aj2pkhyd5p] {
            grid-template-columns: 1fr 1fr;
        }

        .recent-row[b-aj2pkhyd5p] {
            grid-template-columns: 60px minmax(160px, 1fr) 100px;
        }

        .recent-owner[b-aj2pkhyd5p],
        .recent-time[b-aj2pkhyd5p] {
            display: none;
        }
    }

    @media (max-width: 720px) {
        .platform-overview[b-aj2pkhyd5p] {
            width: calc(100% + 32px);
            margin: -16px -16px 0;
            padding: 16px 12px 24px;
        }

        .platform-overview[b-aj2pkhyd5p]  .gpu-stat-grid,
        .metric-grid[b-aj2pkhyd5p],
        .panel-grid[b-aj2pkhyd5p],
        .report-grid[b-aj2pkhyd5p],
        .token-stat-grid[b-aj2pkhyd5p],
        .cluster-alert-grid[b-aj2pkhyd5p] {
            grid-template-columns: 1fr;
        }

        .overview-toolbar[b-aj2pkhyd5p] { flex-direction: column; align-items: flex-start; }
        .overview-toolbar-meta[b-aj2pkhyd5p] { width: 100%; justify-content: flex-start; }

        .trend-summary[b-aj2pkhyd5p] {
            grid-template-columns: 1fr;
        }

        .recent-row[b-aj2pkhyd5p] {
            grid-template-columns: 52px minmax(0, 1fr) 86px;
        }
        .cluster-thead[b-aj2pkhyd5p], .cluster-row[b-aj2pkhyd5p] { grid-template-columns: 1fr 1fr 1fr; }
        .cluster-thead span:nth-child(4)[b-aj2pkhyd5p], .cluster-thead span:nth-child(5)[b-aj2pkhyd5p],
        .cluster-row .node-mem[b-aj2pkhyd5p], .cluster-row .node-util[b-aj2pkhyd5p] { display: none; }
    }
/* /Components/Pages/PlatformOverviewIntegrated.razor.rz.scp.css */
.integrated-overview[b-95o0ljg4q8] {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 20px 24px 32px;
    box-sizing: border-box;
    color: var(--console-color-text-1, #20252d);
    background: #eef2f6;
}

.io-page-header[b-95o0ljg4q8],
.io-filter-band[b-95o0ljg4q8],
.io-section-heading[b-95o0ljg4q8],
.io-panel-heading[b-95o0ljg4q8],
.io-kpi-top[b-95o0ljg4q8],
.io-resource-line[b-95o0ljg4q8],
.io-attention-title[b-95o0ljg4q8],
.io-scope-line[b-95o0ljg4q8],
.io-header-meta[b-95o0ljg4q8],
.io-filter-context[b-95o0ljg4q8] {
    display: flex;
    align-items: center;
}

.io-util-heading[b-95o0ljg4q8],
.io-util-detail[b-95o0ljg4q8],
.io-workload-heading[b-95o0ljg4q8],
.io-health-row[b-95o0ljg4q8] {
    display: flex;
    align-items: center;
}

.io-page-header[b-95o0ljg4q8] {
    position: relative;
    justify-content: space-between;
    gap: 20px;
    min-height: 82px;
    margin-bottom: 10px;
    padding: 14px 18px;
    background: #ffffff;
    border: 1px solid #d9e2ec;
    border-left: 4px solid #2563eb;
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
}

/* 标题字号/字重与共享 PageIntro（h1 24px/600，768px 以下 20px/28px）保持一致。 */
.io-page-header h1[b-95o0ljg4q8] { margin: 0 0 5px; font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: 0; }
@media (max-width: 768px) { .io-page-header h1[b-95o0ljg4q8] { font-size: 20px; line-height: 28px; } }
.io-scope-line[b-95o0ljg4q8] { flex-wrap: wrap; gap: 7px; color: #64748b; font-size: 13px; }
.io-role-tag[b-95o0ljg4q8] { padding: 2px 7px; border-radius: 3px; color: #1d4ed8; background: #e8f1ff; }
.io-user-name[b-95o0ljg4q8] { color: #475569; }
.io-header-meta[b-95o0ljg4q8] { justify-content: flex-end; flex-wrap: wrap; gap: 12px; color: #64748b; font-size: 12px; }

.io-filter-band[b-95o0ljg4q8] {
    position: relative;
    z-index: 20;
    justify-content: space-between;
    gap: 16px;
    min-height: 58px;
    margin: 0 0 14px;
    padding: 10px 24px;
    background: #ffffff;
    border: 1px solid #d9e2ec;
    border-radius: 6px;
    box-shadow: 0 5px 16px rgba(15, 23, 42, .03);
}

.io-filter-context[b-95o0ljg4q8] { justify-content: flex-end; flex-wrap: wrap; gap: 8px 14px; color: #7b8492; font-size: 12px; }
.io-filter-context span:first-child[b-95o0ljg4q8] { color: #334155; font-weight: 600; }

.io-section-card[b-95o0ljg4q8] {
    --section-accent: var(--console-color-primary, #2563eb);
    position: relative;
    margin: 0 0 12px;
    padding: 16px 24px 18px 21px;
    background: var(--console-color-bg-card, #fff);
    border: 1px solid var(--console-color-border, #e1e6ec);
    border-left: 3px solid var(--section-accent);
    border-radius: 6px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .035);
}
.io-section-card[b-95o0ljg4q8]::before { content: ""; position: absolute; top: -1px; left: 21px; width: 72px; height: 3px; background: var(--section-accent); }
.io-accent-success[b-95o0ljg4q8] { --section-accent: var(--console-color-success, #31855d); }
.io-accent-warning[b-95o0ljg4q8] { --section-accent: var(--console-color-warning, #d97706); }
.io-section-heading[b-95o0ljg4q8] { justify-content: space-between; gap: 16px; margin-bottom: 9px; }
.io-section-heading > div[b-95o0ljg4q8] { display: flex; align-items: baseline; gap: 10px; }
.io-section-heading h2[b-95o0ljg4q8] { display: inline-flex; align-items: center; gap: 8px; }
.io-section-heading h2[b-95o0ljg4q8],
.io-panel-heading h2[b-95o0ljg4q8] { margin: 0; font-size: 16px; line-height: 1.3; font-weight: 650; letter-spacing: 0; }
.io-section-heading span[b-95o0ljg4q8],
.io-panel-heading span[b-95o0ljg4q8] { color: #7b8492; font-size: 12px; }
.io-section-heading > a[b-95o0ljg4q8] { display: inline-flex; align-items: center; gap: 6px; color: var(--console-color-primary, #2563eb); font-size: 12px; text-decoration: none; }
.io-section-marker[b-95o0ljg4q8] { display: inline-block; width: 4px; height: 15px; border-radius: 2px; background: var(--console-color-primary, #2563eb); }
.io-section-marker.success[b-95o0ljg4q8] { background: var(--console-color-success, #31855d); }
.io-section-marker.warning[b-95o0ljg4q8] { background: var(--console-color-warning, #d97706); }
.io-section-marker.danger[b-95o0ljg4q8] { background: var(--console-color-error, #dc2626); }

.io-util-grid[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.io-util-tile[b-95o0ljg4q8] { min-width: 0; padding: 12px 16px; border-right: 1px solid var(--console-color-split, #edf0f4); }
.io-util-tile:last-child[b-95o0ljg4q8] { border-right: 0; }
.io-util-heading[b-95o0ljg4q8] { gap: 10px; }
.io-util-heading > div[b-95o0ljg4q8] { min-width: 0; display: grid; gap: 2px; }
.io-util-heading span[b-95o0ljg4q8] { color: var(--console-color-text-3, #657080); font-size: 12px; }
.io-util-heading strong[b-95o0ljg4q8] { color: var(--console-color-text-1, #27303c); font-size: 21px; line-height: 1.2; }
.io-metric-icon[b-95o0ljg4q8] { width: 32px; height: 32px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; color: var(--console-color-primary, #2563eb); background: var(--ant-primary-1, #eff6ff); }
.io-util-tile.good .io-metric-icon[b-95o0ljg4q8] { color: var(--console-color-success, #31855d); background: #e9f7ef; }
.io-util-tile.warn .io-metric-icon[b-95o0ljg4q8] { color: var(--console-color-warning, #d97706); background: #fff3d6; }
.io-util-tile.danger .io-metric-icon[b-95o0ljg4q8] { color: var(--console-color-error, #dc2626); background: #feeceb; }
.io-util-tile > .io-progress[b-95o0ljg4q8] { margin-top: 12px; }
.io-util-detail[b-95o0ljg4q8] { justify-content: space-between; gap: 10px; margin-top: 7px; color: var(--console-color-text-4, #7b8492); font-size: 11px; }
.io-util-detail span[b-95o0ljg4q8] { min-width: 0; overflow-wrap: anywhere; }
.io-util-detail code[b-95o0ljg4q8] { max-width: 52%; overflow: hidden; color: var(--console-color-text-4, #7b8492); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

.io-kpi-grid[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.io-kpi[b-95o0ljg4q8] {
    position: relative;
    min-width: 0;
    min-height: 108px;
    padding: 14px 13px 12px;
    background: #ffffff;
    border: 1px solid #e1e6ec;
    border-top: 3px solid #cbd5e1;
    border-radius: 5px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .035);
}
.io-kpi.good[b-95o0ljg4q8] { border-top-color: #31855d; }
.io-kpi.warn[b-95o0ljg4q8] { border-top-color: #d97706; background: #fffdf8; }
.io-kpi.danger[b-95o0ljg4q8] { border-top-color: #dc2626; background: #fffafa; }
.io-kpi.neutral[b-95o0ljg4q8] { border-top-color: #64748b; }
.io-kpi-top[b-95o0ljg4q8] { justify-content: space-between; gap: 8px; color: #657080; font-size: 12px; }
.io-kpi-icon[b-95o0ljg4q8] { width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; color: #2563eb; background: #edf4ff; border-radius: 4px; font-size: 14px; }
.io-kpi-icon.good[b-95o0ljg4q8] { color: #31855d; background: #e9f7ef; }
.io-kpi-icon.warn[b-95o0ljg4q8] { color: #b45309; background: #fff3d6; }
.io-kpi-icon.danger[b-95o0ljg4q8] { color: #b42318; background: #feeceb; }
.io-kpi-icon.neutral[b-95o0ljg4q8] { color: #596579; background: #eef1f5; }
.io-kpi-value[b-95o0ljg4q8] { margin: 10px 0 4px; color: #1f2937; font-size: 26px; line-height: 1.1; font-weight: 750; }
.io-kpi.warn .io-kpi-value[b-95o0ljg4q8] { color: #a16207; }
.io-kpi.danger .io-kpi-value[b-95o0ljg4q8] { color: #b42318; }
.io-kpi-note[b-95o0ljg4q8] { overflow-wrap: anywhere; color: #7b8492; font-size: 12px; }
.io-kpi .io-progress[b-95o0ljg4q8] { margin-top: 8px; }
.io-kpi-note.good[b-95o0ljg4q8] { color: #2f7650; }
.io-kpi-note.warn[b-95o0ljg4q8] { color: #a16207; }
.io-kpi-note.danger[b-95o0ljg4q8] { color: #b42318; }

.io-trend-grid[b-95o0ljg4q8],
.io-operational-grid[b-95o0ljg4q8],
.io-insight-layout[b-95o0ljg4q8],
.io-cluster-layout[b-95o0ljg4q8] { display: grid; gap: 10px; margin-bottom: 10px; }
.io-trend-grid[b-95o0ljg4q8] { grid-template-columns: minmax(0, 1fr); }
.io-operational-grid[b-95o0ljg4q8] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.io-insight-layout[b-95o0ljg4q8] { grid-template-columns: minmax(0, 1.55fr) minmax(320px, .85fr); }
.io-trend-grid.single[b-95o0ljg4q8],
.io-operational-grid.single[b-95o0ljg4q8] { grid-template-columns: minmax(0, 1fr); }
.io-cluster-layout[b-95o0ljg4q8] { grid-template-columns: minmax(0, 1fr); }

.io-panel[b-95o0ljg4q8] {
    min-width: 0;
    padding: 16px;
    background: #ffffff;
    border: 1px solid #e1e6ec;
    border-radius: 5px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .035);
}
.io-panel-heading[b-95o0ljg4q8] { justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.io-panel-heading > div[b-95o0ljg4q8] { min-width: 0; }
.io-chart-stats[b-95o0ljg4q8] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px 10px; color: #64748b; font-size: 11px; }
.io-chart-stats strong[b-95o0ljg4q8] { color: #7c3aed; }
.io-chart-stats span[b-95o0ljg4q8] { white-space: nowrap; }
.io-panel-heading h2[b-95o0ljg4q8] { margin-bottom: 3px; }
.io-panel-heading h2[b-95o0ljg4q8] { display: flex; align-items: center; gap: 8px; }
.io-panel-heading strong[b-95o0ljg4q8] { color: #2563eb; font-size: 13px; }
.io-panel-heading a[b-95o0ljg4q8] { color: #2563eb; font-size: 12px; text-decoration: none; }

.io-ranking-heading[b-95o0ljg4q8] { align-items: center; }
.io-segmented[b-95o0ljg4q8] { flex: none; display: inline-flex; padding: 2px; background: #f0f3f7; border: 1px solid #e1e6ec; border-radius: 5px; }
.io-segmented button[b-95o0ljg4q8] { min-height: 28px; padding: 3px 10px; color: #657080; background: transparent; border: 0; border-radius: 3px; font-size: 12px; cursor: pointer; }
.io-segmented button:hover[b-95o0ljg4q8] { color: #1d4ed8; }
.io-segmented button.active[b-95o0ljg4q8] { color: #1d4ed8; background: #ffffff; box-shadow: 0 1px 2px rgb(15 23 42 / 10%); font-weight: 600; }

.io-ranking-list[b-95o0ljg4q8] { display: grid; }
.io-ranking-row[b-95o0ljg4q8] { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid #edf0f4; }
.io-ranking-row:last-child[b-95o0ljg4q8] { border-bottom: 0; }
.io-ranking-index[b-95o0ljg4q8] { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; color: #64748b; background: #eef1f5; border-radius: 4px; font-size: 11px; font-weight: 700; }
.io-ranking-row:nth-child(-n+3) .io-ranking-index[b-95o0ljg4q8] { color: #1d4ed8; background: #e8f1ff; }
.io-ranking-main[b-95o0ljg4q8] { min-width: 0; }
.io-ranking-label[b-95o0ljg4q8] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.io-ranking-label > span[b-95o0ljg4q8] { min-width: 0; }
.io-ranking-label strong[b-95o0ljg4q8],
.io-ranking-label small[b-95o0ljg4q8] { display: block; }
.io-ranking-label > span strong[b-95o0ljg4q8] { overflow: hidden; color: #27303c; text-overflow: ellipsis; white-space: nowrap; }
.io-ranking-label small[b-95o0ljg4q8] { margin-top: 2px; overflow: hidden; color: #7b8492; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.io-ranking-label > strong[b-95o0ljg4q8] { flex: none; color: #1d4ed8; font-size: 12px; }
.io-ranking-bar[b-95o0ljg4q8] { height: 7px; margin: 7px 0 5px; overflow: hidden; background: #e9edf2; border-radius: 3px; }
.io-ranking-bar span[b-95o0ljg4q8] { display: block; min-width: 2px; height: 100%; background: #2563eb; }
.io-ranking-meta[b-95o0ljg4q8] { display: flex; flex-wrap: wrap; gap: 5px 14px; color: #7b8492; font-size: 11px; }
.io-ranking-empty[b-95o0ljg4q8] { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #7b8492; text-align: center; }
.io-ranking-empty .anticon[b-95o0ljg4q8] { color: #94a3b8; font-size: 26px; }
.io-ranking-empty strong[b-95o0ljg4q8] { color: #475569; }

.io-risk-list[b-95o0ljg4q8] { display: grid; }
.io-risk-row[b-95o0ljg4q8] { width: 100%; min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 11px 8px; color: inherit; text-align: left; background: transparent; border: 0; border-bottom: 1px solid #edf0f4; cursor: pointer; }
.io-risk-row:last-child[b-95o0ljg4q8] { border-bottom: 0; }
.io-risk-row:hover[b-95o0ljg4q8] { background: #f7f9fb; }
.io-risk-icon[b-95o0ljg4q8] { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; color: #a16207; background: #fff3d6; border-radius: 50%; }
.io-risk-row.danger .io-risk-icon[b-95o0ljg4q8] { color: #b42318; background: #feeceb; }
.io-risk-row > span:nth-child(2)[b-95o0ljg4q8] { min-width: 0; }
.io-risk-row strong[b-95o0ljg4q8],
.io-risk-row small[b-95o0ljg4q8] { display: block; overflow-wrap: anywhere; }
.io-risk-row small[b-95o0ljg4q8] { margin-top: 2px; color: #7b8492; font-size: 11px; }
.io-risk-count[b-95o0ljg4q8] { min-width: 28px; padding: 2px 7px; color: #92400e; text-align: center; background: #fff3d6; border-radius: 999px; font-size: 11px; font-weight: 700; }
.io-risk-row.danger .io-risk-count[b-95o0ljg4q8] { color: #b42318; background: #feeceb; }
.io-risk-empty[b-95o0ljg4q8] { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #2f7650; }
.io-risk-empty .anticon[b-95o0ljg4q8] { font-size: 27px; }

.io-chart-stack[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.io-chart-block[b-95o0ljg4q8] { min-width: 0; padding-top: 10px; border-top: 1px solid #edf0f4; }
.io-chart-label[b-95o0ljg4q8] { display: flex; justify-content: space-between; margin-bottom: 5px; color: #657080; font-size: 12px; }

.io-count-badge[b-95o0ljg4q8] { min-width: 24px; padding: 2px 7px; border-radius: 999px; text-align: center; color: #b42318 !important; background: #feeceb; }
.io-attention-empty[b-95o0ljg4q8] { min-height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #2f7650; }
.io-attention-empty .anticon[b-95o0ljg4q8] { font-size: 28px; }
.io-attention-empty span[b-95o0ljg4q8] { color: #7b8492; font-size: 12px; }
.io-attention-list[b-95o0ljg4q8] { display: grid; gap: 8px; }
.io-attention-item[b-95o0ljg4q8] { padding: 10px; border-left: 3px solid #d97706; background: #fffaf0; color: #697382; font-size: 12px; }
.io-attention-item.danger[b-95o0ljg4q8] { border-left-color: #dc2626; background: #fff5f5; }
.io-attention-title[b-95o0ljg4q8] { justify-content: space-between; gap: 8px; margin-bottom: 3px; color: #27303c; }
.io-attention-title span[b-95o0ljg4q8] { flex: none; color: #8a93a0; font-size: 11px; }
.io-resource-list[b-95o0ljg4q8] { display: grid; gap: 12px; }
.io-resource-item[b-95o0ljg4q8] { min-width: 0; }
.io-resource-line[b-95o0ljg4q8] { justify-content: space-between; gap: 12px; margin-bottom: 5px; font-size: 12px; }
.io-resource-line strong[b-95o0ljg4q8] { color: #27303c; text-align: right; overflow-wrap: anywhere; }
.io-progress[b-95o0ljg4q8] { height: 6px; overflow: hidden; border-radius: 3px; background: #e9edf2; }
.io-progress span[b-95o0ljg4q8] { display: block; min-width: 2px; height: 100%; background: #2563eb; }
.io-progress span.good[b-95o0ljg4q8] { background: #31855d; }
.io-progress span.warn[b-95o0ljg4q8] { background: #d97706; }
.io-progress span.danger[b-95o0ljg4q8] { background: #dc2626; }
.io-progress.unavailable[b-95o0ljg4q8] { background: repeating-linear-gradient(135deg, #edf0f4 0 5px, #f8fafc 5px 10px); }
.io-progress.qualitative.good[b-95o0ljg4q8] { background: #d8eee2; }
.io-progress.qualitative.warn[b-95o0ljg4q8] { background: #f9e7bd; }
.io-progress.qualitative.danger[b-95o0ljg4q8] { background: #f8d6d4; }
.io-resource-item small[b-95o0ljg4q8] { display: block; margin-top: 4px; color: #7b8492; overflow-wrap: anywhere; }

.io-workload-grid[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.io-workload-item[b-95o0ljg4q8] { position: relative; min-width: 0; padding: 14px 15px; color: inherit; text-align: left; background: #ffffff; border: 1px solid #e1e6ec; border-top: 3px solid #2563eb; border-radius: 5px; box-shadow: 0 4px 12px rgba(15, 23, 42, .03); cursor: pointer; }
.io-workload-item.success[b-95o0ljg4q8] { border-top-color: #31855d; }
.io-workload-item.warning[b-95o0ljg4q8] { border-top-color: #d97706; }
.io-workload-item:hover[b-95o0ljg4q8] { background: #f8fbff; border-color: #b9cbe5; }
.io-workload-heading[b-95o0ljg4q8] { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; }
.io-workload-heading > span:nth-child(2)[b-95o0ljg4q8] { min-width: 0; }
.io-workload-heading strong[b-95o0ljg4q8], .io-workload-heading small[b-95o0ljg4q8] { display: block; }
.io-workload-heading small[b-95o0ljg4q8] { margin-top: 2px; color: var(--console-color-text-4, #7b8492); font-size: 11px; }
.io-workload-heading > .anticon[b-95o0ljg4q8] { color: var(--console-color-text-4, #7b8492); }
.io-workload-total[b-95o0ljg4q8] { margin: 12px 0 10px; display: flex; align-items: baseline; gap: 7px; }
.io-workload-total strong[b-95o0ljg4q8] { font-size: 24px; }
.io-workload-total span[b-95o0ljg4q8] { color: var(--console-color-text-4, #7b8492); font-size: 11px; }
.io-status-summary[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.io-status-summary > span[b-95o0ljg4q8] { min-width: 0; display: grid; grid-template-columns: 6px minmax(0, 1fr) auto; align-items: center; gap: 5px; padding: 6px 7px; background: var(--console-color-bg-subtle, #f7f9fb); font-size: 11px; }
.io-status-summary i[b-95o0ljg4q8] { width: 6px; height: 6px; border-radius: 50%; background: #94a3b8; }
.io-status-summary .running i[b-95o0ljg4q8] { background: var(--console-color-primary, #2563eb); }
.io-status-summary .completed i[b-95o0ljg4q8] { background: var(--console-color-success, #31855d); }
.io-status-summary .failed i[b-95o0ljg4q8] { background: var(--console-color-error, #dc2626); }

.io-asset-grid[b-95o0ljg4q8] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.io-operational-grid.single .io-asset-grid[b-95o0ljg4q8] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.io-asset-tile[b-95o0ljg4q8] { min-width: 0; min-height: 120px; padding: 12px; display: flex; flex-direction: column; background: #ffffff; border: 1px solid #e1e6ec; border-radius: 5px; }
.io-asset-heading[b-95o0ljg4q8] { display: flex; align-items: center; gap: 8px; min-width: 0; color: #657080; font-size: 12px; }
.io-asset-heading > span:last-child[b-95o0ljg4q8] { min-width: 0; overflow-wrap: anywhere; }
.io-asset-tile.success .io-metric-icon[b-95o0ljg4q8] { color: #31855d; background: #e9f7ef; }
.io-asset-tile.warning .io-metric-icon[b-95o0ljg4q8] { color: #d97706; background: #fff3d6; }
.io-asset-tile.neutral .io-metric-icon[b-95o0ljg4q8] { color: #596579; background: #eef1f5; }
.io-asset-value[b-95o0ljg4q8] { margin: 10px 0 4px; color: #27303c; font-size: 23px; line-height: 1.15; overflow-wrap: anywhere; }
.io-asset-tile > .io-progress[b-95o0ljg4q8] { margin: 4px 0 5px; }
.io-asset-tile small[b-95o0ljg4q8] { margin-top: auto; color: #7b8492; font-size: 11px; overflow-wrap: anywhere; }

.io-table-wrap[b-95o0ljg4q8] { overflow-x: auto; }
.io-table[b-95o0ljg4q8] { width: 100%; min-width: 920px; border-collapse: collapse; }
.io-table th[b-95o0ljg4q8],
.io-table td[b-95o0ljg4q8] { padding: 9px 7px; text-align: left; white-space: nowrap; border-bottom: 1px solid #e8edf2; }
.io-table th[b-95o0ljg4q8] { color: #657080; font-size: 12px; font-weight: 500; background: #f7f9fb; }
.io-table td[b-95o0ljg4q8] { font-size: 12px; }
.io-status[b-95o0ljg4q8] { display: inline-flex; align-items: center; min-height: 23px; padding: 1px 7px; border-radius: 999px; color: #4b5563; background: #eef1f5; font-size: 11px; }
.io-status.ok[b-95o0ljg4q8] { color: #246b45; background: #e9f7ef; }
.io-status.running[b-95o0ljg4q8] { color: #1d4ed8; background: #e8f1ff; }
.io-status.warn[b-95o0ljg4q8] { color: #92400e; background: #fff3d6; }
.io-status.danger[b-95o0ljg4q8] { color: #b42318; background: #feeceb; }

.io-recent-list[b-95o0ljg4q8] { display: grid; gap: 4px; }
.io-recent-item[b-95o0ljg4q8] { width: 100%; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px 0; color: inherit; text-align: left; background: transparent; border: 0; border-bottom: 1px solid #edf0f4; cursor: pointer; }
.io-recent-item:last-child[b-95o0ljg4q8] { border-bottom: 0; }
.io-recent-item:hover[b-95o0ljg4q8] { background: #f7f9fb; }
.io-recent-type[b-95o0ljg4q8] { color: #2563eb; font-weight: 600; }
.io-recent-item strong[b-95o0ljg4q8],
.io-recent-item small[b-95o0ljg4q8] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.io-recent-item small[b-95o0ljg4q8] { margin-top: 3px; color: #7b8492; }
.io-inline-empty[b-95o0ljg4q8] { min-height: 120px; display: flex; align-items: center; justify-content: center; color: #7b8492; }

.io-health-list[b-95o0ljg4q8] { display: grid; }
.io-health-row[b-95o0ljg4q8] { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 9px; padding: 10px 0; border-bottom: 1px solid var(--console-color-split, #edf0f4); }
.io-health-row:last-child[b-95o0ljg4q8] { border-bottom: 0; }
.io-health-icon[b-95o0ljg4q8] { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.io-health-icon.healthy[b-95o0ljg4q8] { color: var(--console-color-success, #31855d); background: #e9f7ef; }
.io-health-icon.warning[b-95o0ljg4q8] { color: var(--console-color-warning, #d97706); background: #fff3d6; }
.io-health-row > div[b-95o0ljg4q8] { min-width: 0; }
.io-health-row strong[b-95o0ljg4q8], .io-health-row div span[b-95o0ljg4q8] { display: block; overflow-wrap: anywhere; }
.io-health-row div span[b-95o0ljg4q8] { margin-top: 2px; color: var(--console-color-text-4, #7b8492); font-size: 11px; }
.io-attention-list.compact[b-95o0ljg4q8] { margin-top: 12px; }
.io-recent-panel[b-95o0ljg4q8] { margin-bottom: 0; }

.io-page-state[b-95o0ljg4q8] { min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #64748b; background: #ffffff; border: 1px solid #e1e6ec; }
.io-page-error .anticon[b-95o0ljg4q8] { color: #b42318; font-size: 28px; }

@media (max-width: 1500px) {
    .io-kpi-grid[b-95o0ljg4q8] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .io-operational-grid.single .io-asset-grid[b-95o0ljg4q8] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
    .io-util-grid[b-95o0ljg4q8] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .io-util-tile:nth-child(3n)[b-95o0ljg4q8] { border-right: 0; }
    .io-util-tile:nth-child(-n+3)[b-95o0ljg4q8] { border-bottom: 1px solid var(--console-color-split, #edf0f4); }
    .io-trend-grid[b-95o0ljg4q8],
    .io-operational-grid[b-95o0ljg4q8],
    .io-insight-layout[b-95o0ljg4q8],
    .io-cluster-layout[b-95o0ljg4q8] { grid-template-columns: 1fr; }
    .io-asset-grid[b-95o0ljg4q8],
    .io-operational-grid.single .io-asset-grid[b-95o0ljg4q8] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .integrated-overview[b-95o0ljg4q8] { width: 100%; margin: 0; padding: 14px 12px 22px; }
    .io-page-header[b-95o0ljg4q8],
    .io-filter-band[b-95o0ljg4q8] { flex-direction: column; align-items: flex-start; }
    .io-filter-band[b-95o0ljg4q8] { margin: 0 0 14px; padding: 10px 12px; }
    .io-section-card[b-95o0ljg4q8] { margin: 0 0 12px; padding: 14px 12px 16px 9px; }
    .io-section-card[b-95o0ljg4q8]::before { left: 9px; }
    .io-header-meta[b-95o0ljg4q8],
    .io-filter-context[b-95o0ljg4q8] { width: 100%; justify-content: flex-start; }
    .io-chart-stats[b-95o0ljg4q8] { justify-content: flex-start; }
    .io-section-heading[b-95o0ljg4q8] { align-items: flex-start; }
    .io-section-heading > div[b-95o0ljg4q8] { flex-direction: column; align-items: flex-start; gap: 2px; }
    .io-util-grid[b-95o0ljg4q8] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .io-util-tile:nth-child(3n)[b-95o0ljg4q8] { border-right: 1px solid var(--console-color-split, #edf0f4); }
    .io-util-tile:nth-child(even)[b-95o0ljg4q8] { border-right: 0; }
    .io-util-tile:nth-child(-n+2)[b-95o0ljg4q8] { border-bottom: 1px solid var(--console-color-split, #edf0f4); }
    .io-kpi-grid[b-95o0ljg4q8],
    .io-asset-grid[b-95o0ljg4q8],
    .io-operational-grid.single .io-asset-grid[b-95o0ljg4q8] { grid-template-columns: 1fr 1fr; }
    .io-workload-grid[b-95o0ljg4q8] { grid-template-columns: 1fr; }
    .io-workload-item[b-95o0ljg4q8] { border-right: 0; border-bottom: 1px solid var(--console-color-split, #edf0f4); }
    .io-workload-item:last-child[b-95o0ljg4q8] { border-bottom: 0; }
    .io-ranking-heading[b-95o0ljg4q8] { align-items: flex-start; }
    .io-ranking-heading .io-segmented[b-95o0ljg4q8] { width: 100%; overflow-x: auto; }
    .io-ranking-heading .io-segmented button[b-95o0ljg4q8] { flex: 1 0 auto; }
}

@media (max-width: 480px) {
    .io-kpi-grid[b-95o0ljg4q8],
    .io-operational-grid[b-95o0ljg4q8],
    .io-util-grid[b-95o0ljg4q8],
    .io-asset-grid[b-95o0ljg4q8],
    .io-operational-grid.single .io-asset-grid[b-95o0ljg4q8] { grid-template-columns: 1fr; }
    .io-util-tile[b-95o0ljg4q8] { border-right: 0; border-bottom: 1px solid var(--console-color-split, #edf0f4); }
    .io-util-tile:last-child[b-95o0ljg4q8] { border-bottom: 0; }
    .io-kpi[b-95o0ljg4q8] { min-height: 82px; }
    .io-recent-item[b-95o0ljg4q8] { grid-template-columns: 38px minmax(0, 1fr); }
    .io-recent-item > :last-child[b-95o0ljg4q8] { grid-column: 2; justify-self: start; }
}
/* /Components/Pages/Profile.razor.rz.scp.css */
.profile-page .console-list-page__content[b-6u96e83wx2] {
    min-height: max-content;
    overflow: visible;
}

.profile-section[b-6u96e83wx2] {
    border-radius: var(--console-radius-md, 6px);
    box-shadow: none;
}

.profile-section--spaced[b-6u96e83wx2] {
    margin-top: 16px;
}

.profile-summary[b-6u96e83wx2] {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--console-color-split, #f0f0f0);
}

.profile-avatar[b-6u96e83wx2] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--console-color-primary, #2563eb);
    color: #fff;
    font-size: 32px;
    font-weight: 600;
}

.profile-summary__text[b-6u96e83wx2] {
    min-width: 0;
}

.profile-display-name[b-6u96e83wx2] {
    margin-bottom: 4px;
    color: var(--console-color-text-1, #1f2937);
    font-size: 22px;
    font-weight: 600;
}

.profile-username[b-6u96e83wx2] {
    color: var(--console-color-text-3, #6b7280);
    font-size: 14px;
}

.profile-details[b-6u96e83wx2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 40px;
    margin: 0;
}

.profile-detail[b-6u96e83wx2] {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: start;
    min-width: 0;
    padding: 12px 0;
    border-bottom: 1px solid var(--console-color-split, #f0f0f0);
}

.profile-detail dt[b-6u96e83wx2] {
    color: var(--console-color-text-3, #6b7280);
    font-weight: 400;
}

.profile-detail dd[b-6u96e83wx2] {
    min-width: 0;
    margin: 0;
    color: var(--console-color-text-1, #1f2937);
    overflow-wrap: anywhere;
}

.profile-empty[b-6u96e83wx2] {
    color: var(--console-color-text-4, #9ca3af);
}

/* 个人中心 常用功能卡片网格 */
.profile-fn-grid[b-6u96e83wx2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.profile-fn-card[b-6u96e83wx2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: var(--console-radius-md, 6px);
    background: var(--console-color-bg-card, #fff);
    cursor: pointer;
    text-align: left;
    transition: all .16s ease;
}

.profile-fn-card:hover[b-6u96e83wx2] {
    border-color: var(--console-color-primary, #2563eb);
    background: var(--console-color-primary-bg, #eff6ff);
    transform: translateY(-1px);
}

.profile-fn-icon[b-6u96e83wx2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--console-radius-md, 6px);
    background: var(--console-color-primary-bg, #eff6ff);
    color: var(--console-color-primary, #2563eb);
    font-size: 18px;
    flex-shrink: 0;
}

.profile-fn-title[b-6u96e83wx2] {
    font-size: 14px;
    font-weight: 500;
    color: var(--console-color-text-1, #1f2937);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 800px) {
    .profile-details[b-6u96e83wx2] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .profile-summary[b-6u96e83wx2] {
        gap: 16px;
    }

    .profile-avatar[b-6u96e83wx2] {
        width: 64px;
        height: 64px;
        font-size: 26px;
    }

    .profile-display-name[b-6u96e83wx2] {
        font-size: 18px;
    }

    .profile-detail[b-6u96e83wx2] {
        grid-template-columns: 80px minmax(0, 1fr);
    }
}
/* /Components/Pages/ProviderDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-nq37aut0r0] {
    min-height: 80vh;
    background: #f9fafb;
        padding: 24px;
        height: 100%;
}

.main-content[b-nq37aut0r0] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-nq37aut0r0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-nq37aut0r0] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
}

.header-title-group[b-nq37aut0r0] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.page-title[b-nq37aut0r0] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
}

.title-icon[b-nq37aut0r0] {
    margin-right: 10px;
    color: #2563eb;
}

.page-subtitle[b-nq37aut0r0] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

.header-right[b-nq37aut0r0] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 按钮 */
.btn[b-nq37aut0r0] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-nq37aut0r0] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-back[b-nq37aut0r0] {
    background: white;
    color: #6b7280;
    border-color: #d1d5db;
}

.btn-back:hover:not(:disabled)[b-nq37aut0r0] {
    color: #2563eb;
    border-color: #2563eb;
}

.btn-primary[b-nq37aut0r0] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-nq37aut0r0] {
    background: #1d4ed8;
}

.btn-default[b-nq37aut0r0] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-nq37aut0r0] {
    background: #f9fafb;
}

.btn-danger[b-nq37aut0r0] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-nq37aut0r0] {
    background: #dc2626;
}

.btn-sm[b-nq37aut0r0] {
    padding: 6px 12px;
    font-size: 12px;
}

/* 卡片 */
.card[b-nq37aut0r0] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
}

.card-header[b-nq37aut0r0] {
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

/* 信息网格 */
.info-grid[b-nq37aut0r0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
    padding: 20px;
}

.info-item[b-nq37aut0r0] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.info-label[b-nq37aut0r0] {
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
}

.info-value[b-nq37aut0r0] {
    font-size: 14px;
    color: #111827;
    font-weight: 500;
    word-break: break-all;
}

/* 状态标签 */
.status-tag[b-nq37aut0r0] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-enabled[b-nq37aut0r0] {
    background: #dcfce7;
    color: #16a34a;
}

.status-disabled[b-nq37aut0r0] {
    background: #fee2e2;
    color: #ef4444;
}

/* 统计卡片 */
.stats-section[b-nq37aut0r0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.stat-card[b-nq37aut0r0] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.stat-icon[b-nq37aut0r0] {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.stat-icon-primary[b-nq37aut0r0] {
    background: #dbeafe;
    color: #2563eb;
}

.stat-icon-success[b-nq37aut0r0] {
    background: #dcfce7;
    color: #16a34a;
}

.stat-icon-danger[b-nq37aut0r0] {
    background: #fee2e2;
    color: #ef4444;
}

.stat-content[b-nq37aut0r0] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.stat-value[b-nq37aut0r0] {
    font-size: 24px;
    font-weight: 700;
    color: #111827;
    line-height: 1;
}

.stat-label[b-nq37aut0r0] {
    font-size: 12px;
    color: #6b7280;
}

/* 表格 */
.table-wrapper[b-nq37aut0r0] {
    overflow-x: auto;
}

.data-table[b-nq37aut0r0] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-nq37aut0r0] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-nq37aut0r0] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-nq37aut0r0] {
    background: #f9fafb;
}

.model-name[b-nq37aut0r0] {
    font-weight: 500;
}

.model-code[b-nq37aut0r0] {
    font-size: 12px;
    color: #6b7280;
    background: #f1f5f9;
    padding: 4px 8px;
    border-radius: 4px;
}

.action-cell[b-nq37aut0r0] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 开关样式 */
.switch-label[b-nq37aut0r0] {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
    cursor: pointer;
}

.switch-label input[b-nq37aut0r0] {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider[b-nq37aut0r0] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d1d5db;
    border-radius: 22px;
    transition: 0.15s;
}

.switch-slider[b-nq37aut0r0]::before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: 0.15s;
}

.switch-label input:checked + .switch-slider[b-nq37aut0r0] {
    background-color: #2563eb;
}

.switch-label input:checked + .switch-slider[b-nq37aut0r0]::before {
    transform: translateX(18px);
}

.switch-sm[b-nq37aut0r0] {
    width: 32px;
    height: 18px;
}

.switch-sm .switch-slider[b-nq37aut0r0]::before {
    height: 12px;
    width: 12px;
}

.switch-sm input:checked + .switch-slider[b-nq37aut0r0]::before {
    transform: translateX(14px);
}

/* 加载和空状态 */
.loading-container[b-nq37aut0r0], .empty-container[b-nq37aut0r0] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 300px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-nq37aut0r0] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-nq37aut0r0 1s linear infinite;
}

@keyframes spin-b-nq37aut0r0 {
    to { transform: rotate(360deg); }
}

.loading-text[b-nq37aut0r0] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-icon[b-nq37aut0r0] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-nq37aut0r0] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-nq37aut0r0] {
    font-size: 13px;
    color: #6b7280;
    margin: 0 0 16px 0;
}

/* 模态框 */
.modal-overlay[b-nq37aut0r0] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-container[b-nq37aut0r0] {
    width: 100%;
    max-width: 500px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}

.modal-sm[b-nq37aut0r0] {
    max-width: 400px;
}

.modal-header[b-nq37aut0r0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-nq37aut0r0] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-nq37aut0r0] {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background: white;
    color: #6b7280;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 14px;
}

.modal-close:hover[b-nq37aut0r0] {
    background: #fee2e2;
    border-color: #ef4444;
    color: #ef4444;
}

.modal-body[b-nq37aut0r0] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}

.modal-footer[b-nq37aut0r0] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 表单 */
.form-group[b-nq37aut0r0] {
    margin-bottom: 16px;
}

.form-group:last-child[b-nq37aut0r0] {
    margin-bottom: 0;
}

.form-label[b-nq37aut0r0] {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-label.required[b-nq37aut0r0]::after {
    content: ' *';
    color: #ef4444;
}

.form-input[b-nq37aut0r0] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
    box-sizing: border-box;
}

.form-input:focus[b-nq37aut0r0] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-input[b-nq37aut0r0]::placeholder {
    color: #9ca3af;
}

/* 错误提示 */
.error-alert[b-nq37aut0r0] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    color: #dc2626;
    font-size: 13px;
    margin-bottom: 16px;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-nq37aut0r0] {
        flex-direction: column;
        align-items: flex-start;
    }

    .header-left[b-nq37aut0r0] {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }

    .header-right[b-nq37aut0r0] {
        width: 100%;
        flex-wrap: wrap;
    }

    .info-grid[b-nq37aut0r0] {
        grid-template-columns: 1fr;
    }

    .stats-section[b-nq37aut0r0] {
        grid-template-columns: 1fr;
    }

    .action-cell[b-nq37aut0r0] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /Components/Pages/ResourceManagement/ClusterNodes.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-2nz32fae18] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-2nz32fae18] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-2nz32fae18] {
    color: #6b7280;
    font-size: 18px;
}

.page-title[b-2nz32fae18] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.node-count[b-2nz32fae18] {
    font-size: 14px;
    color: #6b7280;
}

.header-right[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 按钮 */
.btn[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn-sm[b-2nz32fae18] {
    padding: 6px 12px;
    font-size: 13px;
}

/* Prometheus 监控增强 */
.monitoring-section[b-2nz32fae18] {
    container-type: inline-size;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    padding: 16px;
    margin-bottom: 16px;
}

.monitoring-section-header[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 14px;
}

.monitoring-section-header h3[b-2nz32fae18] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    display: flex;
    gap: 8px;
    align-items: center;
}

.monitoring-section-header h3 i[b-2nz32fae18],
.pressure-panel-header i[b-2nz32fae18],
.dense-panel-header h4 i[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: var(--console-radius-base, 4px);
    color: var(--console-color-primary, #2563eb);
    background: #eff6ff;
    font-size: 13px;
}

.monitoring-section-header p[b-2nz32fae18] {
    margin: 4px 0 0;
    font-size: 12px;
    color: #6b7280;
}

.monitoring-actions[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.monitoring-time-tabs[b-2nz32fae18],
.monitoring-date-range[b-2nz32fae18],
.monitoring-status[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.monitoring-time-tab[b-2nz32fae18] {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #374151;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    cursor: pointer;
}

.monitoring-time-tab.active[b-2nz32fae18],
.monitoring-time-tab:hover[b-2nz32fae18] {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

.monitoring-validation[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 8px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    font-size: 13px;
}

.monitoring-status[b-2nz32fae18] {
    font-size: 12px;
    color: #6b7280;
    white-space: nowrap;
}

.monitoring-empty[b-2nz32fae18],
.monitoring-chart-empty[b-2nz32fae18],
.pressure-empty[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 120px;
    color: #94a3b8;
    background: #f8fafc;
    border: 1px dashed #dbe3ef;
    border-radius: 10px;
    text-align: center;
    padding: 16px;
}

.monitoring-card-grid[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.monitoring-card[b-2nz32fae18] {
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    padding: 12px;
    background: #fbfdff;
}

.monitoring-card-top[b-2nz32fae18],
.monitoring-detail[b-2nz32fae18],
.pressure-item-main[b-2nz32fae18],
.pressure-meta[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.monitoring-label[b-2nz32fae18] {
    font-size: 12px;
    color: #64748b;
}

.monitoring-value[b-2nz32fae18] {
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #0f172a;
    margin-top: 2px;
}

.monitoring-source[b-2nz32fae18] {
    font-size: 11px;
    color: #64748b;
    background: #f1f5f9;
    border-radius: 999px;
    padding: 2px 8px;
}

.monitoring-progress[b-2nz32fae18],
.pressure-bar[b-2nz32fae18] {
    height: 7px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    margin: 10px 0 8px;
}

.monitoring-progress-fill[b-2nz32fae18],
.pressure-bar-fill[b-2nz32fae18] {
    height: 100%;
    border-radius: 999px;
    background: var(--console-color-primary, #2563eb);
}

.monitoring-detail[b-2nz32fae18] {
    font-size: 12px;
    color: #64748b;
}

.monitoring-trend-grid[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.monitoring-chart-card[b-2nz32fae18] {
    min-height: 250px;
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    padding: 12px;
    background: white;
}

.pressure-grid[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.dense-monitoring-grid[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.dense-monitoring-panel[b-2nz32fae18] {
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    background: #fff;
    padding: 12px;
}

.dense-panel-header h4[b-2nz32fae18] {
    margin: 0;
    font-size: 14px;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.dense-panel-header p[b-2nz32fae18] {
    margin: 4px 0 10px;
    color: #6b7280;
    font-size: 12px;
}

.dense-card-row[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.dense-mini-card[b-2nz32fae18] {
    border: 1px solid #f1f5f9;
    border-radius: 8px;
    background: #f8fafc;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dense-mini-card span[b-2nz32fae18],
.dense-mini-card small[b-2nz32fae18] {
    color: #64748b;
    font-size: 11px;
}

.dense-mini-card strong[b-2nz32fae18] {
    color: #0f172a;
    font-size: 15px;
}

.dense-trend-list[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.dense-chart-card[b-2nz32fae18] {
    min-height: 220px;
    border: 1px solid #f1f5f9;
    border-radius: 8px;
    padding: 8px;
}

.dense-top-list[b-2nz32fae18] {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dense-top-item[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    color: #475569;
    font-size: 12px;
}

.pressure-panel[b-2nz32fae18] {
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    background: #fff;
    padding: 12px;
}

.pressure-panel-header[b-2nz32fae18] {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 10px;
}

.pressure-item[b-2nz32fae18] {
    padding: 8px 0;
    border-top: 1px solid #f1f5f9;
    cursor: pointer;
}

.pressure-item:hover .pressure-node-name[b-2nz32fae18] {
    color: #2563eb;
}

.pressure-node-name[b-2nz32fae18] {
    font-size: 13px;
    font-weight: 600;
    color: #111827;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pressure-value[b-2nz32fae18] {
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
}

.pressure-meta[b-2nz32fae18] {
    justify-content: flex-start;
    margin-top: 4px;
    font-size: 11px;
    color: #64748b;
}

@media (max-width: 1400px) {
    .monitoring-card-grid[b-2nz32fae18] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pressure-grid[b-2nz32fae18] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1200px) {
    /* 监控分组和分组内趋势图都单列，避免一行出现四张图。 */
    .monitoring-card-grid[b-2nz32fae18],
    .monitoring-trend-grid[b-2nz32fae18],
    .pressure-grid[b-2nz32fae18],
    .dense-monitoring-grid[b-2nz32fae18],
    .dense-trend-list[b-2nz32fae18] { grid-template-columns: 1fr; }
}

/* 详情区域可能受外层控制台布局影响，容器较窄时同样单列。 */
@container (max-width: 900px) {
    .monitoring-card-grid[b-2nz32fae18],
    .monitoring-trend-grid[b-2nz32fae18],
    .pressure-grid[b-2nz32fae18],
    .dense-monitoring-grid[b-2nz32fae18],
    .dense-trend-list[b-2nz32fae18] { grid-template-columns: 1fr; }
}

/* 主机卡片样式 */
.nodes-card[b-2nz32fae18] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.nodes-card-header[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.nodes-header-left[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.nodes-header-left i[b-2nz32fae18] {
    color: #2563eb;
    font-size: 18px;
}

.nodes-header-left h3[b-2nz32fae18] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.nodes-count-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #eff6ff;
    color: #2563eb;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
}

/* 主机层级结构 */
.nodes-hierarchy[b-2nz32fae18] {
    padding: 0;
}

.cluster-group[b-2nz32fae18] {
    border-bottom: 1px solid #e5e7eb;
}

.cluster-group:last-child[b-2nz32fae18] {
    border-bottom: none;
}

.cluster-group-header[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
    cursor: pointer;
    transition: background 0.2s ease;
}

.cluster-group-header:hover[b-2nz32fae18] {
    background: #f1f5f9;
}

.cluster-expand-icon[b-2nz32fae18] {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
}

.cluster-expand-icon i[b-2nz32fae18] {
    font-size: 12px;
}

.cluster-group-info[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
}

.cluster-group-name[b-2nz32fae18] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}

.cluster-group-stats[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.cluster-group-stats .stat-item[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #6b7280;
}

.cluster-group-stats .stat-item i[b-2nz32fae18] {
    font-size: 12px;
    color: #9ca3af;
}

.nodes-table-wrapper[b-2nz32fae18] {
    overflow-x: auto;
}

.nodes-table[b-2nz32fae18] {
    width: 100%;
    min-width: 1280px;
}

.node-row[b-2nz32fae18] {
    transition: background 0.15s ease;
}

.node-row:hover[b-2nz32fae18] {
    background: #f8fafc;
}

.node-name-cell[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 树形层级样式 */
.tree-toggle[b-2nz32fae18] {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    transition: transform 0.2s ease;
    cursor: pointer;
}

.tree-toggle.expanded[b-2nz32fae18] {
    transform: rotate(90deg);
}

.tree-toggle i[b-2nz32fae18] {
    font-size: 12px;
}

.master-icon[b-2nz32fae18] {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #f59e0b;
}

.master-icon i[b-2nz32fae18] {
    font-size: 14px;
}

.master-name[b-2nz32fae18] {
    font-weight: 600;
    color: #111827;
}

.child-count[b-2nz32fae18] {
    font-size: 12px;
    color: #6b7280;
    margin-left: 4px;
}

.worker-name-cell[b-2nz32fae18] {
    padding-left: 0;
}

.tree-indent[b-2nz32fae18] {
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.tree-line[b-2nz32fae18] {
    width: 1px;
    height: 20px;
    background: #d1d5db;
    position: relative;
}

.tree-line[b-2nz32fae18]::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 16px;
    height: 1px;
    background: #d1d5db;
}

.worker-icon[b-2nz32fae18] {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}

.worker-icon i[b-2nz32fae18] {
    font-size: 12px;
}

.standalone-icon[b-2nz32fae18] {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
}

.standalone-icon i[b-2nz32fae18] {
    font-size: 12px;
}

.master-row[b-2nz32fae18] {
    background: #f8fafc;
}

.master-row:hover[b-2nz32fae18] {
    background: #f1f5f9;
}

.master-row.expanded[b-2nz32fae18] {
    border-bottom: 1px solid #e5e7eb;
}

.worker-row[b-2nz32fae18] {
    background: white;
}

.worker-row:hover[b-2nz32fae18] {
    background: #f8fafc;
}

.role-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.master-role[b-2nz32fae18] {
    background: #fff7ed;
    color: #c2410c;
}

.worker-role[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.btn:disabled[b-2nz32fae18] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-2nz32fae18] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-2nz32fae18] {
    background: #1d4ed8;
}

.btn-default[b-2nz32fae18] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
    border-radius: 6px;
}

.btn-default:hover:not(:disabled)[b-2nz32fae18] {
    background: #f9fafb;
}

.btn-link[b-2nz32fae18] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-2nz32fae18] {
    color: #1d4ed8;
    text-decoration: underline;
}

/* 卡片 */
.card[b-2nz32fae18] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.table-wrapper[b-2nz32fae18] {
    overflow-x: auto;
}

/* 表格 */
.data-table[b-2nz32fae18] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-2nz32fae18] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-2nz32fae18] {
    padding: 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-row[b-2nz32fae18] {
    cursor: pointer;
    transition: background 0.15s;
}

.data-row:hover[b-2nz32fae18] {
    background: #f9fafb;
}

.node-name .name-link[b-2nz32fae18] {
    color: #2563eb;
    font-weight: 500;
}

.node-name .name-link:hover[b-2nz32fae18] {
    text-decoration: underline;
}

/* 无权限主机样式 */
.restricted-row[b-2nz32fae18] {
    background: #f9fafb !important;
    opacity: 0.7;
}

.restricted-row:hover[b-2nz32fae18] {
    background: #f3f4f6 !important;
}

.name-link.restricted[b-2nz32fae18] {
    color: #9ca3af;
    text-decoration: none;
}

.restricted-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 2px 8px;
    background: #fef3c7;
    color: #d97706;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.restricted-message[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #9ca3af;
    font-size: 13px;
    font-style: italic;
}

.btn-link.disabled[b-2nz32fae18] {
    color: #d1d5db;
    cursor: not-allowed;
}

/* 状态标签 */
.status-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
}

.status-badge i[b-2nz32fae18] {
    font-size: 6px;
}

.status-ready[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.status-notready[b-2nz32fae18] {
    background: #fee2e2;
    color: #ef4444;
}

.status-unknown[b-2nz32fae18] {
    background: #f3f4f6;
    color: #6b7280;
}

/* 资源信息 */
.resource-info[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.resource-value[b-2nz32fae18] {
    font-weight: 500;
    color: #111827;
}

.resource-usage[b-2nz32fae18] {
    font-size: 12px;
    color: #6b7280;
}

.text-muted[b-2nz32fae18] {
    color: #9ca3af;
}

.cluster-detail[b-2nz32fae18] {
    container-type: inline-size;
}

/* 集群概览条 - 独占一行 */
.cluster-overview-bar[b-2nz32fae18] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px 24px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    gap: 0;
}

.overview-item[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.overview-divider[b-2nz32fae18] {
    width: 1px;
    height: 36px;
    background: #e5e7eb;
    margin: 0 16px;
    flex-shrink: 0;
}

.overview-icon[b-2nz32fae18] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.overview-icon i[b-2nz32fae18] {
    font-size: 15px;
}

.overview-icon.cluster-icon[b-2nz32fae18] {
    background: #eff6ff;
}

.overview-icon.cluster-icon i[b-2nz32fae18] {
    color: #2563eb;
}

.overview-icon.master-icon[b-2nz32fae18] {
    background: #fff7ed;
}

.overview-icon.master-icon i[b-2nz32fae18] {
    color: #f59e0b;
}

.overview-icon.worker-icon[b-2nz32fae18] {
    background: #ecfdf5;
}

.overview-icon.worker-icon i[b-2nz32fae18] {
    color: #10b981;
}

.overview-icon.k8s-icon[b-2nz32fae18] {
    background: #f5f3ff;
}

.overview-icon.k8s-icon i[b-2nz32fae18] {
    color: #7c3aed;
}

.overview-icon.runtime-icon[b-2nz32fae18] {
    background: #fef3c7;
}

.overview-icon.runtime-icon i[b-2nz32fae18] {
    color: #d97706;
}

.overview-icon.health-icon[b-2nz32fae18] {
    background: #ecfdf5;
}

.overview-icon.health-icon i[b-2nz32fae18] {
    color: #10b981;
}

.overview-info[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.overview-value[b-2nz32fae18] {
    font-size: 15px;
    font-weight: 700;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.overview-value.health-text[b-2nz32fae18] {
    color: #047857;
}

.overview-label[b-2nz32fae18] {
    font-size: 11px;
    color: #9ca3af;
    white-space: nowrap;
}

.overview-sub[b-2nz32fae18] {
    font-size: 11px;
    color: #9ca3af;
    display: flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}

.status-dot[b-2nz32fae18] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
}

.status-dot.ready[b-2nz32fae18] {
    background: #10b981;
}

.status-dot.not-ready[b-2nz32fae18] {
    background: #ef4444;
}

/* 资源使用率概览区域 */
.resource-usage-section[b-2nz32fae18] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}

@container (max-width: 1180px) {
    .cluster-overview-bar[b-2nz32fae18] {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px 24px;
    }

    .overview-divider[b-2nz32fae18] {
        display: none;
    }

    .overview-item[b-2nz32fae18] {
        min-width: 0;
    }

    .resource-usage-section[b-2nz32fae18] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 680px) {
    .cluster-overview-bar[b-2nz32fae18],
    .resource-usage-section[b-2nz32fae18] {
        grid-template-columns: 1fr;
    }
}

.usage-card[b-2nz32fae18] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 18px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease;
}

.usage-card:hover[b-2nz32fae18] {
    border-color: #2563eb;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);
}

.usage-card-header[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.usage-card-icon[b-2nz32fae18] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

.usage-card-icon i[b-2nz32fae18] {
    font-size: 16px;
}

.usage-card-icon.cpu-icon[b-2nz32fae18] {
    background: #eff6ff;
}

.usage-card-icon.cpu-icon i[b-2nz32fae18] {
    color: #2563eb;
}

.usage-card-icon.memory-icon[b-2nz32fae18] {
    background: #ecfdf5;
}

.usage-card-icon.memory-icon i[b-2nz32fae18] {
    color: #10b981;
}

.usage-card-icon.gpu-icon[b-2nz32fae18] {
    background: #fff7ed;
}

.usage-card-icon.gpu-icon i[b-2nz32fae18] {
    color: #f59e0b;
}

.usage-card-icon.pod-icon[b-2nz32fae18] {
    background: #f5f3ff;
}

.usage-card-icon.pod-icon i[b-2nz32fae18] {
    color: #7c3aed;
}

.usage-card-info[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
}

.usage-card-label[b-2nz32fae18] {
    font-size: 13px;
    color: #6b7280;
}

.usage-card-value[b-2nz32fae18] {
    font-size: 20px;
    font-weight: 700;
    color: #111827;
}

.usage-progress-bar[b-2nz32fae18] {
    height: 8px;
    background: #f3f4f6;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.usage-progress-fill[b-2nz32fae18] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.6s ease;
}

.usage-progress-fill.cpu-fill[b-2nz32fae18] {
    background: linear-gradient(90deg, #3b82f6, #2563eb);
}

.usage-progress-fill.memory-fill[b-2nz32fae18] {
    background: linear-gradient(90deg, #34d399, #10b981);
}

.usage-progress-fill.gpu-fill[b-2nz32fae18] {
    background: linear-gradient(90deg, #fbbf24, #f59e0b);
}

.usage-progress-fill.pod-fill[b-2nz32fae18] {
    background: linear-gradient(90deg, #a78bfa, #7c3aed);
}

.usage-card-detail[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #9ca3af;
}

/* GPU型号徽章 - 白色背景风格 */
.gpu-model-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.2s ease;
}

.gpu-model-badge:hover[b-2nz32fae18] {
    background: #dbeafe;
    border-color: #2563eb;
}

/* 加载状态 */
.loading-container[b-2nz32fae18], .error-container[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-2nz32fae18] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-2nz32fae18 1s linear infinite;
}

@keyframes spin-b-2nz32fae18 {
    to { transform: rotate(360deg); }
}

.loading-text[b-2nz32fae18] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.error-title[b-2nz32fae18] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.error-message[b-2nz32fae18] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 16px 0;
}

.empty-state[b-2nz32fae18] {
    padding: 48px;
    text-align: center;
    color: #6b7280;
}

/* 弹窗 */
.modal-overlay[b-2nz32fae18] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-container[b-2nz32fae18] {
    background: white;
    border-radius: 8px;
    width: 100%;
    max-width: 600px;
    max-height: 90vh;
    overflow-y: auto;
}

.modal-header[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-2nz32fae18] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-2nz32fae18] {
    width: 32px;
    height: 32px;
    border: none;
    background: #f3f4f6;
    border-radius: 6px;
    cursor: pointer;
    color: #6b7280;
}

.modal-close:hover[b-2nz32fae18] {
    background: #e5e7eb;
    color: #111827;
}

.modal-body[b-2nz32fae18] {
    padding: 20px;
}

/* 步骤 */
.steps-container[b-2nz32fae18] {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.step-item[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: #f3f4f6;
    border-radius: 6px;
    flex-shrink: 0;
}

.step-item.active[b-2nz32fae18] {
    background: #2563eb;
    color: white;
}

.step-item.completed[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.step-number[b-2nz32fae18] {
    font-size: 12px;
    font-weight: 600;
}

.step-title[b-2nz32fae18] {
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}

.step-content[b-2nz32fae18] {
    margin-bottom: 20px;
}

.step-title-main[b-2nz32fae18] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.step-desc[b-2nz32fae18] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 16px 0;
}

.commands-box[b-2nz32fae18] {
    background: #1f2937;
    border-radius: 6px;
    padding: 16px;
    margin-bottom: 16px;
}

.command-line[b-2nz32fae18] {
    font-family: 'Consolas', monospace;
    font-size: 13px;
    color: #e5e7eb;
    line-height: 1.6;
    white-space: pre-wrap;
}

.tips-box[b-2nz32fae18] {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: 16px;
}

.tips-header[b-2nz32fae18] {
    font-weight: 600;
    color: #1e40af;
    margin-bottom: 8px;
}

.tips-list[b-2nz32fae18] {
    margin: 0;
    padding-left: 20px;
}

.tips-list li[b-2nz32fae18] {
    font-size: 13px;
    color: #1e40af;
    margin-bottom: 4px;
}

.step-navigation[b-2nz32fae18] {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}

/* Toast */
.toast[b-2nz32fae18] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 6px;
    z-index: 2000;
    animation: slideIn-b-2nz32fae18 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-2nz32fae18 {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-2nz32fae18] {
    background: #fee2e2;
    color: #ef4444;
}

.toast-message[b-2nz32fae18] {
    font-size: 14px;
    font-weight: 500;
}

/* 模式切换标签 */
.mode-tabs[b-2nz32fae18] {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 12px;
}

.mode-tab[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: none;
    background: #f3f4f6;
    border-radius: 6px 6px 0 0;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    transition: all 0.15s;
}

.mode-tab.active[b-2nz32fae18] {
    background: #2563eb;
    color: white;
}

.mode-tab:hover:not(.active)[b-2nz32fae18] {
    background: #e5e7eb;
}

/* 弹窗尺寸 */
.modal-large[b-2nz32fae18] {
    max-width: 1100px;
}

/* 左右分栏布局 */
.join-content-wrapper[b-2nz32fae18] {
    display: flex;
    gap: 20px;
    min-height: 450px;
}

.join-form-panel[b-2nz32fae18] {
    flex: 1.1;
    min-width: 0;
}

.join-logs-panel[b-2nz32fae18] {
    flex: 0.9;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.logs-panel-header[b-2nz32fae18] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.logs-panel-title[b-2nz32fae18] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 6px;
}

.logs-panel-title i[b-2nz32fae18] {
    color: #6b7280;
}

.logs-panel-status[b-2nz32fae18] {
    font-size: 12px;
    color: #6b7280;
    padding: 2px 8px;
    background: #f3f4f6;
    border-radius: 4px;
}

.logs-panel-status.active[b-2nz32fae18] {
    background: #dbeafe;
    color: #2563eb;
}

.logs-container-wrapper[b-2nz32fae18] {
    flex: 1;
    background: #1f2937;
    border-radius: 8px;
    padding: 12px;
    min-height: 300px;
    max-height: 400px;
    overflow-y: auto;
}

.logs-container-wrapper.empty[b-2nz32fae18] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f9fafb;
    border: 2px dashed #e5e7eb;
}

.logs-empty-hint[b-2nz32fae18] {
    text-align: center;
    color: #9ca3af;
    font-size: 13px;
}

.logs-empty-hint i[b-2nz32fae18] {
    font-size: 24px;
    margin-bottom: 8px;
    display: block;
}

.logs-container-wrapper .logs-container[b-2nz32fae18] {
    font-family: 'Consolas', 'Monaco', monospace;
    font-size: 12px;
    line-height: 1.6;
}

.log-line[b-2nz32fae18] {
    color: #e5e7eb;
    white-space: pre-wrap;
    word-break: break-all;
    padding: 2px 0;
}

.log-line:hover[b-2nz32fae18] {
    background: rgba(255, 255, 255, 0.05);
}

.log-line.error[b-2nz32fae18] {
    color: #fca5a5;
}

.log-line.success[b-2nz32fae18] {
    color: #86efac;
}

.log-line.warning[b-2nz32fae18] {
    color: #fcd34d;
}

/* 表单样式 */
.form-section[b-2nz32fae18] {
    background: #f9fafb;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
}

.section-title[b-2nz32fae18] {
    font-size: 15px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 4px 0;
}

.section-desc[b-2nz32fae18] {
    font-size: 13px;
    color: #6b7280;
    margin: 0 0 16px 0;
}

.form-row[b-2nz32fae18] {
    display: flex;
    gap: 16px;
    margin-bottom: 12px;
}

.form-group[b-2nz32fae18] {
    flex: 1;
}

.form-group-small[b-2nz32fae18] {
    flex: 0 0 100px;
}

.form-group label[b-2nz32fae18] {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 4px;
}

.form-input[b-2nz32fae18] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #111827;
    transition: border-color 0.15s;
}

.form-input:focus[b-2nz32fae18] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-actions[b-2nz32fae18] {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

/* Token 结果 */
.token-success[b-2nz32fae18], .token-error[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 6px;
    margin-top: 12px;
    font-size: 14px;
}

.token-success[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.token-error[b-2nz32fae18] {
    background: #fee2e2;
    color: #ef4444;
}

/* 测试连接结果 */
.test-result[b-2nz32fae18] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 6px;
    margin-top: 12px;
    font-size: 14px;
}

.test-result.success[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.test-result.error[b-2nz32fae18] {
    background: #fee2e2;
    color: #ef4444;
}

.system-info[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.info-detail[b-2nz32fae18] {
    font-size: 12px;
    opacity: 0.8;
}

.warning-text[b-2nz32fae18] {
    color: #f59e0b;
    font-weight: 500;
}

/* 日志区域 */
.logs-section[b-2nz32fae18] {
    background: #1f2937;
    border-radius: 8px;
    padding: 16px;
    margin-top: 16px;
}

.logs-section .section-title[b-2nz32fae18] {
    color: #e5e7eb;
}

.logs-container[b-2nz32fae18] {
    max-height: 200px;
    overflow-y: auto;
    font-family: 'Consolas', monospace;
    font-size: 12px;
}

.log-line[b-2nz32fae18] {
    color: #e5e7eb;
    line-height: 1.6;
    white-space: pre-wrap;
}

/* 结果区域 */
.result-section[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border-radius: 8px;
    margin-top: 16px;
}

.result-section.success[b-2nz32fae18] {
    background: #dcfce7;
    color: #16a34a;
}

.result-section.error[b-2nz32fae18] {
    background: #fee2e2;
    color: #ef4444;
}

.result-section span[b-2nz32fae18] {
    flex: 1;
    font-weight: 500;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-2nz32fae18] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .header-right[b-2nz32fae18] {
        width: 100%;
        flex-wrap: wrap;
    }
    
    .data-table th[b-2nz32fae18], .data-table td[b-2nz32fae18] {
        padding: 10px 12px;
        font-size: 13px;
    }
    
    .form-row[b-2nz32fae18] {
        flex-direction: column;
    }
    
    .form-group-small[b-2nz32fae18] {
        flex: 1;
    }
    
    /* 左右分栏在移动端变为上下堆叠 */
    .join-content-wrapper[b-2nz32fae18] {
        flex-direction: column;
        min-height: auto;
    }
    
    .join-form-panel[b-2nz32fae18],
    .join-logs-panel[b-2nz32fae18] {
        flex: none;
        width: 100%;
    }
    
    .join-logs-panel[b-2nz32fae18] {
        margin-top: 16px;
    }
    
    .logs-container-wrapper[b-2nz32fae18] {
        min-height: 200px;
        max-height: 250px;
    }
    
    .modal-large[b-2nz32fae18] {
        max-width: 100%;
    }

    /* 集群左右分栏在移动端变为上下堆叠 */
    .cluster-layout[b-2nz32fae18] {
        flex-direction: column;
        min-height: auto;
    }

    .cluster-sidebar[b-2nz32fae18] {
        width: 100%;
        min-width: 0;
        max-height: 300px;
    }

    .detail-header[b-2nz32fae18] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .detail-header-right[b-2nz32fae18] {
        width: 100%;
        flex-wrap: wrap;
    }
}

/* 集群列表/详情容器 */
.cluster-layout[b-2nz32fae18] {
    width: 100%;
}

.cluster-list-card[b-2nz32fae18] {
    width: 100%;
    overflow: hidden;
}

.cluster-list-header[b-2nz32fae18] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.cluster-list-table-wrapper[b-2nz32fae18] {
    overflow-x: auto;
}

.cluster-list-table[b-2nz32fae18] {
    min-width: 1080px;
}

.cluster-list-row[b-2nz32fae18] {
    cursor: default;
}

.cluster-list-row:hover[b-2nz32fae18] {
    background: #f8fafc;
}

.cluster-name-cell[b-2nz32fae18],
.cluster-gpu-info[b-2nz32fae18],
.cluster-resource-summary[b-2nz32fae18],
.cluster-list-actions[b-2nz32fae18] {
    display: flex;
    align-items: center;
}

.cluster-name-cell[b-2nz32fae18] {
    gap: 8px;
    min-width: 150px;
}

.cluster-description[b-2nz32fae18] {
    display: block;
    max-width: 220px;
    margin: 4px 0 0 16px;
    color: #64748b;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cluster-key[b-2nz32fae18] {
    color: #475569;
    font-size: 12px;
    white-space: nowrap;
}

.cluster-status-badge[b-2nz32fae18],
.enabled-badge[b-2nz32fae18] {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 12px;
    white-space: nowrap;
}

.cluster-status-badge.healthy[b-2nz32fae18],
.enabled-badge.enabled[b-2nz32fae18] {
    color: #047857;
    background: #ecfdf5;
}

.cluster-status-badge.degraded[b-2nz32fae18] {
    color: #a16207;
    background: #fef3c7;
}

.cluster-status-badge.disconnected[b-2nz32fae18],
.cluster-status-badge.unknown[b-2nz32fae18],
.enabled-badge.disabled[b-2nz32fae18] {
    color: #6b7280;
    background: #f1f5f9;
}

.cluster-gpu-info[b-2nz32fae18],
.cluster-resource-summary[b-2nz32fae18] {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    white-space: nowrap;
}

.cluster-gpu-info small[b-2nz32fae18],
.cluster-resource-summary[b-2nz32fae18] {
    color: #64748b;
    font-size: 12px;
}

.cluster-resource-summary i[b-2nz32fae18] {
    width: 14px;
    color: #94a3b8;
}

.cluster-endpoint[b-2nz32fae18] {
    display: block;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #475569;
    font-size: 12px;
}

.cluster-list-actions[b-2nz32fae18] {
    gap: 2px;
    white-space: nowrap;
}

.list-loading[b-2nz32fae18] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 48px 16px;
    color: #64748b;
}

.cluster-list-empty[b-2nz32fae18] {
    min-height: 260px;
}

.cluster-list-empty > i[b-2nz32fae18] {
    font-size: 32px;
    color: #cbd5e1;
}

.detail-back-btn[b-2nz32fae18] {
    flex: 0 0 auto;
}

/* 兼容旧样式：详情态不再与集群 sidebar 并排 */
/* 左侧集群列表 */
.cluster-sidebar[b-2nz32fae18] {
    width: 280px;
    min-width: 280px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sidebar-header[b-2nz32fae18] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
}

.sidebar-title[b-2nz32fae18] {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

.sidebar-add-btn[b-2nz32fae18] {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #2563eb;
    color: white;
    font-size: 12px;
    padding: 0;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}

.sidebar-add-btn:hover[b-2nz32fae18] {
    background: #1d4ed8;
}

.sidebar-body[b-2nz32fae18] {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
}

.sidebar-loading[b-2nz32fae18] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
    color: #9ca3af;
    font-size: 13px;
    gap: 8px;
}

.sidebar-empty[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    color: #9ca3af;
    font-size: 13px;
    gap: 8px;
    text-align: center;
}

.sidebar-empty i[b-2nz32fae18] {
    font-size: 28px;
    color: #d1d5db;
}

.sidebar-item[b-2nz32fae18] {
    padding: 12px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
    margin-bottom: 4px;
    border: 1px solid transparent;
}

.sidebar-item:hover[b-2nz32fae18] {
    background: #f3f4f6;
}

.sidebar-item.selected[b-2nz32fae18] {
    background: #eff6ff;
    border-color: #2563eb;
    border-left-width: 3px;
    box-shadow: 0 1px 4px rgba(37, 99, 235, 0.12);
}

/* === 集群管理 卡片式主从层级(方案A) === */
/* 纳管主机置于监控总览之上：监控总览排到最后（cluster-detail 为 flex 列） */
.cluster-detail > .monitoring-section[b-2nz32fae18] { order: 1; }

/* 右侧详情卡片统一抬升，衬在浅灰画布上形成"灰画布 > 白卡"层级 */
.cluster-detail > .cluster-overview-bar[b-2nz32fae18],
.cluster-detail > .monitoring-section[b-2nz32fae18],
.cluster-detail > .nodes-card[b-2nz32fae18] {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.sidebar-item.disabled[b-2nz32fae18] {
    opacity: 0.5;
}

.sidebar-item.switching-disabled[b-2nz32fae18] {
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: none;
}

.sidebar-item.switching-disabled:hover[b-2nz32fae18] {
    background: transparent;
}

.sidebar-item.switching[b-2nz32fae18] {
    cursor: progress;
}

.sidebar-item-row[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.sidebar-item-name[b-2nz32fae18] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.sidebar-item.selected .sidebar-item-name[b-2nz32fae18] {
    color: #1d4ed8;
}

.sidebar-item-meta[b-2nz32fae18] {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.sidebar-item-stats[b-2nz32fae18] {
    display: flex;
    gap: 10px;
    font-size: 12px;
    color: #6b7280;
}

.sidebar-item-stats i[b-2nz32fae18] {
    font-size: 10px;
    color: #9ca3af;
    margin-right: 2px;
}

.sidebar-item-actions[b-2nz32fae18] {
    display: flex;
    gap: 2px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e5e7eb;
}

/* 右侧集群详情 */
.cluster-detail[b-2nz32fae18] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.detail-header[b-2nz32fae18] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin-bottom: 16px;
}

.detail-header-left[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.detail-title[b-2nz32fae18] {
    font-size: 18px;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.detail-header-right[b-2nz32fae18] {
    display: flex;
    gap: 8px;
}

.detail-empty[b-2nz32fae18] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    background: white;
    border: 1px dashed #d1d5db;
    border-radius: 12px;
    padding: 60px 40px;
    text-align: center;
    color: #9ca3af;
}

.detail-empty-icon[b-2nz32fae18] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.detail-empty h3[b-2nz32fae18] {
    font-size: 18px;
    font-weight: 600;
    color: #6b7280;
    margin: 0 0 8px 0;
}

.detail-empty p[b-2nz32fae18] {
    font-size: 14px;
    color: #9ca3af;
    margin: 0 0 20px 0;
}

/* 集群状态点 */
.cluster-status-dot[b-2nz32fae18] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.cluster-status-dot.healthy[b-2nz32fae18] { background-color: #10b981; }
.cluster-status-dot.degraded[b-2nz32fae18] { background-color: #f59e0b; }
.cluster-status-dot.unhealthy[b-2nz32fae18] { background-color: #ef4444; }

/* 集群标签 */
.cluster-badge[b-2nz32fae18] {
    padding: 1px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.disabled-badge[b-2nz32fae18] {
    background: #fef2f2;
    color: #ef4444;
}

.switching-badge[b-2nz32fae18] {
    background: #eff6ff;
    color: #2563eb;
}

.gpu-badge[b-2nz32fae18] {
    background: #eff6ff;
    color: #2563eb;
}

.env-badge[b-2nz32fae18] {
    background: #f3f4f6;
    color: #6b7280;
}

.env-badge.training-prod[b-2nz32fae18] { background: #ecfdf5; color: #10b981; }
.env-badge.inference-prod[b-2nz32fae18] { background: #fff7ed; color: #f59e0b; }
.env-badge.trial[b-2nz32fae18] { background: #fdf2f8; color: #ec4899; }

.master-workload-badge[b-2nz32fae18] {
    background: #fef3c7;
    color: #92400e;
    font-size: 11px;
}

.master-workload-badge i[b-2nz32fae18] {
    font-size: 10px;
    margin-right: 2px;
}

/* 图标按钮 */
.btn-icon[b-2nz32fae18] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 4px;
    color: #6b7280;
    font-size: 14px;
    transition: all 0.2s;
}

.btn-icon:hover[b-2nz32fae18] {
    background: #f3f4f6;
    color: #2563eb;
}

.btn-icon.danger:hover[b-2nz32fae18] {
    background: #fef2f2;
    color: #ef4444;
}

/* 小按钮 */
.btn-sm[b-2nz32fae18] {
    padding: 4px 12px;
    font-size: 12px;
}

.cluster-form-row[b-2nz32fae18] {
    display: flex;
    gap: 16px;
}

.cluster-form-row[b-2nz32fae18]  .ant-form-item {
    flex: 1;
}

.cluster-form-options[b-2nz32fae18] {
    display: flex;
    gap: 24px;
    padding: 12px 0;
    border-top: 1px solid #f0f0f0;
    margin-top: 4px;
}

.cluster-form-option-item[b-2nz32fae18] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cluster-form-option-label[b-2nz32fae18] {
    font-size: 14px;
    color: #374151;
    white-space: nowrap;
}

.cluster-form-hint[b-2nz32fae18] {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.4;
    margin-top: -4px;
    margin-bottom: 8px;
}
/* /Components/Pages/ResourceManagement/GpuAllocation.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-86ymqwork6] { min-height: 80vh; background: #f9fafb; padding: 24px; }
.page-container.console-list-page.gpu-allocation-page[b-86ymqwork6] { overflow: auto; }
.gpu-allocation-page > .main-content[b-86ymqwork6] { width: 100%; }
.main-content[b-86ymqwork6] { margin: 0 auto; }
.page-header[b-86ymqwork6] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.header-left[b-86ymqwork6] { display: flex; align-items: center; gap: 12px; }
.header-icon[b-86ymqwork6] { color: #6b7280; font-size: 18px; }
.page-title[b-86ymqwork6] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; }
.header-right[b-86ymqwork6] { display: flex; align-items: center; gap: 8px; }
/* Tab 导航 */
.tabs-container[b-86ymqwork6] { margin-bottom: 16px; }
.tabs[b-86ymqwork6] { display: flex; gap: 4px; background: white; padding: 4px; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.tabs button[b-86ymqwork6] { padding: 10px 20px; border: none; background: transparent; cursor: pointer; font-size: 14px; font-weight: 500; color: #6b7280; border-radius: 6px; transition: all 0.15s; display: flex; align-items: center; gap: 6px; }
.tabs button:hover[b-86ymqwork6] { background: #f3f4f6; color: #111827; }
.tabs button.active[b-86ymqwork6] { background: #2563eb; color: white; }
.section-header[b-86ymqwork6] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.section-left[b-86ymqwork6] { font-size: 14px; color: #6b7280; }
.section-right[b-86ymqwork6] { display: flex; gap: 8px; }
.info-banner[b-86ymqwork6] { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; margin-bottom: 16px; color: #1e40af; font-size: 14px; }
.info-banner i[b-86ymqwork6] { color: #3b82f6; }
/* 统计卡片 */
.stats-row[b-86ymqwork6] { display: flex; gap: 16px; }
.stat-card[b-86ymqwork6] { flex: 1; background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; }
.stat-value[b-86ymqwork6] { font-size: 24px; font-weight: 600; color: #111827; }
.stat-label[b-86ymqwork6] { font-size: 13px; color: #6b7280; margin-top: 4px; }
/* 按钮 */
.btn[b-86ymqwork6] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid transparent; }
.btn:disabled[b-86ymqwork6] { opacity: 0.6; cursor: not-allowed; }
.btn-primary[b-86ymqwork6] { background: #2563eb; color: white; }
.btn-primary:hover:not(:disabled)[b-86ymqwork6] { background: #1d4ed8; }
.btn-default[b-86ymqwork6] { background: white; color: #374151; border-color: #d1d5db; }
.btn-danger[b-86ymqwork6] { background: #ef4444; color: white; }
.btn-link[b-86ymqwork6] { background: none; border: none; color: #2563eb; cursor: pointer; font-size: 14px; padding: 4px 8px; }
.btn-link.danger[b-86ymqwork6] { color: #ef4444; }
/* 表格 */
.card[b-86ymqwork6] { background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.table-wrapper[b-86ymqwork6] { overflow-x: auto; }
.data-table[b-86ymqwork6] { width: 100%; min-width: 980px; border-collapse: collapse; }
.data-table th[b-86ymqwork6] { text-align: left; padding: 12px 16px; background: #f9fafb; font-size: 12px; font-weight: 500; color: #6b7280; border-bottom: 1px solid #e5e7eb; }
.data-table td[b-86ymqwork6] { padding: 16px; font-size: 14px; color: #111827; border-bottom: 1px solid #f3f4f6; }
.data-row:hover[b-86ymqwork6] { background: #f9fafb; }
/* 加载/错误 */
.loading-container[b-86ymqwork6], .error-container[b-86ymqwork6] { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.loading-spinner[b-86ymqwork6] { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin-b-86ymqwork6 1s linear infinite; }
@keyframes spin-b-86ymqwork6 { to { transform: rotate(360deg); } }
.loading-text[b-86ymqwork6] { margin-top: 16px; color: #6b7280; }
.error-title[b-86ymqwork6] { font-size: 18px; font-weight: 600; color: #111827; margin: 0 0 8px 0; }
.error-message[b-86ymqwork6] { font-size: 14px; color: #6b7280; margin: 0 0 16px 0; }
/* 弹窗 */
.modal-overlay[b-86ymqwork6] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
.gpu-modal-dialog[b-86ymqwork6] { background: white; border-radius: 8px; width: 100%; max-width: 600px; max-height: 90vh; overflow-y: auto; pointer-events: auto; }
.modal-header[b-86ymqwork6] { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #e5e7eb; }
.modal-title[b-86ymqwork6] { font-size: 16px; font-weight: 600; color: #111827; margin: 0; }
.modal-close[b-86ymqwork6] { width: 32px; height: 32px; border: none; background: #f3f4f6; border-radius: 6px; cursor: pointer; color: #6b7280; font-size: 18px; }
.modal-body[b-86ymqwork6] { padding: 20px; }
.modal-footer[b-86ymqwork6] { display: flex; justify-content: flex-end; gap: 12px; padding: 16px 20px; border-top: 1px solid #e5e7eb; }
/* 表单 */
.form-grid[b-86ymqwork6] { display: grid; gap: 16px; }
.form-item[b-86ymqwork6] { display: flex; flex-direction: column; gap: 4px; }
.form-label[b-86ymqwork6] { font-size: 13px; font-weight: 500; color: #374151; }
.form-label.required[b-86ymqwork6]::after { content: " *"; color: #ef4444; }
.required[b-86ymqwork6] { color: #ef4444; }
.form-input[b-86ymqwork6] { padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; color: #111827; width: 100%; box-sizing: border-box; }
.form-input:disabled[b-86ymqwork6] { background: #f9fafb; color: #6b7280; }
.form-hint[b-86ymqwork6] { font-size: 12px; color: #6b7280; margin-top: 4px; }
.checkbox-label[b-86ymqwork6] { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; color: #374151; }
.checkbox-label input[type="checkbox"][b-86ymqwork6] { width: 16px; height: 16px; cursor: pointer; }
code[b-86ymqwork6] { background: #f3f4f6; padding: 2px 6px; border-radius: 4px; }
/* 切分展开区 */
.split-expand-content[b-86ymqwork6] { padding: 14px 20px; border-top: 1px solid #e5e7eb; }
.split-expand-header[b-86ymqwork6] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.split-expand-header .btn[b-86ymqwork6] { margin-left: 8px; }
.split-meta[b-86ymqwork6] { font-size: 12px; color: #6b7280; margin-bottom: 8px; }
.btn-sm[b-86ymqwork6] { padding: 4px 10px; font-size: 13px; }
.split-blocks[b-86ymqwork6] { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px; }
.split-block[b-86ymqwork6] { padding: 6px 10px; border-radius: 4px; font-size: 12px; display: flex; justify-content: space-between; align-items: center; }
.split-block.occupied[b-86ymqwork6] { background: #e6f7ff; border: 1px solid #91d5ff; }
.split-block.idle[b-86ymqwork6] { background: #f6ffed; border: 1px solid #d9f7be; }
.split-block .sb-spec[b-86ymqwork6] { color: #6b7280; }
.split-block .sb-owner[b-86ymqwork6] { font-weight: 500; }
.split-block .sb-owner.idle[b-86ymqwork6] { color: #16a34a; }
/* 节点卡片概览 */
.node-card-grid[b-86ymqwork6] { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; margin-top: 16px; }
.node-card-click[b-86ymqwork6] { cursor: pointer; }
.node-summary-card[b-86ymqwork6] { height: 100%; border-radius: 12px; transition: transform .15s ease, box-shadow .15s ease; }
.node-card-click:hover .node-summary-card[b-86ymqwork6] { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 23, 42, .10); }
.node-card-header[b-86ymqwork6] { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.node-title-wrap[b-86ymqwork6] { display: flex; gap: 12px; align-items: center; min-width: 0; }
.node-icon[b-86ymqwork6] { width: 40px; height: 40px; border-radius: 10px; background: #eff6ff; color: #2563eb; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.node-icon-img[b-86ymqwork6] { width: 26px; height: 26px; object-fit: contain; display: block; }
.node-title[b-86ymqwork6] { margin: 0; font-size: 16px; color: #111827; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.node-ready-badge[b-86ymqwork6] { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.node-ready-badge.ready[b-86ymqwork6] { background: #dcfce7; color: #16a34a; }
.node-ready-badge.notready[b-86ymqwork6] { background: #fee2e2; color: #dc2626; }
.node-ready-badge.unknown[b-86ymqwork6] { background: #f3f4f6; color: #6b7280; }
.node-notready-note[b-86ymqwork6] { display: flex; align-items: center; gap: 6px; margin: 10px 0 12px; padding: 8px 10px; border: 1px solid #fde68a; border-radius: 8px; background: #fffbeb; color: #92400e; font-size: 12px; }
.node-subtitle[b-86ymqwork6] { color: #6b7280; font-size: 12px; margin-top: 2px; }
.node-open-hint[b-86ymqwork6] { color: #2563eb; font-size: 12px; white-space: nowrap; margin-top: 2px; }
.node-type-list[b-86ymqwork6] { display: flex; flex-wrap: wrap; gap: 6px; min-height: 26px; margin-bottom: 14px; }
.node-type-chip[b-86ymqwork6] { padding: 3px 8px; border-radius: 999px; background: #f3f4f6; color: #374151; font-size: 12px; }
.node-status-grid[b-86ymqwork6] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; }
.node-status-grid div[b-86ymqwork6] { background: #f9fafb; border: 1px solid #eef2f7; border-radius: 8px; padding: 8px; text-align: center; }
.node-status-grid strong[b-86ymqwork6] { display: block; font-size: 18px; color: #111827; }
.node-status-grid span[b-86ymqwork6] { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; }
.node-card-footer[b-86ymqwork6] { display: flex; flex-direction: column; gap: 6px; color: #6b7280; font-size: 12px; border-top: 1px solid #f3f4f6; padding-top: 12px; }
.cluster-badge[b-86ymqwork6] { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: #f3f4f6; color: #374151; font-size: 13px; }
/* 节点行 + 多目标选择器 */
.node-row td[b-86ymqwork6] { background: #f3f4f6; border-bottom: 1px solid #e5e7eb; }
.node-row strong[b-86ymqwork6] { font-size: 14px; color: #111827; }
.node-group-header[b-86ymqwork6] { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.picker-list[b-86ymqwork6] { border: 1px solid #d1d5db; border-radius: 6px; max-height: 160px; overflow-y: auto; padding: 4px; }
.picker-item[b-86ymqwork6] { display: flex; align-items: center; gap: 6px; padding: 4px 6px; font-size: 13px; cursor: pointer; border-radius: 4px; }
.picker-item:hover[b-86ymqwork6] { background: #f3f4f6; }
.picker-item.active[b-86ymqwork6] { background: #e0e7ff; color: #1e3a8a; }
.picker-item input[b-86ymqwork6] { width: 14px; height: 14px; }
.picker-disabled[b-86ymqwork6] { opacity: 0.6; cursor: not-allowed; }
.picker-disabled span[b-86ymqwork6] { color: #9ca3af; }
.picker-note[b-86ymqwork6] { font-size: 11px; color: #b45309; margin-left: auto; }
.picker-empty[b-86ymqwork6] { color: #9ca3af; font-size: 12px; padding: 8px; text-align: center; }
.quick-tpl-row[b-86ymqwork6] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 10px 12px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px; }
.quick-tpl-label[b-86ymqwork6] { font-size: 13px; font-weight: 600; color: #92400e; margin-right: 2px; }
.quick-tpl-chip[b-86ymqwork6] { font-size: 12px; padding: 4px 12px; background: #fff; color: #374151; border: 1px solid #d1d5db; border-radius: 16px; cursor: pointer; transition: all .15s; }
.quick-tpl-chip:hover:not(:disabled)[b-86ymqwork6] { background: #2563eb; color: #fff; border-color: #2563eb; }
.quick-tpl-chip:disabled[b-86ymqwork6] { opacity: .5; cursor: not-allowed; }
.quick-tpl-hint[b-86ymqwork6] { font-size: 11px; color: #a16207; margin-left: auto; }

/* 多卡专用步骤工作流 */
.multi-card-workflow-dialog[b-86ymqwork6] { max-width: 860px; max-height: calc(100vh - 40px); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; }
.multi-card-steps[b-86ymqwork6] { padding: 16px 24px; border-bottom: 1px solid #e5e7eb; overflow-x: auto; }
.multi-card-steps[b-86ymqwork6]  .ant-steps-item-title { font-size: 13px; font-weight: 600; }
.multi-card-steps[b-86ymqwork6]  .ant-steps-item-description { max-width: 180px; font-size: 12px; }
.multi-card-workflow-body[b-86ymqwork6] { min-height: 0; overflow-y: auto; padding: 20px 22px 24px; }
.multi-card-step-panel[b-86ymqwork6] { min-width: 0; }
.multi-card-section-heading[b-86ymqwork6] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.multi-card-section-heading h4[b-86ymqwork6] { margin: 0; color: #111827; font-size: 16px; }
.multi-card-section-heading p[b-86ymqwork6] { margin: 4px 0 0; color: #64748b; font-size: 13px; }
.multi-card-selection-count[b-86ymqwork6] { flex: 0 0 auto; padding: 4px 8px; border-radius: 4px; background: #eff6ff; color: #1d4ed8; font-size: 12px; }
.multi-card-info[b-86ymqwork6] { margin: 0 0 14px; background: #ecfeff; border-color: #a5f3fc; color: #0e7490; }
.multi-card-resource-list[b-86ymqwork6] { max-height: 300px; }
.multi-card-resource-item[b-86ymqwork6] { min-height: 58px; padding: 9px 12px; border: 1px solid transparent; }
.multi-card-resource-item:has(input:checked)[b-86ymqwork6] { border-color: #93c5fd; background: #f8fbff; }
.multi-card-resource-main[b-86ymqwork6] { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.multi-card-resource-main strong[b-86ymqwork6] { color: #111827; font-size: 13px; }
.multi-card-resource-main small[b-86ymqwork6] { overflow: hidden; color: #64748b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.multi-card-spec-grid[b-86ymqwork6] { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
.multi-card-target-hint[b-86ymqwork6] { display: block; margin-top: 12px; }
.multi-card-confirm-grid[b-86ymqwork6] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dbe1ea; border-radius: 6px; }
.multi-card-confirm-grid > div[b-86ymqwork6] { min-height: 72px; display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-right: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; }
.multi-card-confirm-grid > div:nth-child(2n)[b-86ymqwork6] { border-right: 0; }
.multi-card-confirm-grid > div:nth-last-child(-n+2)[b-86ymqwork6] { border-bottom: 0; }
.multi-card-confirm-grid span[b-86ymqwork6], .multi-card-confirm-grid small[b-86ymqwork6] { color: #64748b; font-size: 11px; }
.multi-card-confirm-grid strong[b-86ymqwork6] { color: #111827; font-size: 13px; }
.multi-card-confirm-grid small[b-86ymqwork6] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-card-confirm-scope[b-86ymqwork6] { grid-column: 1 / -1; border-right: 0 !important; }
.multi-card-warning[b-86ymqwork6] { margin-top: 12px; background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.multi-card-workflow-footer[b-86ymqwork6] { grid-template-columns: auto 1fr auto auto; }
@media (max-width: 700px) {
    .multi-card-workflow-dialog[b-86ymqwork6] { max-height: calc(100vh - 16px); }
    .multi-card-steps[b-86ymqwork6] { padding: 12px 8px; }
    .multi-card-steps[b-86ymqwork6]  .ant-steps { min-width: 560px; }
    .multi-card-workflow-body[b-86ymqwork6] { padding: 16px 14px 20px; }
    .multi-card-spec-grid[b-86ymqwork6], .multi-card-confirm-grid[b-86ymqwork6] { grid-template-columns: 1fr; }
    .multi-card-confirm-grid > div[b-86ymqwork6] { border-right: 0 !important; border-bottom: 1px solid #e5e7eb !important; }
    .multi-card-confirm-grid > div:last-child[b-86ymqwork6] { border-bottom: 0 !important; }
    .multi-card-confirm-scope[b-86ymqwork6] { grid-column: auto; }
}

/* 统一 GPU 资源视图 */
.gpu-stats-row[b-86ymqwork6] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.gpu-stats-row .stat-card[b-86ymqwork6] { min-width: 0; padding: 14px 16px; }
.gpu-stats-row .stat-value[b-86ymqwork6] { line-height: 1.1; }
.stat-denominator[b-86ymqwork6] { color: #94a3b8; font-size: 15px; font-weight: 500; }
.status-free[b-86ymqwork6] { color: #64748b; }
.status-whole[b-86ymqwork6] { color: #2563eb; }
.status-vgpu[b-86ymqwork6] { color: #0891b2; }

.allocation-chart-grid[b-86ymqwork6] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(240px, .75fr); gap: 12px; margin-bottom: 16px; }
.allocation-panel[b-86ymqwork6] { min-width: 0; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; }
.panel-heading[b-86ymqwork6] { display: flex; align-items: flex-start; justify-content: space-between; min-height: 40px; }
.panel-heading h2[b-86ymqwork6] { margin: 0; color: #111827; font-size: 15px; font-weight: 600; }
.panel-heading span[b-86ymqwork6] { display: block; margin-top: 3px; color: #6b7280; font-size: 12px; }
.allocation-guide[b-86ymqwork6] { display: flex; flex-direction: column; }
.guide-list[b-86ymqwork6] { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: 16px; padding: 8px 2px 2px; }
.guide-list > div[b-86ymqwork6] { display: flex; align-items: center; gap: 10px; }
.guide-icon[b-86ymqwork6] { display: inline-flex; width: 34px; height: 34px; flex: 0 0 34px; align-items: center; justify-content: center; border-radius: 6px; }
.guide-icon.whole[b-86ymqwork6] { color: #2563eb; background: #eff6ff; }
.guide-icon.split[b-86ymqwork6] { color: #0891b2; background: #ecfeff; }
.guide-icon.free[b-86ymqwork6] { color: #64748b; background: #f1f5f9; font-size: 8px; }
.guide-list p[b-86ymqwork6] { margin: 0; color: #111827; font-size: 13px; }
.guide-list small[b-86ymqwork6] { display: block; margin-top: 2px; color: #6b7280; font-size: 11px; font-weight: 400; line-height: 1.4; }

.resource-list-section[b-86ymqwork6] { margin-top: 2px; }
.list-heading[b-86ymqwork6] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 10px; }
.list-heading h2[b-86ymqwork6] { margin: 0; color: #111827; font-size: 16px; font-weight: 600; }
.list-heading span[b-86ymqwork6] { display: block; margin-top: 3px; color: #6b7280; font-size: 12px; }
.gpu-filter-bar[b-86ymqwork6] { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 10px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; }
.gpu-filter-bar select[b-86ymqwork6] { width: 160px; height: 36px; padding: 0 30px 0 10px; color: #374151; background: #fff; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.search-field[b-86ymqwork6] { position: relative; width: min(360px, 32vw); min-width: 240px; }
.search-field i[b-86ymqwork6] { position: absolute; top: 50%; left: 11px; color: #9ca3af; font-size: 12px; transform: translateY(-50%); }
.search-field input[b-86ymqwork6] { width: 100%; height: 36px; padding: 0 12px 0 32px; box-sizing: border-box; color: #111827; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.search-field input:focus[b-86ymqwork6], .gpu-filter-bar select:focus[b-86ymqwork6] { border-color: #2563eb; outline: 2px solid #dbeafe; outline-offset: 0; }
.btn-reset[b-86ymqwork6] { height: 36px; margin-left: auto; padding: 6px 10px; white-space: nowrap; }

.resource-table-card[b-86ymqwork6] { overflow: hidden; }
.gpu-resource-table[b-86ymqwork6] { min-width: 960px; table-layout: fixed; }
.gpu-resource-table th:nth-child(1)[b-86ymqwork6] { width: 115px; }
.gpu-resource-table th:nth-child(2)[b-86ymqwork6] { width: 145px; }
.gpu-resource-table th:nth-child(3)[b-86ymqwork6] { width: 110px; }
.gpu-resource-table th:nth-child(4)[b-86ymqwork6] { width: 130px; }
.gpu-resource-table th:nth-child(5)[b-86ymqwork6] { width: 90px; }
.gpu-resource-table th:nth-child(6)[b-86ymqwork6] { width: 150px; }
.gpu-resource-table th:nth-child(7)[b-86ymqwork6] { width: 220px; }
.gpu-resource-table td[b-86ymqwork6] { padding: 12px 16px; vertical-align: middle; }
.node-cell[b-86ymqwork6], .gpu-device-cell[b-86ymqwork6], .memory-cell[b-86ymqwork6] { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.node-cell strong[b-86ymqwork6], .gpu-device-cell strong[b-86ymqwork6] { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.node-cell .node-ready-badge[b-86ymqwork6] { align-self: flex-start; }
.gpu-device-cell code[b-86ymqwork6] { align-self: flex-start; max-width: 100%; overflow: hidden; color: #64748b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.resource-type-tag[b-86ymqwork6] { display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px; border: 1px solid transparent; border-radius: 4px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.resource-type-tag.whole[b-86ymqwork6] { color: #1d4ed8; background: #eff6ff; border-color: #bfdbfe; }
.resource-type-tag.vgpu[b-86ymqwork6] { color: #0e7490; background: #ecfeff; border-color: #a5f3fc; }
.resource-type-tag.shared[b-86ymqwork6] { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.resource-type-tag.free[b-86ymqwork6] { color: #475569; background: #f8fafc; border-color: #e2e8f0; }
.cell-secondary[b-86ymqwork6] { display: block; margin-top: 5px; color: #6b7280; font-size: 11px; }
.memory-cell > div:first-child[b-86ymqwork6] { font-size: 12px; }
.memory-cell > div:first-child span[b-86ymqwork6] { color: #94a3b8; }
.memory-cell small[b-86ymqwork6] { color: #6b7280; font-size: 11px; }
.memory-track[b-86ymqwork6] { width: 100%; height: 5px; overflow: hidden; background: #e5e7eb; border-radius: 2px; }
.memory-track span[b-86ymqwork6] { display: block; height: 100%; min-width: 0; border-radius: 2px; }
.memory-track span.whole[b-86ymqwork6] { background: #2563eb; }
.memory-track span.vgpu[b-86ymqwork6] { background: #0891b2; }
.memory-track span.shared[b-86ymqwork6] { background: #16a34a; }
.memory-track span.free[b-86ymqwork6] { background: #cbd5e1; }
.allocation-status[b-86ymqwork6] { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; white-space: nowrap; }
.allocation-status i[b-86ymqwork6] { font-size: 7px; }
.allocation-status.assigned[b-86ymqwork6] { color: #15803d; }
.allocation-status.partial[b-86ymqwork6] { color: #b45309; }
.allocation-status.free[b-86ymqwork6] { color: #64748b; }
.owner-list[b-86ymqwork6] { display: flex; min-width: 0; flex-wrap: wrap; gap: 4px; }
.owner-chip[b-86ymqwork6] { display: inline-flex; max-width: 130px; align-items: center; gap: 4px; padding: 2px 6px; overflow: hidden; border-radius: 4px; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.owner-chip i[b-86ymqwork6] { flex: 0 0 auto; }
.owner-chip.department[b-86ymqwork6] { color: #1d4ed8; background: #eff6ff; }
.owner-chip.user[b-86ymqwork6] { color: #92400e; background: #fffbeb; }
.owner-more[b-86ymqwork6] { align-self: center; color: #6b7280; font-size: 11px; }
.owner-empty[b-86ymqwork6] { color: #9ca3af; font-size: 12px; }
.operation-column[b-86ymqwork6] { text-align: right !important; }
.row-actions[b-86ymqwork6] { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 2px; }
.row-actions .btn-link[b-86ymqwork6] { padding: 4px 6px; font-size: 12px; white-space: nowrap; }
.row-actions .btn-sm[b-86ymqwork6] { white-space: nowrap; }
.table-empty[b-86ymqwork6] { display: flex; min-height: 180px; flex-direction: column; align-items: center; justify-content: center; color: #9ca3af; }
.table-empty i[b-86ymqwork6] { margin-bottom: 10px; font-size: 30px; }
.table-empty strong[b-86ymqwork6] { color: #4b5563; font-size: 14px; }
.table-empty span[b-86ymqwork6] { margin-top: 4px; font-size: 12px; }

/* vGPU 单元详情弹窗 */
.resource-detail-dialog[b-86ymqwork6] { max-width: 980px; }
.modal-subtitle[b-86ymqwork6] { margin-top: 3px; color: #6b7280; font-size: 12px; }
.detail-summary-grid[b-86ymqwork6] { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid #e5e7eb; border-radius: 6px; }
.detail-summary-grid > div[b-86ymqwork6] { padding: 12px 14px; border-right: 1px solid #e5e7eb; }
.detail-summary-grid > div:last-child[b-86ymqwork6] { border-right: 0; }
.detail-summary-grid span[b-86ymqwork6] { display: block; color: #6b7280; font-size: 11px; }
.detail-summary-grid strong[b-86ymqwork6] { display: block; margin-top: 4px; color: #111827; font-size: 16px; }
.detail-section[b-86ymqwork6] { margin-top: 20px; }
.detail-section-heading[b-86ymqwork6] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 8px; }
.detail-section-heading h4[b-86ymqwork6] { margin: 0; color: #111827; font-size: 14px; }
.detail-section-heading span[b-86ymqwork6] { display: block; margin-top: 2px; color: #6b7280; font-size: 11px; }
.detail-table-wrap[b-86ymqwork6] { overflow-x: auto; border: 1px solid #e5e7eb; border-radius: 6px; }
.detail-table[b-86ymqwork6] { width: 100%; min-width: 760px; border-collapse: collapse; }
.detail-table th[b-86ymqwork6] { padding: 9px 12px; color: #6b7280; background: #f9fafb; border-bottom: 1px solid #e5e7eb; font-size: 11px; font-weight: 500; text-align: left; }
.detail-table td[b-86ymqwork6] { padding: 10px 12px; color: #374151; border-bottom: 1px solid #f3f4f6; font-size: 12px; vertical-align: middle; }
.detail-table tr:last-child td[b-86ymqwork6] { border-bottom: 0; }
.detail-table td:last-child[b-86ymqwork6], .detail-table th:last-child[b-86ymqwork6] { text-align: right; }
.unit-spec[b-86ymqwork6] { color: #111827; font-weight: 500; }
.unit-spec + small[b-86ymqwork6] { color: #6b7280; }
.detail-empty[b-86ymqwork6] { height: 80px; color: #9ca3af !important; text-align: center !important; }

@media (max-width: 1280px) {
    .gpu-stats-row[b-86ymqwork6] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .allocation-chart-grid[b-86ymqwork6] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .allocation-guide[b-86ymqwork6] { grid-column: 1 / -1; }
    .guide-list[b-86ymqwork6] { flex-direction: row; justify-content: flex-start; }
    .guide-list > div[b-86ymqwork6] { flex: 1; }
    .gpu-filter-bar[b-86ymqwork6] { flex-wrap: wrap; }
    .search-field[b-86ymqwork6] { width: min(420px, 100%); flex: 1 1 320px; }
}

@media (max-width: 768px) {
    .page-container[b-86ymqwork6] { padding: 16px; }
    .page-header[b-86ymqwork6] { align-items: flex-start; flex-direction: column; gap: 10px; }
    .header-right[b-86ymqwork6] { width: 100%; }
    .header-right select[b-86ymqwork6] { flex: 1; }
    .gpu-stats-row[b-86ymqwork6] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .allocation-chart-grid[b-86ymqwork6] { grid-template-columns: 1fr; }
    .allocation-guide[b-86ymqwork6] { grid-column: auto; }
    .guide-list[b-86ymqwork6] { flex-direction: column; }
    .gpu-filter-bar[b-86ymqwork6] { align-items: stretch; flex-direction: column; }
    .gpu-filter-bar select[b-86ymqwork6], .search-field[b-86ymqwork6] { width: 100%; min-width: 0; }
    .btn-reset[b-86ymqwork6] { margin-left: 0; }
    .detail-summary-grid[b-86ymqwork6] { grid-template-columns: repeat(2, 1fr); }
    .detail-summary-grid > div:nth-child(2)[b-86ymqwork6] { border-right: 0; }
    .detail-summary-grid > div:nth-child(-n+2)[b-86ymqwork6] { border-bottom: 1px solid #e5e7eb; }
}
/* /Components/Pages/ResourceManagement/GpuAllocationAddSplit.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-3u8pk70uog] { min-height: 80vh; background: #f9fafb; padding: 24px; height: 100%; }
.main-content[b-3u8pk70uog] { margin: 0 auto; }
.page-header[b-3u8pk70uog] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.header-left[b-3u8pk70uog], .header-right[b-3u8pk70uog] { display: flex; align-items: center; gap: 12px; }
.page-title[b-3u8pk70uog] { font-size: 20px; margin: 0; color: #111827; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.node-ready-badge[b-3u8pk70uog] { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.node-ready-badge.ready[b-3u8pk70uog] { background: #dcfce7; color: #16a34a; }
.node-ready-badge.notready[b-3u8pk70uog] { background: #fee2e2; color: #dc2626; }
.node-ready-badge.unknown[b-3u8pk70uog] { background: #f3f4f6; color: #6b7280; }
.page-subtitle[b-3u8pk70uog] { margin: 4px 0 0; color: #6b7280; font-size: 13px; }
.form-container[b-3u8pk70uog] { display: grid; gap: 16px; }
.form-section[b-3u8pk70uog] { background: white; border: 1px solid #e5e7eb; border-radius: 10px; padding: 18px; }
.section-header[b-3u8pk70uog] { margin-bottom: 14px; }
.step-header[b-3u8pk70uog] { display: flex; align-items: flex-start; gap: 12px; }
.step-badge[b-3u8pk70uog] { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 999px; background: #2563eb; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; line-height: 1; box-shadow: 0 2px 6px rgba(37, 99, 235, .25); }
.section-header h3[b-3u8pk70uog] { margin: 0; font-size: 16px; color: #111827; display: flex; align-items: center; gap: 8px; }
.section-header h3 i[b-3u8pk70uog] { color: #6b7280; }
.section-header p[b-3u8pk70uog] { margin: 4px 0 0; color: #6b7280; font-size: 13px; }
.context-section[b-3u8pk70uog] { display: grid; gap: 14px; }
.resource-summary-grid[b-3u8pk70uog] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.resource-summary-card[b-3u8pk70uog] { border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px; background: #f9fafb; display: grid; gap: 4px; }
.resource-summary-card span[b-3u8pk70uog] { color: #6b7280; font-size: 12px; }
.resource-summary-card strong[b-3u8pk70uog] { color: #111827; font-size: 20px; }
.resource-summary-card small[b-3u8pk70uog] { color: #9ca3af; font-size: 12px; }
.context-columns[b-3u8pk70uog] { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); gap: 14px; align-items: start; }
.context-panel[b-3u8pk70uog] { border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; padding: 14px; min-width: 0; }
.context-panel-header[b-3u8pk70uog] { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.context-panel-header h4[b-3u8pk70uog] { margin: 0; color: #111827; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.context-panel-header span[b-3u8pk70uog] { color: #6b7280; font-size: 12px; }
.existing-split-list[b-3u8pk70uog] { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; max-height: 360px; overflow-y: auto; padding-right: 4px; }
.existing-split-card[b-3u8pk70uog] { border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px; background: #fafafa; display: grid; gap: 8px; }
.existing-split-title[b-3u8pk70uog] { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 13px; color: #111827; }
.existing-split-title span[b-3u8pk70uog] { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.existing-split-title code[b-3u8pk70uog], .remaining-gpu-item code[b-3u8pk70uog] { color: #6b7280; font-size: 12px; font-family: monospace; background: #fff; border: 1px solid #e5e7eb; border-radius: 999px; padding: 1px 6px; }
.existing-split-units[b-3u8pk70uog] { display: flex; flex-wrap: wrap; gap: 6px; }
.existing-unit[b-3u8pk70uog] { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; border: 1px solid #bbf7d0; background: #f0fdf4; color: #166534; font-size: 12px; max-width: 100%; }
.existing-unit.occupied[b-3u8pk70uog] { border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; }
.existing-unit.group[b-3u8pk70uog] { border-color: #a5f3fc; background: #ecfeff; color: #0e7490; }
.existing-unit small[b-3u8pk70uog] { color: inherit; opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.remaining-gpu-list[b-3u8pk70uog] { display: grid; gap: 8px; max-height: 360px; overflow-y: auto; padding-right: 4px; }
.remaining-gpu-item[b-3u8pk70uog] { border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px; background: #fafafa; display: grid; gap: 6px; }
.remaining-gpu-item.available[b-3u8pk70uog] { border-color: #bfdbfe; background: #eff6ff; }
.remaining-gpu-item.disabled[b-3u8pk70uog] { opacity: .72; }
.remaining-gpu-item > div:first-child[b-3u8pk70uog] { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.remaining-gpu-meta[b-3u8pk70uog] { display: flex; flex-wrap: wrap; gap: 6px; color: #4b5563; font-size: 12px; }
.remaining-gpu-meta span[b-3u8pk70uog] { background: rgba(255,255,255,.8); border-radius: 999px; padding: 2px 8px; }
.empty-inline[b-3u8pk70uog] { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 120px; border: 1px dashed #d1d5db; border-radius: 8px; color: #9ca3af; background: #fafafa; font-size: 13px; }
.gpu-select-grid[b-3u8pk70uog] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; align-items: start; }
.gpu-option[b-3u8pk70uog] { display: grid; gap: 10px; border: 1px solid #e5e7eb; border-radius: 10px; padding: 12px; cursor: pointer; background: #fff; }
.gpu-option.selected[b-3u8pk70uog] { border-color: #2563eb; background: #eff6ff; }
.gpu-option.disabled[b-3u8pk70uog] { opacity: .68; cursor: not-allowed; background: #f9fafb; border-style: dashed; }
.gpu-option.disabled *[b-3u8pk70uog] { cursor: not-allowed; }
.gpu-option input[b-3u8pk70uog] { width: 16px; height: 16px; }
.gpu-option-main[b-3u8pk70uog] { display: grid; gap: 4px; }
.gpu-option-title[b-3u8pk70uog] { font-weight: 600; color: #111827; display: flex; gap: 6px; align-items: center; }
.gpu-option-uuid[b-3u8pk70uog] { font-size: 12px; color: #6b7280; font-family: monospace; }
.gpu-option-stats[b-3u8pk70uog] { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; color: #374151; }
.gpu-option-stats span[b-3u8pk70uog] { padding: 2px 8px; border-radius: 999px; background: #f3f4f6; }
.gpu-option-disabled-reason[b-3u8pk70uog] { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 3px 9px; border-radius: 999px; background: #fee2e2; color: #b91c1c; font-size: 12px; font-weight: 600; }
.mode-cards[b-3u8pk70uog] { display: grid; grid-template-columns: repeat(2, minmax(260px, 1fr)); gap: 12px; align-items: stretch; }
.mode-card[b-3u8pk70uog] { border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 8px; cursor: pointer; min-height: 88px; justify-content: center; }
.mode-card.disabled[b-3u8pk70uog] { opacity: .65; cursor: not-allowed; }
.mode-card-main[b-3u8pk70uog] { display: flex; align-items: center; gap: 10px; }
.mode-card-main input[b-3u8pk70uog] { width: 16px; height: 16px; flex: 0 0 16px; margin: 0; }
.mode-card-main span[b-3u8pk70uog] { display: flex; align-items: center; gap: 8px; font-weight: 600; color: #111827; line-height: 20px; }
.mode-card small[b-3u8pk70uog] { color: #6b7280; padding-left: 26px; line-height: 18px; }
.resource-limit-grid[b-3u8pk70uog] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.resource-limit-grid span[b-3u8pk70uog] { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: #f3f4f6; color: #374151; font-size: 12px; }
.resource-limit-grid i[b-3u8pk70uog] { color: #6b7280; }
.form-grid[b-3u8pk70uog] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.form-grid.two[b-3u8pk70uog] { grid-template-columns: 1fr 1fr; }
.form-item[b-3u8pk70uog] { display: flex; flex-direction: column; gap: 6px; }
.form-item.full-row[b-3u8pk70uog] { grid-column: 1 / -1; }
.form-label[b-3u8pk70uog] { font-size: 13px; font-weight: 600; color: #374151; }
.form-label.required[b-3u8pk70uog]::after { content: " *"; color: #ef4444; }
.form-input[b-3u8pk70uog] { padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; }
.form-hint[b-3u8pk70uog] { color: #6b7280; font-size: 12px; }
.picker-list[b-3u8pk70uog] { border: 1px solid #d1d5db; border-radius: 6px; max-height: 240px; overflow-y: auto; padding: 4px; background: white; }
.picker-item[b-3u8pk70uog] { display: flex; align-items: center; gap: 6px; padding: 5px 6px; font-size: 13px; cursor: pointer; border-radius: 4px; }
.picker-item:hover[b-3u8pk70uog] { background: #f3f4f6; }
.picker-disabled[b-3u8pk70uog] { opacity: .6; cursor: not-allowed; }
.picker-note[b-3u8pk70uog] { font-size: 11px; color: #b45309; margin-left: auto; }
.info-banner[b-3u8pk70uog] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; color: #1e40af; font-size: 13px; margin-bottom: 12px; }
.info-banner.danger[b-3u8pk70uog] { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.info-banner.warning[b-3u8pk70uog] { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.form-actions[b-3u8pk70uog] { display: flex; justify-content: flex-end; gap: 10px; }
.btn[b-3u8pk70uog] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; border: 1px solid transparent; font-size: 14px; cursor: pointer; }
.btn-primary[b-3u8pk70uog] { background: #2563eb; color: white; }
.btn-default[b-3u8pk70uog] { background: white; color: #374151; border-color: #d1d5db; }
.loading-container[b-3u8pk70uog], .error-container[b-3u8pk70uog] { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 360px; background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.loading-spinner[b-3u8pk70uog] { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin-b-3u8pk70uog 1s linear infinite; }
@keyframes spin-b-3u8pk70uog { to { transform: rotate(360deg); } }
@media (max-width: 1024px) { .context-columns[b-3u8pk70uog] { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .page-header[b-3u8pk70uog], .form-grid.two[b-3u8pk70uog], .mode-cards[b-3u8pk70uog] { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; } .context-panel-header[b-3u8pk70uog] { flex-direction: column; align-items: flex-start; } }
/* /Components/Pages/ResourceManagement/GpuAllocationNodeDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-r63murnwp7] { min-height: 80vh; background: #f9fafb; padding: 24px; }
.main-content[b-r63murnwp7] { margin: 0 auto; }
.page-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.header-left[b-r63murnwp7] { display: flex; align-items: center; gap: 12px; }
.header-icon[b-r63murnwp7] { color: #6b7280; font-size: 18px; }
.header-icon-wrap[b-r63murnwp7] { width: 32px; height: 32px; border-radius: 8px; background: #eff6ff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.header-icon-img[b-r63murnwp7] { width: 22px; height: 22px; object-fit: contain; display: block; }
.page-title[b-r63murnwp7] { font-size: 18px; font-weight: 600; color: #111827; margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.node-ready-badge[b-r63murnwp7] { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.node-ready-badge.ready[b-r63murnwp7] { background: #dcfce7; color: #16a34a; }
.node-ready-badge.notready[b-r63murnwp7] { background: #fee2e2; color: #dc2626; }
.node-ready-badge.unknown[b-r63murnwp7] { background: #f3f4f6; color: #6b7280; }
.node-notready-banner[b-r63murnwp7] { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.node-notready-banner i[b-r63murnwp7] { color: #f59e0b; }
.header-right[b-r63murnwp7] { display: flex; align-items: center; gap: 8px; }
.section-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.section-left[b-r63murnwp7] { font-size: 14px; color: #6b7280; }
.section-right[b-r63murnwp7] { display: flex; gap: 8px; }
.info-banner[b-r63murnwp7] { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; margin-bottom: 16px; color: #1e40af; font-size: 14px; }
.info-banner i[b-r63murnwp7] { color: #3b82f6; }
/* 统计卡片 */
.stats-row[b-r63murnwp7] { display: flex; gap: 16px; }
.stat-card[b-r63murnwp7] { flex: 1; background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; }
.stat-value[b-r63murnwp7] { font-size: 24px; font-weight: 600; color: #111827; }
.stat-label[b-r63murnwp7] { font-size: 13px; color: #6b7280; margin-top: 4px; }
/* 按钮 */
.btn[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid transparent; }
.btn:disabled[b-r63murnwp7] { opacity: 0.6; cursor: not-allowed; }
.btn-primary[b-r63murnwp7] { background: #2563eb; color: white; }
.btn-primary:hover:not(:disabled)[b-r63murnwp7] { background: #1d4ed8; }
.btn-default[b-r63murnwp7] { background: white; color: #374151; border-color: #d1d5db; }
.btn-danger[b-r63murnwp7] { background: #ef4444; color: white; }
.btn-link[b-r63murnwp7] { background: none; border: none; color: #2563eb; cursor: pointer; font-size: 14px; padding: 4px 8px; }
.btn-link.danger[b-r63murnwp7] { color: #ef4444; }
/* 表格 */
.card[b-r63murnwp7] { background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.table-wrapper[b-r63murnwp7] { overflow-x: auto; }
.data-table[b-r63murnwp7] { width: 100%; min-width: 980px; border-collapse: collapse; }
.data-table th[b-r63murnwp7] { text-align: left; padding: 12px 16px; background: #f9fafb; font-size: 12px; font-weight: 500; color: #6b7280; border-bottom: 1px solid #e5e7eb; }
.data-table td[b-r63murnwp7] { padding: 16px; font-size: 14px; color: #111827; border-bottom: 1px solid #f3f4f6; }
.data-row:hover[b-r63murnwp7] { background: #f9fafb; }
/* 加载/错误 */
.loading-container[b-r63murnwp7], .error-container[b-r63murnwp7] { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; background: white; border-radius: 8px; border: 1px solid #e5e7eb; }
.loading-spinner[b-r63murnwp7] { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin-b-r63murnwp7 1s linear infinite; }
@keyframes spin-b-r63murnwp7 { to { transform: rotate(360deg); } }
.loading-text[b-r63murnwp7] { margin-top: 16px; color: #6b7280; }
.error-title[b-r63murnwp7] { font-size: 18px; font-weight: 600; color: #111827; margin: 0 0 8px 0; }
.error-message[b-r63murnwp7] { font-size: 14px; color: #6b7280; margin: 0 0 16px 0; }
/* 弹窗 */
.modal-overlay[b-r63murnwp7] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
.gpu-modal-dialog[b-r63murnwp7] { background: white; border-radius: 8px; width: 100%; max-width: 600px; max-height: 90vh; overflow-y: auto; pointer-events: auto; }
.modal-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #e5e7eb; }
.modal-title[b-r63murnwp7] { font-size: 16px; font-weight: 600; color: #111827; margin: 0; }
.modal-close[b-r63murnwp7] { width: 32px; height: 32px; border: none; background: #f3f4f6; border-radius: 6px; cursor: pointer; color: #6b7280; font-size: 18px; }
.modal-body[b-r63murnwp7] { padding: 20px; }
.modal-footer[b-r63murnwp7] { display: flex; justify-content: flex-end; gap: 12px; padding: 16px 20px; border-top: 1px solid #e5e7eb; }
/* 表单 */
.form-grid[b-r63murnwp7] { display: grid; gap: 16px; }
.form-item[b-r63murnwp7] { display: flex; flex-direction: column; gap: 4px; }
.form-label[b-r63murnwp7] { font-size: 13px; font-weight: 500; color: #374151; }
.form-label.required[b-r63murnwp7]::after { content: " *"; color: #ef4444; }
.required[b-r63murnwp7] { color: #ef4444; }
.form-input[b-r63murnwp7] { padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; color: #111827; width: 100%; box-sizing: border-box; }
.form-input:disabled[b-r63murnwp7] { background: #f9fafb; color: #6b7280; }
.form-hint[b-r63murnwp7] { font-size: 12px; color: #6b7280; margin-top: 4px; }
.checkbox-label[b-r63murnwp7] { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; color: #374151; }
.checkbox-label input[type="checkbox"][b-r63murnwp7] { width: 16px; height: 16px; cursor: pointer; }
code[b-r63murnwp7] { background: #f3f4f6; padding: 2px 6px; border-radius: 4px; }
/* 切分展开区 */
.split-expand-content[b-r63murnwp7] { padding: 14px 20px; border-top: 1px solid #e5e7eb; }
.split-expand-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.split-expand-header .btn[b-r63murnwp7] { margin-left: 8px; }
.split-meta[b-r63murnwp7] { font-size: 12px; color: #6b7280; margin-bottom: 8px; }
.btn-sm[b-r63murnwp7] { padding: 4px 10px; font-size: 13px; }
.split-blocks[b-r63murnwp7] { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 12px; align-items: stretch; min-width: 0; }
.split-block[b-r63murnwp7] { padding: 6px 10px; border-radius: 4px; font-size: 12px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.split-block.occupied[b-r63murnwp7] { background: #e6f7ff; border: 1px solid #91d5ff; }
.split-block.idle[b-r63murnwp7] { background: #f6ffed; border: 1px solid #d9f7be; }
.split-block .sb-spec[b-r63murnwp7] { color: #6b7280; }
.split-block .sb-owner[b-r63murnwp7] { font-weight: 500; }
.split-block .sb-owner.idle[b-r63murnwp7] { color: #16a34a; }
/* 卡片化 GPU 详情 */
.empty-state-card[b-r63murnwp7] { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 240px; background: white; border: 1px solid #e5e7eb; border-radius: 10px; color: #6b7280; }
.empty-state-card i[b-r63murnwp7] { font-size: 36px; color: #9ca3af; margin-bottom: 12px; }
.empty-state-card h3[b-r63murnwp7] { margin: 0 0 8px; color: #111827; font-size: 16px; }
.empty-state-card p[b-r63murnwp7] { margin: 0; font-size: 13px; }
.node-detail-action-card[b-r63murnwp7] { margin-bottom: 16px; border: 1px solid #e5e7eb; border-radius: 10px; }
.node-detail-card-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.node-detail-title[b-r63murnwp7] { display: flex; align-items: center; gap: 12px; }
.node-detail-title h3[b-r63murnwp7] { margin: 0; font-size: 16px; font-weight: 600; color: #111827; }
.node-detail-icon[b-r63murnwp7] { width: 38px; height: 38px; border-radius: 10px; background: #eff6ff; color: #2563eb; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.node-detail-icon-img[b-r63murnwp7] { width: 25px; height: 25px; object-fit: contain; display: block; }
.node-detail-subtitle[b-r63murnwp7] { margin-top: 4px; font-size: 13px; color: #6b7280; }
.node-action-groups[b-r63murnwp7], .action-buttons[b-r63murnwp7], .toolbar-actions[b-r63murnwp7] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.node-action-groups[b-r63murnwp7]  .ant-btn { min-width: 112px; height: 32px; }
.gpu-list-toolbar[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; margin: 12px 0 16px; padding: 10px 14px; background: white; border: 1px solid #e5e7eb; border-radius: 8px; }
.select-all-control[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: #374151; cursor: pointer; }
.gpu-list-count[b-r63murnwp7] { font-size: 13px; color: #6b7280; }
.gpu-resource-list[b-r63murnwp7] { display: grid; background: white; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; }
.gpu-resource-row[b-r63murnwp7] { display: grid; grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid #e5e7eb; }
.gpu-resource-row:last-child[b-r63murnwp7] { border-bottom: 0; }
.gpu-resource-summary[b-r63murnwp7] { display: grid; grid-template-columns: minmax(220px, 1.1fr) minmax(260px, 1.2fr) minmax(220px, auto); gap: 20px; align-items: center; min-width: 0; padding: 14px 16px; }
.gpu-resource-row:hover .gpu-resource-summary[b-r63murnwp7] { background: #fafafa; }
.gpu-card-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; min-width: 0; }
.gpu-card-title[b-r63murnwp7] { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.gpu-card-title input[b-r63murnwp7] { margin-top: 3px; }
.gpu-uuid-row[b-r63murnwp7] { display: flex; align-items: center; gap: 6px; font-weight: 600; color: #111827; word-break: break-all; }
.gpu-card-subtitle[b-r63murnwp7] { margin-top: 4px; font-size: 12px; color: #6b7280; }
.gpu-card-badges[b-r63murnwp7] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.status-chip[b-r63murnwp7], .type-chip[b-r63murnwp7], .uuid-chip[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 12px; line-height: 20px; }
.type-chip[b-r63murnwp7] { background: #f3f4f6; color: #374151; }
.status-chip.split[b-r63murnwp7], .status-chip.exclusive[b-r63murnwp7] { background: #dbeafe; color: #1d4ed8; }
.status-chip.shared[b-r63murnwp7] { background: #dcfce7; color: #16a34a; }
.status-chip.unset[b-r63murnwp7] { background: #f3f4f6; color: #6b7280; }
.gpu-card-metrics[b-r63murnwp7] { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 8px 16px; padding: 0; background: transparent; }
.metric-row[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 13px; }
.metric-label[b-r63murnwp7] { color: #6b7280; display: inline-flex; align-items: center; gap: 6px; }
.metric-value[b-r63murnwp7] { color: #111827; font-weight: 500; text-align: right; overflow-wrap: anywhere; }
.gpu-action-panel[b-r63murnwp7] { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; justify-content: flex-end; }
.action-group[b-r63murnwp7] { display: grid; gap: 6px; min-width: 0; }
.action-group-title[b-r63murnwp7] { font-size: 12px; font-weight: 600; color: #6b7280; display: flex; align-items: center; gap: 6px; }
.btn-danger-outline[b-r63murnwp7] { background: white; color: #ef4444; border-color: #fca5a5; }
.btn-danger-outline:hover:not(:disabled)[b-r63murnwp7] { background: #fef2f2; }
.btn-success-outline[b-r63murnwp7] { background: white; color: #16a34a; border-color: #86efac; }
.btn-success-outline:hover:not(:disabled)[b-r63murnwp7] { background: #f0fdf4; }
.btn-icon[b-r63murnwp7] { background: none; border: none; cursor: pointer; padding: 4px 6px; border-radius: 4px; color: #6b7280; font-size: 13px; transition: all .2s; }
.btn-icon:hover[b-r63murnwp7] { background: #f3f4f6; color: #2563eb; }
.btn-icon.danger:hover[b-r63murnwp7] { background: #fef2f2; color: #ef4444; }
.split-detail-panel[b-r63murnwp7] { min-width: 0; padding: 14px 16px; border-top: 1px solid #dbeafe; background: #f8fbff; display: grid; gap: 14px; overflow-x: hidden; }
.split-section[b-r63murnwp7] { min-width: 0; padding: 12px; background: #fafbfc; border: 1px solid #e5e7eb; border-radius: 8px; }
.split-section-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.split-section-title[b-r63murnwp7] { font-size: 13px; font-weight: 600; color: #111827; display: flex; align-items: center; gap: 6px; }
.split-empty[b-r63murnwp7] { display: flex; align-items: center; justify-content: center; min-height: 96px; color: #9ca3af; font-size: 13px; padding: 16px; border: 1px dashed #d1d5db; border-radius: 10px; background: #fafafa; }
.split-block.group-block[b-r63murnwp7] { border-color: #a5f3fc; background: #ecfeff; }
.split-block .sb-owner[b-r63murnwp7] { cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.split-unit-card[b-r63murnwp7] { min-width: 0; padding: 12px; border-radius: 10px; border: 1px solid #d1d5db; background: white; box-shadow: 0 1px 2px rgba(15,23,42,.05); display: grid; gap: 10px; }
.split-unit-card.occupied[b-r63murnwp7] { border-color: #93c5fd; background: #eff6ff; }
.split-unit-card.idle[b-r63murnwp7] { border-color: #86efac; background: #f0fdf4; }
.split-unit-card.group-unit-card[b-r63murnwp7] { border-color: #67e8f9; background: #ecfeff; }
.split-unit-card.exclusive-block-card[b-r63murnwp7] { border-color: #c4b5fd; background: linear-gradient(135deg, #f5f3ff 0%, #eff6ff 100%); box-shadow: 0 8px 18px rgba(79,70,229,.12); }
.split-unit-card-header[b-r63murnwp7] { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.split-unit-title[b-r63murnwp7] { display: grid; gap: 3px; min-width: 0; }
.split-unit-name[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #111827; font-size: 13px; overflow-wrap: anywhere; }
.split-unit-spec[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; color: #6b7280; font-size: 11px; }
.split-unit-status[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.split-unit-status.occupied[b-r63murnwp7] { background: #dbeafe; color: #1d4ed8; }
.split-unit-status.idle[b-r63murnwp7] { background: #dcfce7; color: #16a34a; }
.split-unit-owner[b-r63murnwp7] { min-height: 34px; padding: 8px; border-radius: 8px; background: rgba(255,255,255,.72); display: flex; align-items: center; gap: 6px; color: #4b5563; font-size: 12px; }
.split-unit-owner span[b-r63murnwp7] { overflow-wrap: anywhere; }
.group-inline-specs[b-r63murnwp7] { display: flex; flex-wrap: wrap; gap: 6px; }
.group-inline-specs span[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.8); color: #0e7490; font-size: 12px; }
.split-unit-actions[b-r63murnwp7] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.split-action-btn[b-r63murnwp7] { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 5px 9px; border-radius: 6px; border: 1px solid #d1d5db; background: white; color: #374151; cursor: pointer; font-size: 12px; font-weight: 500; }
.split-action-btn:hover[b-r63murnwp7] { background: #f3f4f6; color: #2563eb; }
.split-action-btn.primary[b-r63murnwp7] { color: #2563eb; border-color: #93c5fd; background: #eff6ff; }
.split-action-btn.primary:hover[b-r63murnwp7] { background: #dbeafe; }
.split-action-btn.danger[b-r63murnwp7] { margin-left: auto; color: #dc2626; border-color: #fca5a5; background: #fff; font-weight: 600; }
.split-action-btn.danger:hover[b-r63murnwp7] { background: #fef2f2; color: #b91c1c; }
.multi-card-groups-section[b-r63murnwp7] { margin-top: 20px; }
.section-header.compact[b-r63murnwp7] { margin-bottom: 10px; }
.multi-group-card-grid[b-r63murnwp7] { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.multi-group-card[b-r63murnwp7] { border: 1px solid #a5f3fc; background: #f0fdff; border-radius: 10px; }
.multi-group-header[b-r63murnwp7] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
.multi-group-title[b-r63murnwp7] { font-size: 14px; font-weight: 600; color: #0e7490; display: flex; align-items: center; gap: 6px; }
.group-spec-line[b-r63murnwp7], .group-target-line[b-r63murnwp7], .group-gpu-chips[b-r63murnwp7] { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: #4b5563; }
.group-spec-line[b-r63murnwp7] { margin-top: 6px; }
.group-spec-line span[b-r63murnwp7] { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: #ecfeff; color: #0e7490; }
.group-target-line[b-r63murnwp7] { margin-top: 8px; align-items: center; }
.group-gpu-chips[b-r63murnwp7] { margin-top: 8px; }
.group-gpu-list[b-r63murnwp7] { display: grid; gap: 6px; margin-top: 10px; }
.group-card-actions[b-r63murnwp7] { margin-top: 10px; }
.group-gpu-item[b-r63murnwp7] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; background: rgba(255,255,255,.75); border: 1px solid #bae6fd; border-radius: 8px; font-size: 12px; }
.group-gpu-meta[b-r63murnwp7] { color: #0f766e; font-weight: 500; }
.uuid-chip[b-r63murnwp7] { background: #e0f2fe; color: #0369a1; }
@media (max-width: 768px) {
    .node-detail-card-header[b-r63murnwp7], .gpu-list-toolbar[b-r63murnwp7], .gpu-card-header[b-r63murnwp7], .split-section-header[b-r63murnwp7], .multi-group-header[b-r63murnwp7] { flex-direction: column; align-items: stretch; }
    .gpu-resource-summary[b-r63murnwp7], .multi-group-card-grid[b-r63murnwp7] { grid-template-columns: 1fr; }
    .gpu-action-panel[b-r63murnwp7] { justify-content: flex-start; }
    .node-action-groups[b-r63murnwp7], .action-buttons[b-r63murnwp7], .toolbar-actions[b-r63murnwp7] { width: 100%; }
    .action-buttons .btn[b-r63murnwp7], .node-action-groups .btn[b-r63murnwp7], .toolbar-actions .btn[b-r63murnwp7] { flex: 1; justify-content: center; }
}

/* 节点行 + 多目标选择器 */
.node-row td[b-r63murnwp7] { background: #f3f4f6; border-bottom: 1px solid #e5e7eb; }
.node-row strong[b-r63murnwp7] { font-size: 14px; color: #111827; }
.picker-list[b-r63murnwp7] { border: 1px solid #d1d5db; border-radius: 6px; max-height: 160px; overflow-y: auto; padding: 4px; }
.picker-item[b-r63murnwp7] { display: flex; align-items: center; gap: 6px; padding: 4px 6px; font-size: 13px; cursor: pointer; border-radius: 4px; }
.picker-item:hover[b-r63murnwp7] { background: #f3f4f6; }
.picker-item input[b-r63murnwp7] { width: 14px; height: 14px; }
.picker-disabled[b-r63murnwp7] { opacity: 0.6; cursor: not-allowed; }
.picker-disabled span[b-r63murnwp7] { color: #9ca3af; }
.picker-note[b-r63murnwp7] { font-size: 11px; color: #b45309; margin-left: auto; }
.picker-empty[b-r63murnwp7] { color: #9ca3af; font-size: 12px; padding: 8px; text-align: center; }
.quick-tpl-row[b-r63murnwp7] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 10px 12px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px; }
.quick-tpl-label[b-r63murnwp7] { font-size: 13px; font-weight: 600; color: #92400e; margin-right: 2px; }
.quick-tpl-chip[b-r63murnwp7] { font-size: 12px; padding: 4px 12px; background: #fff; color: #374151; border: 1px solid #d1d5db; border-radius: 16px; cursor: pointer; transition: all .15s; }
.quick-tpl-chip:hover:not(:disabled)[b-r63murnwp7] { background: #2563eb; color: #fff; border-color: #2563eb; }
.quick-tpl-chip:disabled[b-r63murnwp7] { opacity: .5; cursor: not-allowed; }
.quick-tpl-hint[b-r63murnwp7] { font-size: 11px; color: #a16207; margin-left: auto; }

/* 多卡专用步骤工作流 */
.multi-card-workflow-dialog[b-r63murnwp7] { max-width: 860px; max-height: calc(100vh - 40px); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; }
.multi-card-steps[b-r63murnwp7] { padding: 16px 24px; border-bottom: 1px solid #e5e7eb; overflow-x: auto; }
.multi-card-steps[b-r63murnwp7]  .ant-steps-item-title { font-size: 13px; font-weight: 600; }
.multi-card-steps[b-r63murnwp7]  .ant-steps-item-description { max-width: 180px; font-size: 12px; }
.multi-card-workflow-body[b-r63murnwp7] { min-height: 0; overflow-y: auto; padding: 20px 22px 24px; }
.multi-card-step-panel[b-r63murnwp7] { min-width: 0; }
.multi-card-section-heading[b-r63murnwp7] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.multi-card-section-heading h4[b-r63murnwp7] { margin: 0; color: #111827; font-size: 16px; }
.multi-card-section-heading p[b-r63murnwp7] { margin: 4px 0 0; color: #64748b; font-size: 13px; }
.multi-card-selection-count[b-r63murnwp7] { flex: 0 0 auto; padding: 4px 8px; border-radius: 4px; background: #eff6ff; color: #1d4ed8; font-size: 12px; }
.multi-card-info[b-r63murnwp7] { margin: 0 0 14px; background: #ecfeff; border-color: #a5f3fc; color: #0e7490; }
.multi-card-resource-list[b-r63murnwp7] { max-height: 300px; }
.multi-card-resource-item[b-r63murnwp7] { min-height: 58px; padding: 9px 12px; border: 1px solid transparent; }
.multi-card-resource-item:has(input:checked)[b-r63murnwp7] { border-color: #93c5fd; background: #f8fbff; }
.multi-card-resource-main[b-r63murnwp7] { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.multi-card-resource-main strong[b-r63murnwp7] { color: #111827; font-size: 13px; }
.multi-card-resource-main small[b-r63murnwp7] { overflow: hidden; color: #64748b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.multi-card-spec-grid[b-r63murnwp7] { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
.multi-card-target-hint[b-r63murnwp7] { display: block; margin-top: 12px; }
.multi-card-confirm-grid[b-r63murnwp7] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dbe1ea; border-radius: 6px; }
.multi-card-confirm-grid > div[b-r63murnwp7] { min-height: 72px; display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-right: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; }
.multi-card-confirm-grid > div:nth-child(2n)[b-r63murnwp7] { border-right: 0; }
.multi-card-confirm-grid > div:nth-last-child(-n+2)[b-r63murnwp7] { border-bottom: 0; }
.multi-card-confirm-grid span[b-r63murnwp7], .multi-card-confirm-grid small[b-r63murnwp7] { color: #64748b; font-size: 11px; }
.multi-card-confirm-grid strong[b-r63murnwp7] { color: #111827; font-size: 13px; }
.multi-card-confirm-grid small[b-r63murnwp7] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-card-confirm-scope[b-r63murnwp7] { grid-column: 1 / -1; border-right: 0 !important; }
.multi-card-warning[b-r63murnwp7] { margin-top: 12px; background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.multi-card-workflow-footer[b-r63murnwp7] { grid-template-columns: auto 1fr auto auto; }
@media (max-width: 700px) {
    .multi-card-workflow-dialog[b-r63murnwp7] { max-height: calc(100vh - 16px); }
    .multi-card-steps[b-r63murnwp7] { padding: 12px 8px; }
    .multi-card-steps[b-r63murnwp7]  .ant-steps { min-width: 560px; }
    .multi-card-workflow-body[b-r63murnwp7] { padding: 16px 14px 20px; }
    .multi-card-spec-grid[b-r63murnwp7], .multi-card-confirm-grid[b-r63murnwp7] { grid-template-columns: 1fr; }
    .multi-card-confirm-grid > div[b-r63murnwp7] { border-right: 0 !important; border-bottom: 1px solid #e5e7eb !important; }
    .multi-card-confirm-grid > div:last-child[b-r63murnwp7] { border-bottom: 0 !important; }
    .multi-card-confirm-scope[b-r63murnwp7] { grid-column: auto; }
}
/* /Components/Pages/ResourceManagement/GpuMonitorCards.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.gpu-monitor-page[b-qcesgqstwn] {
    padding: var(--console-space-6) var(--console-page-padding) var(--console-space-4);
}

.gpu-monitor-toolbar[b-qcesgqstwn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.toolbar-left[b-qcesgqstwn],
.toolbar-right[b-qcesgqstwn],
.date-range-wrap[b-qcesgqstwn],
.filter-row[b-qcesgqstwn] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.monitor-cluster-filter[b-qcesgqstwn] {
    width: 260px;
    max-width: 100%;
}

@media (max-width: 640px) {
    .monitor-cluster-filter[b-qcesgqstwn] {
        width: 100%;
    }
}

.toolbar-label[b-qcesgqstwn],
.filter-label[b-qcesgqstwn],
.update-badge[b-qcesgqstwn] {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.time-tabs[b-qcesgqstwn] {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.time-tab[b-qcesgqstwn] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #475569;
    font-size: 13px;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.time-tab:hover[b-qcesgqstwn],
.time-tab.active[b-qcesgqstwn] {
    color: #2563eb;
    border-color: #2563eb;
    background: #eff6ff;
}

.date-range-sep[b-qcesgqstwn] {
    color: #94a3b8;
    font-size: 12px;
}

.loading-card[b-qcesgqstwn],
.empty-card[b-qcesgqstwn] {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    color: #94a3b8;
}

.summary-grid[b-qcesgqstwn] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.summary-label[b-qcesgqstwn] {
    font-size: 13px;
    color: #64748b;
}

.summary-value[b-qcesgqstwn] {
    margin-top: 6px;
    font-size: 26px;
    font-weight: 800;
    color: #0f172a;
}

.summary-sub[b-qcesgqstwn] {
    margin-top: 4px;
    font-size: 12px;
    color: #94a3b8;
}

.hami-panel-grid[b-qcesgqstwn] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.panel-title[b-qcesgqstwn] {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 12px;
}

.compact-table-wrap[b-qcesgqstwn] {
    min-height: 220px;
    overflow-x: auto;
}

.compact-metric-table[b-qcesgqstwn] {
    width: 100%;
    min-width: 260px;
    border-collapse: collapse;
    table-layout: fixed;
}

.compact-metric-table th[b-qcesgqstwn],
.compact-metric-table td[b-qcesgqstwn] {
    padding: 9px 8px;
    border-bottom: 1px solid #f1f5f9;
    text-align: right;
    vertical-align: top;
    font-size: 12px;
}

.compact-metric-table th[b-qcesgqstwn] {
    color: #64748b;
    font-weight: 600;
    background: #f8fafc;
    white-space: nowrap;
}

.compact-metric-table th:first-child[b-qcesgqstwn],
.compact-metric-table td:first-child[b-qcesgqstwn] {
    width: 50%;
    text-align: left;
}

.compact-primary[b-qcesgqstwn] {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.compact-metric-table strong[b-qcesgqstwn],
.compact-metric-table small[b-qcesgqstwn] {
    display: block;
}

.compact-metric-table small[b-qcesgqstwn] {
    margin-top: 2px;
    color: #94a3b8;
    font-size: 10px;
    line-height: 1.3;
}

.metric-blue[b-qcesgqstwn] { color: #2563eb; }
.metric-green[b-qcesgqstwn] { color: #059669; }

.compact-metric-table .top-empty[b-qcesgqstwn] {
    height: 180px;
    color: #94a3b8;
    text-align: center;
    vertical-align: middle;
}

.table-header[b-qcesgqstwn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.table-header h4[b-qcesgqstwn] {
    margin: 0;
}

.filter-item[b-qcesgqstwn] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}

.filter-input[b-qcesgqstwn] {
    min-width: 180px;
    padding: 7px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
}

.table-link[b-qcesgqstwn] {
    color: #2563eb;
    font-weight: 600;
}

.card-name-cell .card-name[b-qcesgqstwn] {
    color: #0f172a;
    font-weight: 700;
}

.card-name-cell .card-sub[b-qcesgqstwn] {
    margin-top: 3px;
    color: #94a3b8;
    font-size: 11px;
}

.metric-cell[b-qcesgqstwn] {
    min-width: 150px;
}

.metric-top[b-qcesgqstwn] {
    color: #2563eb;
    font-weight: 700;
    font-size: 13px;
}

.metric-bar[b-qcesgqstwn] {
    margin-top: 6px;
    height: 7px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.metric-bar-fill[b-qcesgqstwn] {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #2563eb, #10b981);
}

@media (max-width: 1100px) {
    .summary-grid[b-qcesgqstwn] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/ResourceManagement/GpuMonitorNodes.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.gpu-monitor-page[b-4jbedqk1pc] {
    padding: var(--console-space-6) var(--console-page-padding) var(--console-space-4);
}

.page-container.console-list-page.gpu-monitor-page[b-4jbedqk1pc] {
    overflow: auto;
    padding: var(--console-page-padding);
}

.gpu-monitor-page > .main-content[b-4jbedqk1pc] {
    width: 100%;
}

.gpu-monitor-toolbar[b-4jbedqk1pc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.toolbar-left[b-4jbedqk1pc],
.toolbar-right[b-4jbedqk1pc],
.date-range-wrap[b-4jbedqk1pc],
.filter-row[b-4jbedqk1pc],
.tag-wrap[b-4jbedqk1pc] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.monitor-cluster-filter[b-4jbedqk1pc] {
    flex: 0 1 clamp(220px, 24vw, 280px) !important;
    width: clamp(220px, 24vw, 280px);
    min-width: 220px !important;
    max-width: 280px;
}

.monitor-cluster-filter[b-4jbedqk1pc]  .cluster-selector,
.monitor-cluster-filter[b-4jbedqk1pc]  .ant-select {
    width: 100% !important;
}

@media (max-width: 640px) {
    .monitor-cluster-filter[b-4jbedqk1pc] {
        width: 100%;
        min-width: 0 !important;
        max-width: none;
    }
}

.toolbar-label[b-4jbedqk1pc],
.filter-label[b-4jbedqk1pc],
.update-badge[b-4jbedqk1pc] {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.time-tabs[b-4jbedqk1pc] {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.time-tab[b-4jbedqk1pc] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #475569;
    font-size: 13px;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.time-tab:hover[b-4jbedqk1pc],
.time-tab.active[b-4jbedqk1pc] {
    color: #2563eb;
    border-color: #2563eb;
    background: #eff6ff;
}

.date-range-sep[b-4jbedqk1pc] {
    color: #94a3b8;
    font-size: 12px;
}

.loading-card[b-4jbedqk1pc],
.empty-card[b-4jbedqk1pc] {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    color: #94a3b8;
}

.hami-panel-grid[b-4jbedqk1pc] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.panel-title[b-4jbedqk1pc] {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 12px;
}

.compact-table-wrap[b-4jbedqk1pc] {
    min-height: 220px;
    overflow-x: auto;
}
.compact-metric-table[b-4jbedqk1pc] {
    width: 100%;
    min-width: 260px;
    border-collapse: collapse;
    table-layout: fixed;
}

.compact-metric-table th[b-4jbedqk1pc],
.compact-metric-table td[b-4jbedqk1pc] {
    padding: 9px 8px;
    border-bottom: 1px solid #f1f5f9;
    text-align: right;
    vertical-align: top;
    font-size: 12px;
}

.compact-metric-table th[b-4jbedqk1pc] {
    color: #64748b;
    font-weight: 600;
    background: #f8fafc;
    white-space: nowrap;
}

.compact-metric-table th:first-child[b-4jbedqk1pc],
.compact-metric-table td:first-child[b-4jbedqk1pc] {
    width: 50%;
    text-align: left;
}

.compact-primary[b-4jbedqk1pc] {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.compact-metric-table strong[b-4jbedqk1pc],
.compact-metric-table small[b-4jbedqk1pc] {
    display: block;
}

.compact-metric-table small[b-4jbedqk1pc] {
    margin-top: 2px;
    color: #94a3b8;
    font-size: 10px;
    line-height: 1.3;
}

.metric-blue[b-4jbedqk1pc] { color: #2563eb; }
.metric-green[b-4jbedqk1pc] { color: #059669; }

.compact-metric-table .top-empty[b-4jbedqk1pc] {
    height: 180px;
    color: #94a3b8;
    text-align: center;
    vertical-align: middle;
}

.table-link[b-4jbedqk1pc] {
    color: #2563eb;
    font-weight: 600;
}

.table-header[b-4jbedqk1pc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.table-header h4[b-4jbedqk1pc] {
    margin: 0;
}

.filter-row[b-4jbedqk1pc] {
    margin-bottom: 12px;
}

.filter-item[b-4jbedqk1pc] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}

.filter-input[b-4jbedqk1pc] {
    min-width: 180px;
    padding: 7px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
}

.node-name-cell .node-name[b-4jbedqk1pc] {
    color: #0f172a;
    font-weight: 700;
}

.node-name-cell .node-sub[b-4jbedqk1pc] {
    margin-top: 3px;
    color: #94a3b8;
    font-size: 11px;
}

.metric-cell[b-4jbedqk1pc] {
    min-width: 150px;
}

.metric-cell.compact[b-4jbedqk1pc] {
    min-width: 96px;
}

.metric-top[b-4jbedqk1pc] {
    color: #2563eb;
    font-weight: 700;
    font-size: 13px;
}

.metric-bar[b-4jbedqk1pc] {
    margin-top: 6px;
    height: 7px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.metric-bar-fill[b-4jbedqk1pc] {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #2563eb, #10b981);
}
/* /Components/Pages/ResourceManagement/GpuMonitorOverview.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.gpu-monitor-overview-page[b-gyq8ke0g5c] {
    padding: var(--console-space-6) var(--console-page-padding) var(--console-space-4);
}

.page-container.console-list-page.gpu-monitor-overview-page[b-gyq8ke0g5c] {
    overflow: auto;
    padding: var(--console-page-padding);
}

.gpu-monitor-overview-page > .main-content[b-gyq8ke0g5c] {
    width: 100%;
}

.gpu-monitor-toolbar[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.toolbar-left[b-gyq8ke0g5c],
.toolbar-right[b-gyq8ke0g5c],
.date-range-wrap[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.monitor-cluster-filter[b-gyq8ke0g5c] {
    flex: 0 1 clamp(220px, 24vw, 280px) !important;
    width: clamp(220px, 24vw, 280px);
    min-width: 220px !important;
    max-width: 280px;
}

.monitor-cluster-filter[b-gyq8ke0g5c]  .cluster-selector,
.monitor-cluster-filter[b-gyq8ke0g5c]  .ant-select {
    width: 100% !important;
}

.gpu-monitor-overview-page[b-gyq8ke0g5c]  .console-filter-main,
.gpu-monitor-overview-page[b-gyq8ke0g5c]  .console-filter-primary,
.gpu-monitor-overview-page[b-gyq8ke0g5c]  .console-filter-actions {
    align-items: center;
}

.gpu-monitor-overview-page[b-gyq8ke0g5c]  .console-filter-actions {
    min-height: 32px;
}

.auto-refresh-control[b-gyq8ke0g5c],
.update-badge[b-gyq8ke0g5c] {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    line-height: 20px;
    white-space: nowrap;
}

.auto-refresh-control[b-gyq8ke0g5c] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #475569;
    font-size: 12px;
}

.monitoring-status-strip[b-gyq8ke0g5c] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 12px 16px;
    border: 1px solid #dbeafe;
    border-left: 3px solid #2563eb;
    border-radius: 6px;
    background: #f8fafc;
}

.monitoring-status-main[b-gyq8ke0g5c],
.monitoring-status-meta[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    gap: 8px 14px;
    flex-wrap: wrap;
    min-width: 0;
    color: #475569;
    font-size: 12px;
}

.monitoring-status-main strong[b-gyq8ke0g5c] {
    color: #0f172a;
    font-size: 13px;
}

.monitoring-status-dot[b-gyq8ke0g5c] {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: #2563eb;
}

.monitoring-status-strip.available[b-gyq8ke0g5c] { border-left-color: #16a34a; }
.monitoring-status-strip.available .monitoring-status-dot[b-gyq8ke0g5c] { background: #16a34a; }

.monitoring-status-strip.partial[b-gyq8ke0g5c] {
    border-left-color: #d97706;
    background: #fffbeb;
}

.monitoring-status-strip.partial .monitoring-status-dot[b-gyq8ke0g5c] { background: #d97706; }

.monitoring-status-strip.unavailable[b-gyq8ke0g5c] {
    border-left-color: #dc2626;
    background: #fef2f2;
}

.monitoring-status-strip.unavailable .monitoring-status-dot[b-gyq8ke0g5c] { background: #dc2626; }
.monitoring-status-strip.no-data[b-gyq8ke0g5c] { border-left-color: #64748b; }
.monitoring-status-strip.no-data .monitoring-status-dot[b-gyq8ke0g5c] { background: #64748b; }

.toolbar-label[b-gyq8ke0g5c] {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.time-tabs[b-gyq8ke0g5c] {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.time-tab[b-gyq8ke0g5c] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #475569;
    font-size: 13px;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.time-tab:hover[b-gyq8ke0g5c],
.time-tab.active[b-gyq8ke0g5c] {
    color: #2563eb;
    border-color: #2563eb;
    background: #eff6ff;
}

.date-range-sep[b-gyq8ke0g5c],
.update-badge[b-gyq8ke0g5c] {
    color: #94a3b8;
    font-size: 12px;
}

.loading-card[b-gyq8ke0g5c],
.empty-card[b-gyq8ke0g5c] {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    color: #94a3b8;
}

.section-block[b-gyq8ke0g5c],
.overview-panel[b-gyq8ke0g5c] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--console-radius-base, 4px);
    padding: 16px;
    margin-bottom: 16px;
}

.section-title[b-gyq8ke0g5c],
.panel-header h2[b-gyq8ke0g5c] {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

.section-title[b-gyq8ke0g5c] {
    margin-bottom: 14px;
}

.section-title-icon[b-gyq8ke0g5c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: var(--console-radius-base, 4px);
    font-size: 14px;
}

.section-title-icon.blue[b-gyq8ke0g5c] { color: #2563eb; background: #eff6ff; }
.section-title-icon.green[b-gyq8ke0g5c] { color: #059669; background: #ecfdf5; }
.section-title-icon.orange[b-gyq8ke0g5c] { color: #d97706; background: #fffbeb; }
.section-title-icon.purple[b-gyq8ke0g5c] { color: #7c3aed; background: #f5f3ff; }

.section-heading-row[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.section-heading-row .section-title[b-gyq8ke0g5c] {
    margin-bottom: 0;
}

.section-note[b-gyq8ke0g5c] {
    color: #64748b;
    font-size: 12px;
}

.section-dot[b-gyq8ke0g5c] {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    display: inline-block;
}

.blue-dot[b-gyq8ke0g5c] { background: #2563eb; }
.green-dot[b-gyq8ke0g5c] { background: #10b981; }
.orange-dot[b-gyq8ke0g5c] { background: #f97316; }
.purple-dot[b-gyq8ke0g5c] { background: #8b5cf6; }

.kpi-grid[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.kpi-card[b-gyq8ke0g5c],
.resource-card[b-gyq8ke0g5c] {
    padding: 14px;
    border-radius: var(--console-radius-base, 4px);
    background: #f8fafc;
    border: 1px solid #edf2f7;
}

.kpi-card[b-gyq8ke0g5c] {
    min-width: 0;
    min-height: 124px;
    display: flex;
    flex-direction: column;
}

.kpi-title-row[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.metric-help[b-gyq8ke0g5c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #94a3b8;
    cursor: help;
}

.metric-help:hover[b-gyq8ke0g5c],
.metric-help:focus-visible[b-gyq8ke0g5c] {
    color: #2563eb;
    background: #eff6ff;
    outline: none;
}

.kpi-title[b-gyq8ke0g5c],
.resource-label[b-gyq8ke0g5c] {
    font-size: 13px;
    color: #64748b;
}

.kpi-value[b-gyq8ke0g5c],
.resource-value[b-gyq8ke0g5c] {
    margin-top: 6px;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
    color: #0f172a;
}

.kpi-value.unavailable[b-gyq8ke0g5c] {
    color: #94a3b8;
}

.kpi-sub[b-gyq8ke0g5c] {
    margin-top: 4px;
    font-size: 12px;
    color: #94a3b8;
}

.progress-bg[b-gyq8ke0g5c] {
    margin-top: 10px;
    height: 7px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.progress-fill[b-gyq8ke0g5c] {
    height: 100%;
    border-radius: 999px;
}

.resource-grid[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.energy-summary-grid[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.energy-summary-item[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto;
    align-items: baseline;
    gap: 4px 12px;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.energy-summary-item span[b-gyq8ke0g5c],
.energy-summary-item small[b-gyq8ke0g5c] {
    color: #64748b;
    font-size: 12px;
}

.energy-summary-item strong[b-gyq8ke0g5c] {
    color: #0f172a;
    font-size: 18px;
}

.energy-summary-item small[b-gyq8ke0g5c] {
    grid-column: 1 / -1;
}

.health-grid[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(3, minmax(280px, 1fr));
    gap: 16px;
}

.health-chart[b-gyq8ke0g5c] {
    min-width: 0;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.chart-html-legend[b-gyq8ke0g5c] {
    min-height: 42px;
    display: flex;
    align-content: flex-start;
    justify-content: center;
    gap: 7px 14px;
    flex-wrap: wrap;
    padding-top: 8px;
    border-top: 1px solid #f1f5f9;
}

.chart-html-legend-item[b-gyq8ke0g5c] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #475569;
    font-size: 11px;
    white-space: nowrap;
}

.chart-html-legend-item i[b-gyq8ke0g5c] {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex: 0 0 auto;
}

.gauge-caption[b-gyq8ke0g5c] {
    min-height: 42px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
    color: #64748b;
    font-size: 11px;
    text-align: center;
}

.overview-grid[b-gyq8ke0g5c],
.chart-grid[b-gyq8ke0g5c],
.top-grid[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.top-grid[b-gyq8ke0g5c] {
    grid-template-columns: minmax(0, 1fr);
}

/* Keep the overview's top panels in one bounded column on narrow screens. */
.top-grid[b-gyq8ke0g5c] {
    grid-template-columns: minmax(0, 1fr);
}

.overview-panel[b-gyq8ke0g5c] {
    min-width: 0;
    margin-bottom: 0;
}

.panel-header[b-gyq8ke0g5c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.panel-header span[b-gyq8ke0g5c] {
    color: #94a3b8;
    font-size: 12px;
}

.node-overview-cards[b-gyq8ke0g5c] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    min-height: 220px;
    align-items: center;
}

.node-overview-card[b-gyq8ke0g5c] {
    padding: 22px;
    border-radius: var(--console-radius-base, 4px);
    text-align: center;
}

.node-overview-card.schedulable[b-gyq8ke0g5c] {
    background: #ecfdf5;
    color: #047857;
}

.node-overview-card.disabled[b-gyq8ke0g5c] {
    background: #f8fafc;
    color: #64748b;
}

.node-overview-value[b-gyq8ke0g5c] {
    font-size: 38px;
    line-height: 1;
    font-weight: 800;
}

.node-overview-label[b-gyq8ke0g5c] {
    margin-top: 8px;
    font-size: 13px;
}

.top-node-table[b-gyq8ke0g5c] {
    width: 100%;
    border-collapse: collapse;
}

.top-node-table th[b-gyq8ke0g5c],
.top-node-table td[b-gyq8ke0g5c] {
    padding: 10px 8px;
    border-bottom: 1px solid #f1f5f9;
    text-align: left;
    font-size: 13px;
}

.top-node-table th[b-gyq8ke0g5c] {
    color: #64748b;
    font-weight: 600;
    background: #f8fafc;
}

.node-name[b-gyq8ke0g5c] {
    color: #0f172a;
    font-weight: 600;
    max-width: 220px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.node-status-text[b-gyq8ke0g5c],
.rate-sub[b-gyq8ke0g5c] {
    margin-top: 2px;
    color: #94a3b8;
    font-size: 11px;
}

.rate-value[b-gyq8ke0g5c] {
    color: #2563eb;
    font-weight: 700;
}

.rate-value.green[b-gyq8ke0g5c] {
    color: #10b981;
}

.empty-cell[b-gyq8ke0g5c] {
    text-align: center !important;
    color: #94a3b8;
    padding: 28px 8px !important;
}

@media (max-width: 1100px) {
    .overview-grid[b-gyq8ke0g5c],
    .chart-grid[b-gyq8ke0g5c],
    .top-grid[b-gyq8ke0g5c] {
        grid-template-columns: 1fr;
    }

    .health-grid[b-gyq8ke0g5c] {
        grid-template-columns: 1fr;
    }

    .kpi-grid[b-gyq8ke0g5c] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .resource-grid[b-gyq8ke0g5c] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .monitor-cluster-filter[b-gyq8ke0g5c] {
        width: 100%;
        min-width: 0 !important;
        max-width: none;
    }

    .energy-summary-grid[b-gyq8ke0g5c] {
        grid-template-columns: 1fr;
    }

    .kpi-grid[b-gyq8ke0g5c] {
        grid-template-columns: 1fr;
    }

    .resource-grid[b-gyq8ke0g5c] {
        grid-template-columns: 1fr;
    }

    .section-heading-row[b-gyq8ke0g5c] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/Pages/ResourceManagement/GpuMonitorWorkloads.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.gpu-monitor-page[b-2guszbpyvv] {
    padding: var(--console-space-6) var(--console-page-padding) var(--console-space-4);
}

.page-container.console-list-page.gpu-monitor-page[b-2guszbpyvv] {
    overflow: auto;
    padding: var(--console-page-padding);
}

.gpu-monitor-page > .main-content[b-2guszbpyvv] {
    width: 100%;
}

.gpu-monitor-toolbar[b-2guszbpyvv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.toolbar-left[b-2guszbpyvv],
.toolbar-right[b-2guszbpyvv],
.date-range-wrap[b-2guszbpyvv],
.filter-row[b-2guszbpyvv] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.monitor-cluster-filter[b-2guszbpyvv] {
    flex: 0 1 clamp(220px, 24vw, 280px) !important;
    width: clamp(220px, 24vw, 280px);
    min-width: 220px !important;
    max-width: 280px;
}

.monitor-cluster-filter[b-2guszbpyvv]  .cluster-selector,
.monitor-cluster-filter[b-2guszbpyvv]  .ant-select {
    width: 100% !important;
}

@media (max-width: 640px) {
    .monitor-cluster-filter[b-2guszbpyvv] {
        width: 100%;
        min-width: 0 !important;
        max-width: none;
    }
}

.toolbar-label[b-2guszbpyvv],
.filter-label[b-2guszbpyvv],
.update-badge[b-2guszbpyvv] {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.time-tabs[b-2guszbpyvv] {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.time-tab[b-2guszbpyvv] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #475569;
    font-size: 13px;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.time-tab:hover[b-2guszbpyvv],
.time-tab.active[b-2guszbpyvv] {
    color: #2563eb;
    border-color: #2563eb;
    background: #eff6ff;
}

.date-range-sep[b-2guszbpyvv] {
    color: #94a3b8;
    font-size: 12px;
}

.loading-card[b-2guszbpyvv],
.empty-card[b-2guszbpyvv] {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    color: #94a3b8;
}

.summary-grid[b-2guszbpyvv] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.summary-label[b-2guszbpyvv] {
    font-size: 13px;
    color: #64748b;
}

.summary-value[b-2guszbpyvv] {
    margin-top: 6px;
    font-size: 26px;
    font-weight: 800;
    color: #0f172a;
}

.summary-sub[b-2guszbpyvv] {
    margin-top: 4px;
    font-size: 12px;
    color: #94a3b8;
}

.hami-panel-grid[b-2guszbpyvv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.panel-title[b-2guszbpyvv] {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 12px;
}

.compact-table-wrap[b-2guszbpyvv] {
    min-height: 220px;
    overflow-x: auto;
}

.compact-metric-table[b-2guszbpyvv] {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    table-layout: fixed;
}

.compact-metric-table th[b-2guszbpyvv],
.compact-metric-table td[b-2guszbpyvv] {
    padding: 9px 8px;
    border-bottom: 1px solid #f1f5f9;
    text-align: right;
    vertical-align: top;
    font-size: 12px;
}

.compact-metric-table th[b-2guszbpyvv] {
    color: #64748b;
    font-weight: 600;
    background: #f8fafc;
    white-space: nowrap;
}

.compact-metric-table th:first-child[b-2guszbpyvv],
.compact-metric-table td:first-child[b-2guszbpyvv] {
    width: 48%;
    text-align: left;
}

.compact-primary[b-2guszbpyvv] {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.metric-blue[b-2guszbpyvv] { color: #2563eb; }
.metric-green[b-2guszbpyvv] { color: #059669; }

.compact-metric-table .top-empty[b-2guszbpyvv] {
    height: 180px;
    color: #94a3b8;
    text-align: center;
    vertical-align: middle;
}

.table-header[b-2guszbpyvv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.table-header h4[b-2guszbpyvv] {
    margin: 0;
}

.filter-item[b-2guszbpyvv] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}

.filter-input[b-2guszbpyvv] {
    min-width: 180px;
    padding: 7px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
}

.table-link[b-2guszbpyvv] {
    color: #2563eb;
    font-weight: 600;
}

.workload-name-cell .workload-name[b-2guszbpyvv] {
    color: #0f172a;
    font-weight: 700;
}

.workload-name-cell .workload-sub[b-2guszbpyvv] {
    margin-top: 3px;
    color: #94a3b8;
    font-size: 11px;
}

@media (max-width: 1100px) {
    .summary-grid[b-2guszbpyvv] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/ResourceManagement/MyGpuResources.razor.rz.scp.css */
/* GPU 配额列表：按节点分组，资源以连续列表呈现。 */
.my-gpu-page .console-list-page__content[b-xopz6ee710] { overflow: auto; }
.page-header[b-xopz6ee710], .node-header[b-xopz6ee710], .resource-header[b-xopz6ee710], .physical-head[b-xopz6ee710], .task-row[b-xopz6ee710] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.page-header[b-xopz6ee710] { margin-bottom: 16px; }
.header-left[b-xopz6ee710], .node-title[b-xopz6ee710] { display: flex; align-items: center; gap: 10px; }
.header-icon[b-xopz6ee710], .node-title i[b-xopz6ee710] { color: #1677ff; font-size: 18px; }
.page-title[b-xopz6ee710] { margin: 0; font-size: 20px; font-weight: 600; color: #1f2937; }
.page-subtitle[b-xopz6ee710] { margin: 3px 0 0; color: #6b7280; font-size: 13px; }
.loading-state[b-xopz6ee710] { display: flex; justify-content: center; padding: 72px; }
.empty-state[b-xopz6ee710] { padding: 48px 24px; text-align: center; border: 1px dashed #d9d9d9; background: #fff; }
.node-section[b-xopz6ee710], .pending-section[b-xopz6ee710] { margin-bottom: 18px; }
.node-header[b-xopz6ee710] { flex-wrap: wrap; padding: 14px 16px; border-bottom: 1px solid #e5e7eb; background: #f8fafc; }
.node-title[b-xopz6ee710] { font-size: 16px; font-weight: 600; color: #1f2937; }
.node-summary[b-xopz6ee710] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #6b7280; font-size: 12px; }
.resource-list[b-xopz6ee710] { display: grid; gap: 0; border: 1px solid #e5e7eb; border-top: 0; background: #fff; }
.resource-list-header[b-xopz6ee710] { display: grid; grid-template-columns: minmax(220px, 2fr) 110px 130px 70px 140px 120px 80px; gap: 12px; padding: 10px 16px; background: #fafafa; border-bottom: 1px solid #e5e7eb; color: #6b7280; font-size: 12px; font-weight: 600; }
.resource-item[b-xopz6ee710] { padding: 12px 16px; border-bottom: 1px solid #f0f0f0; }
.resource-item:last-child[b-xopz6ee710] { border-bottom: 0; }
.resource-header[b-xopz6ee710] { align-items: center; margin: 0; cursor: pointer; list-style: none; }
.resource-header[b-xopz6ee710] { display: grid; grid-template-columns: minmax(220px, 2fr) 110px 130px 70px 140px 120px 80px; gap: 12px; }
.resource-header[b-xopz6ee710]::-webkit-details-marker { display: none; }
.resource-name[b-xopz6ee710] { font-weight: 600; color: #1f2937; }
.resource-type[b-xopz6ee710] { min-width: 0; }
.resource-model[b-xopz6ee710] { color: #9ca3af; font-size: 12px; text-align: right; }
.resource-card-count[b-xopz6ee710], .resource-quota[b-xopz6ee710], .resource-usage[b-xopz6ee710] { color: #4b5563; font-size: 12px; text-align: right; }
.resource-expand-hint[b-xopz6ee710] { margin-left: auto; color: #1677ff; font-size: 12px; }
.resource-detail-content[b-xopz6ee710] { padding-top: 10px; }
.resource-item[open] .resource-expand-hint i[b-xopz6ee710] { transform: rotate(180deg); }
.resource-expand-hint i[b-xopz6ee710] { transition: transform .2s ease; }
.quota-tags[b-xopz6ee710] { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.quota-tags i[b-xopz6ee710] { margin-right: 3px; }
.owners[b-xopz6ee710] { color: #6b7280; font-size: 12px; margin-bottom: 10px; }
.metric-panel[b-xopz6ee710] { padding: 10px 12px; border: 1px solid #eef0f2; background: #fafafa; }
.metric-caption[b-xopz6ee710] { margin-bottom: 6px; color: #8c8c8c; font-size: 12px; }
.metric-caption i[b-xopz6ee710] { margin-right: 4px; color: #8c8c8c; }
.metric-row[b-xopz6ee710] { display: flex; align-items: center; gap: 8px; min-height: 24px; font-size: 12px; }
.metric-label[b-xopz6ee710] { width: 58px; color: #6b7280; flex-shrink: 0; }
.metric-value[b-xopz6ee710] { width: 118px; text-align: right; color: #374151; flex-shrink: 0; }
.progress-track[b-xopz6ee710] { height: 8px; flex: 1; overflow: hidden; border-radius: 4px; background: #e5e7eb; }
.progress-fill[b-xopz6ee710] { height: 100%; min-width: 0; border-radius: 4px; transition: width .25s ease; }
.progress-fill.low[b-xopz6ee710] { background: #22c55e; }.progress-fill.medium[b-xopz6ee710] { background: #f59e0b; }.progress-fill.high[b-xopz6ee710] { background: #ef4444; }
.progress-fill.allocated[b-xopz6ee710] { background: #6366f1; }.progress-fill.mine[b-xopz6ee710] { background: #1677ff; }
.block-panel[b-xopz6ee710], .tasks-section[b-xopz6ee710] { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #e5e7eb; }
.section-title[b-xopz6ee710] { margin-bottom: 7px; color: #4b5563; font-size: 12px; font-weight: 600; }
.block-stats[b-xopz6ee710], .physical-stats[b-xopz6ee710] { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #6b7280; font-size: 12px; }
.task-row[b-xopz6ee710] { flex-wrap: wrap; padding: 5px 0; border-bottom: 1px solid #f3f4f6; font-size: 12px; }
.task-main[b-xopz6ee710] { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.task-usage[b-xopz6ee710] { color: #1677ff; }
.empty-text[b-xopz6ee710] { color: #9ca3af; font-size: 12px; }
.physical-details[b-xopz6ee710] { margin-top: 10px; border-top: 1px dashed #e5e7eb; padding-top: 9px; }
.physical-details summary[b-xopz6ee710] { color: #4b5563; cursor: pointer; font-size: 12px; font-weight: 600; }
.physical-list[b-xopz6ee710] { display: grid; gap: 7px; margin-top: 8px; }
.physical-card[b-xopz6ee710] { padding: 8px 10px; border: 1px solid #eef0f2; background: #fafafa; }
.physical-head[b-xopz6ee710] { color: #374151; font-size: 12px; font-weight: 600; }
.other-pods[b-xopz6ee710] { margin-top: 5px; color: #b45309; font-size: 11px; }
.resource-actions[b-xopz6ee710] { display: flex; gap: 8px; margin-top: 12px; }
.pending-section[b-xopz6ee710] { padding: 0 16px 16px; border: 1px dashed #d9d9d9; background: #fff; }
@media (max-width: 640px) {
    .resource-list-header[b-xopz6ee710] { display: none; }
    .metric-value[b-xopz6ee710] { width: 92px; }
    .resource-header[b-xopz6ee710] { flex-wrap: wrap; }
    .resource-header[b-xopz6ee710] { display: flex; }
    .resource-model[b-xopz6ee710] { text-align: left; }
    .resource-expand-hint[b-xopz6ee710] { margin-left: 0; width: 100%; }
    .node-header[b-xopz6ee710] { align-items: flex-start; }
}
/* /Components/Pages/ResourceManagement/NodeDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-c5bhaj0um2] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-c5bhaj0um2] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-c5bhaj0um2] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    gap: 16px;
}

.header-left[b-c5bhaj0um2] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.header-title-group[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.page-title[b-c5bhaj0um2] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-meta[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.meta-item[b-c5bhaj0um2] {
    font-size: 13px;
    color: #6b7280;
}

.header-right[b-c5bhaj0um2] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.time-range-block[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.custom-time-range[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
    color: #6b7280;
    font-size: 12px;
}

.time-range-warning[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 6px;
    padding: 6px 10px;
    font-size: 12px;
}

/* 时间选择器 */
.time-range-selector[b-c5bhaj0um2] {
    display: flex;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.time-btn[b-c5bhaj0um2] {
    padding: 6px 12px;
    font-size: 13px;
    border: none;
    background: white;
    color: #6b7280;
    cursor: pointer;
}

.time-btn:hover[b-c5bhaj0um2] {
    background: #f9fafb;
}

.time-btn.active[b-c5bhaj0um2] {
    background: #2563eb;
    color: white;
}

/* 按钮 */
.btn[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn-primary[b-c5bhaj0um2] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover[b-c5bhaj0um2] {
    background: #1d4ed8;
}

.btn-default[b-c5bhaj0um2] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
    border-radius: 6px;
}

.btn-default:hover[b-c5bhaj0um2] {
    background: #f9fafb;
}

/* 状态标签 */
.status-badge[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
}

.status-badge i[b-c5bhaj0um2] {
    font-size: 6px;
}

.status-ready[b-c5bhaj0um2] {
    background: #dcfce7;
    color: #16a34a;
}

.status-notready[b-c5bhaj0um2] {
    background: #fee2e2;
    color: #ef4444;
}

.schedule-badge[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
}

.schedule-badge.schedulable[b-c5bhaj0um2] {
    background: #ecfdf5;
    color: #047857;
}

.schedule-badge.unschedulable[b-c5bhaj0um2] {
    background: #fff7ed;
    color: #c2410c;
}

.schedule-badge.tainted[b-c5bhaj0um2] {
    background: #fef3c7;
    color: #a16207;
}

.node-schedule-banners[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.schedule-alert[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13px;
    margin-bottom: 12px;
}

.schedule-alert.warning[b-c5bhaj0um2] {
    border: 1px solid #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.schedule-alert.caution[b-c5bhaj0um2] {
    border: 1px solid #fde68a;
    background: #fffbeb;
    color: #a16207;
}

/* Tab 导航 */
.tab-navigation[b-c5bhaj0um2] {
    display: flex;
    gap: 4px;
    background: white;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    margin-bottom: 16px;
}

.tab-btn[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 14px;
    border: none;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.15s;
}

.tab-btn:hover[b-c5bhaj0um2] {
    background: #f3f4f6;
}

.tab-btn.active[b-c5bhaj0um2] {
    background: #2563eb;
    color: white;
}

.tab-btn.loading[b-c5bhaj0um2] {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

.tab-btn:disabled[b-c5bhaj0um2] {
    opacity: 0.72;
    cursor: wait;
}

.tab-loading-banner[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1d4ed8;
}

.tab-loading-spinner[b-c5bhaj0um2] {
    width: 24px;
    height: 24px;
    border-width: 2px;
    flex: 0 0 auto;
}

.tab-loading-text[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
}

.tab-loading-text strong[b-c5bhaj0um2] {
    font-weight: 600;
}

/* Tab 内容 */
.tab-content[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.node-detail-layout[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.node-detail-side-tabs[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.node-detail-side-tab[b-c5bhaj0um2] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: #6b7280;
    text-align: left;
    cursor: pointer;
}

.node-detail-side-tab:hover[b-c5bhaj0um2] {
    background: #f3f4f6;
    color: #111827;
}

.node-detail-side-tab.active[b-c5bhaj0um2] {
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}

.node-detail-side-tab.active[b-c5bhaj0um2]::before {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: -6px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #2563eb;
    content: "";
}

.node-detail-side-tab.loading i[b-c5bhaj0um2] {
    color: #2563eb;
}

.node-detail-side-content[b-c5bhaj0um2] {
    min-width: 0;
}

.section-status-banner[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    margin-bottom: 16px;
    padding: 10px 14px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
}

.section-status-banner.error[b-c5bhaj0um2] {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

/* 卡片 */
.card[b-c5bhaj0um2] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-header[b-c5bhaj0um2] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.card-title[b-c5bhaj0um2] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.card-body[b-c5bhaj0um2] {
    padding: 20px;
}

/* 信息网格 */
.info-grid[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

.info-item[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label[b-c5bhaj0um2] {
    font-size: 12px;
    color: #6b7280;
}

.info-value[b-c5bhaj0um2] {
    font-size: 14px;
    color: #111827;
    font-weight: 500;
}

.wrap-value[b-c5bhaj0um2] {
    max-width: 560px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.taint-list[b-c5bhaj0um2] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.taint-chip[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #fed7aa;
    border-radius: 9999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.taint-chip em[b-c5bhaj0um2] {
    padding-left: 6px;
    color: #c2410c;
    font-style: normal;
    font-weight: 600;
}

.label-groups[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.label-group[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.label-group-title[b-c5bhaj0um2] {
    font-size: 12px;
    font-weight: 600;
    color: #475569;
}

.kv-chip-list[b-c5bhaj0um2] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.kv-chip[b-c5bhaj0um2] {
    display: inline-flex;
    max-width: 100%;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 9999px;
    background: #f8fafc;
    font-size: 12px;
}

.kv-chip strong[b-c5bhaj0um2],
.kv-chip em[b-c5bhaj0um2] {
    padding: 5px 8px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.kv-chip strong[b-c5bhaj0um2] {
    background: #eef2ff;
    color: #3730a3;
    font-weight: 600;
}

.kv-chip em[b-c5bhaj0um2] {
    color: #334155;
    font-style: normal;
}

.annotation-list[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.annotation-item[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f8fafc;
}

.annotation-key[b-c5bhaj0um2] {
    color: #475569;
    font-size: 12px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.annotation-value[b-c5bhaj0um2] {
    color: #111827;
    font-size: 12px;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* 资源卡片 */
.resource-cards[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

.resource-card[b-c5bhaj0um2] {
    padding: 16px;
}

.resource-header[b-c5bhaj0um2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.resource-icon[b-c5bhaj0um2] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 14px;
}

.resource-title[b-c5bhaj0um2] {
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
}

.resource-body[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.resource-main[b-c5bhaj0um2] {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.resource-value[b-c5bhaj0um2] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
}

.resource-unit[b-c5bhaj0um2] {
    font-size: 14px;
    color: #6b7280;
}

.usage-bar[b-c5bhaj0um2] {
    height: 8px;
    background: #f3f4f6;
    border-radius: 4px;
    overflow: hidden;
}

.usage-fill[b-c5bhaj0um2] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s;
}

.usage-low[b-c5bhaj0um2] { background: #22c55e; }
.usage-medium[b-c5bhaj0um2] { background: #eab308; }
.usage-high[b-c5bhaj0um2] { background: #ef4444; }

.usage-text[b-c5bhaj0um2] {
    font-size: 12px;
    color: #6b7280;
}

/* 表格 */
.data-table[b-c5bhaj0um2] {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.node-summary-meta[b-c5bhaj0um2] {
    margin-bottom: 16px;
}

.table-scroll[b-c5bhaj0um2] {
    width: 100%;
    overflow-x: auto;
}

.data-table th[b-c5bhaj0um2] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-c5bhaj0um2] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
}

/* Pod 状态 */
.pod-status[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
}

.pod-status-running[b-c5bhaj0um2] { background: #dcfce7; color: #16a34a; }
.pod-status-pending[b-c5bhaj0um2] { background: #fef3c7; color: #d97706; }
.pod-status-failed[b-c5bhaj0um2] { background: #fee2e2; color: #ef4444; }
.pod-status-succeeded[b-c5bhaj0um2] { background: #dbeafe; color: #2563eb; }
.pod-status-unknown[b-c5bhaj0um2] { background: #f3f4f6; color: #6b7280; }

.pod-source-table[b-c5bhaj0um2] {
    min-width: 1080px;
}

.pod-source-chip[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.source-training[b-c5bhaj0um2] { background: #eef2ff; color: #4338ca; }
.source-debug[b-c5bhaj0um2] { background: #ecfeff; color: #0e7490; }
.source-inference[b-c5bhaj0um2] { background: #f5f3ff; color: #7c3aed; }
.source-other-user[b-c5bhaj0um2] { background: #fef3c7; color: #a16207; }
.source-system[b-c5bhaj0um2] { background: #f3f4f6; color: #4b5563; }
.source-unknown[b-c5bhaj0um2] { background: #fee2e2; color: #b91c1c; }

.pod-task-cell[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 180px;
}

.pod-task-cell small[b-c5bhaj0um2] {
    color: #94a3b8;
    font-size: 11px;
    overflow-wrap: anywhere;
}

/* Pod 筛选 Tab */
.pod-filter-tabs[b-c5bhaj0um2] {
    display: flex;
    gap: 8px;
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
}

.source-filter-tabs[b-c5bhaj0um2] {
    flex-wrap: wrap;
}

.pod-filter-btn[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: white;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.15s;
}

.pod-filter-btn:hover[b-c5bhaj0um2] {
    border-color: #2563eb;
    color: #2563eb;
}

.pod-filter-btn.active[b-c5bhaj0um2] {
    background: #2563eb;
    border-color: #2563eb;
    color: white;
}

.pod-filter-btn.active .pod-count[b-c5bhaj0um2] {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

.pod-count[b-c5bhaj0um2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background: #e5e7eb;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
}

/* 图表 */
.chart-container[b-c5bhaj0um2] {
    height: 200px;
    position: relative;
}

.chart-svg[b-c5bhaj0um2] {
    width: 100%;
    height: 100%;
}

.chart-labels[b-c5bhaj0um2] {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
}

.time-label[b-c5bhaj0um2] {
    font-size: 11px;
    color: #9ca3af;
}

/* 加载状态 */
.loading-container[b-c5bhaj0um2], .error-container[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-c5bhaj0um2] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-c5bhaj0um2 1s linear infinite;
}

@keyframes spin-b-c5bhaj0um2 {
    to { transform: rotate(360deg); }
}

.loading-text[b-c5bhaj0um2] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.error-title[b-c5bhaj0um2] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.error-message[b-c5bhaj0um2] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 16px 0;
}

.empty-state[b-c5bhaj0um2] {
    padding: 48px;
    text-align: center;
    color: #6b7280;
}

.empty-state.compact[b-c5bhaj0um2] {
    padding: 20px;
    border: 1px dashed #e5e7eb;
    border-radius: 8px;
    background: #f8fafc;
}

.trend-empty-state[b-c5bhaj0um2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 180px;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
}

.trend-empty-title[b-c5bhaj0um2] {
    color: #334155;
    font-size: 14px;
    font-weight: 600;
}

.trend-empty-reason[b-c5bhaj0um2] {
    max-width: 88%;
    color: #64748b;
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.no-access-icon[b-c5bhaj0um2] {
    width: 64px;
    height: 64px;
    background: #fef2f2;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.no-access-icon i[b-c5bhaj0um2] {
    font-size: 28px;
    color: #ef4444;
}

/* GPU 设备卡片 */
.gpu-devices-grid[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.gpu-device-card[b-c5bhaj0um2] {
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.gpu-device-header[b-c5bhaj0um2] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.gpu-index[b-c5bhaj0um2] {
    font-weight: 600;
    color: #111827;
}

.gpu-type[b-c5bhaj0um2] {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 12px;
}

/* CPU 核心网格 */
.cpu-cores-grid[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.cpu-core-item[b-c5bhaj0um2] {
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
}

.core-header[b-c5bhaj0um2] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
}

.core-index[b-c5bhaj0um2] {
    font-size: 12px;
    color: #6b7280;
}

.core-usage[b-c5bhaj0um2] {
    font-size: 12px;
    font-weight: 600;
    color: #111827;
}

.core-bar[b-c5bhaj0um2] {
    height: 4px;
    background: #e5e7eb;
    border-radius: 2px;
    overflow: hidden;
}

.core-fill[b-c5bhaj0um2] {
    height: 100%;
    border-radius: 2px;
}

.core-breakdown[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    margin-top: 8px;
    font-size: 11px;
    color: #6b7280;
}

.monitoring-tab-grid[b-c5bhaj0um2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.monitoring-chart-card-node[b-c5bhaj0um2] {
    min-height: 290px;
    padding: 12px;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-c5bhaj0um2] {
        flex-direction: column;
    }
    
    .header-right[b-c5bhaj0um2] {
        width: 100%;
        flex-wrap: wrap;
    }
    
    .resource-cards[b-c5bhaj0um2],
    .monitoring-tab-grid[b-c5bhaj0um2] {
        grid-template-columns: 1fr;
    }

    .node-detail-layout[b-c5bhaj0um2] {
        grid-template-columns: minmax(0, 1fr);
    }

    .node-detail-side-tabs[b-c5bhaj0um2] {
        flex-direction: row;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .node-detail-side-tab[b-c5bhaj0um2] {
        flex: 0 0 auto;
        width: auto;
        white-space: nowrap;
    }

    .node-detail-side-tab.active[b-c5bhaj0um2]::before {
        top: auto;
        right: 8px;
        bottom: -6px;
        left: 8px;
        width: auto;
        height: 3px;
        border-radius: 3px 3px 0 0;
    }
}
/* /Components/Pages/ResourceManagement/PrometheusMetricsOverview.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.prometheus-page[b-3qy6rehw90] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.page-container.console-list-page.prometheus-page[b-3qy6rehw90] {
    overflow: auto;
    padding: var(--console-page-padding);
}

.prometheus-page .main-content[b-3qy6rehw90] {
    margin: 0 auto;
}

.prometheus-page .page-header[b-3qy6rehw90] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.prometheus-page .page-title[b-3qy6rehw90] {
    margin: 0;
    color: #111827;
    font-size: 18px;
    font-weight: 600;
}

.page-subtitle[b-3qy6rehw90] {
    margin-top: 4px;
    color: #6b7280;
    font-size: 13px;
}

.header-right[b-3qy6rehw90] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.update-badge[b-3qy6rehw90] {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.monitor-cluster-filter[b-3qy6rehw90] {
    flex: 0 1 clamp(220px, 24vw, 280px) !important;
    width: clamp(220px, 24vw, 280px);
    min-width: 220px !important;
    max-width: 280px;
}

.monitor-cluster-filter[b-3qy6rehw90]  .cluster-selector,
.monitor-cluster-filter[b-3qy6rehw90]  .ant-select {
    width: 100% !important;
}

.prometheus-toolbar[b-3qy6rehw90] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.prometheus-tabs-container[b-3qy6rehw90] {
    margin-bottom: 16px;
}

.prometheus-tabs-container .tabs[b-3qy6rehw90] {
    display: flex;
    gap: 4px;
    background: #fff;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    overflow-x: auto;
}

.prometheus-tabs-container .tab-btn[b-3qy6rehw90] {
    padding: 10px 20px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    border-radius: 6px;
    transition: all 0.15s;
    white-space: nowrap;
}

.prometheus-tabs-container .tab-btn:hover[b-3qy6rehw90] {
    background: #f3f4f6;
    color: #111827;
}

.prometheus-tabs-container .tab-btn.active[b-3qy6rehw90] {
    background: #2563eb;
    color: #fff;
}

.toolbar-left[b-3qy6rehw90],
.toolbar-right[b-3qy6rehw90],
.date-range-wrap[b-3qy6rehw90] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.toolbar-label[b-3qy6rehw90],
.time-boundary[b-3qy6rehw90] {
    font-size: 12px;
}

.toolbar-label[b-3qy6rehw90] {
    color: #374151;
    font-weight: 600;
}

.time-boundary[b-3qy6rehw90] {
    color: #94a3b8;
}

.time-tabs[b-3qy6rehw90] {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.time-tab[b-3qy6rehw90] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #475569;
    font-size: 13px;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.time-tab:hover:not(:disabled)[b-3qy6rehw90],
.time-tab.active[b-3qy6rehw90] {
    color: #2563eb;
    border-color: #2563eb;
    background: #eff6ff;
}

.time-tab:disabled[b-3qy6rehw90] {
    opacity: .6;
    cursor: not-allowed;
}

.date-input[b-3qy6rehw90] {
    height: 32px;
    padding: 0 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #111827;
    font-size: 13px;
}

.date-input:focus[b-3qy6rehw90] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.date-range-sep[b-3qy6rehw90] {
    color: #94a3b8;
    font-size: 12px;
}

.inline-alert[b-3qy6rehw90] {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid transparent;
    font-size: 13px;
    line-height: 1.5;
}

.inline-alert.warning[b-3qy6rehw90] {
    background: #fffbeb;
    border-color: #fde68a;
    color: #854d0e;
}

.inline-alert.error[b-3qy6rehw90] {
    background: #fef2f2;
    border-color: #fecaca;
    color: #b91c1c;
}

.metric-search[b-3qy6rehw90] {
    min-width: 260px;
    padding: 7px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
}

.prometheus-content-card[b-3qy6rehw90] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.prometheus-content-wrapper[b-3qy6rehw90] {
    position: relative;
    min-height: 220px;
    padding: 20px;
}

.loading-overlay[b-3qy6rehw90] {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 64px;
    background: rgba(249, 250, 251, 0.72);
    backdrop-filter: blur(1px);
    border-radius: 8px;
}

.loading-card[b-3qy6rehw90] {
    min-width: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    color: #374151;
}

.loading-spinner[b-3qy6rehw90] {
    width: 18px;
    height: 18px;
    border: 2px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: prometheus-spin-b-3qy6rehw90 .8s linear infinite;
}

.loading-text[b-3qy6rehw90] {
    color: #374151;
    font-size: 13px;
    font-weight: 500;
}

.empty-card[b-3qy6rehw90] {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: #94a3b8;
}

.empty-card.compact[b-3qy6rehw90] {
    min-height: 120px;
}

@keyframes prometheus-spin-b-3qy6rehw90 {
    to { transform: rotate(360deg); }
}

.prometheus-content-shell[b-3qy6rehw90] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.summary-grid[b-3qy6rehw90] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.summary-grid.compact[b-3qy6rehw90] {
    margin-top: 16px;
}

.summary-card[b-3qy6rehw90] {
    padding: 14px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #edf2f7;
}

.summary-card.attention[b-3qy6rehw90] {
    border-color: #fcd34d;
    background: #fffbeb;
}

.summary-card.healthy[b-3qy6rehw90] {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.summary-label[b-3qy6rehw90] {
    font-size: 13px;
    color: #64748b;
}

.summary-value[b-3qy6rehw90] {
    margin-top: 6px;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
    color: #0f172a;
}

.summary-sub[b-3qy6rehw90] {
    margin-top: 4px;
    font-size: 12px;
    color: #94a3b8;
}

.tab-summary-grid[b-3qy6rehw90] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.tab-summary-card[b-3qy6rehw90] {
    text-align: left;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    transition: all .2s;
}

.tab-summary-card:hover[b-3qy6rehw90] {
    border-color: #2563eb;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .12);
}

.tab-summary-title[b-3qy6rehw90] {
    color: #0f172a;
    font-weight: 700;
}

.tab-summary-value[b-3qy6rehw90] {
    margin-top: 8px;
    color: #2563eb;
    font-size: 28px;
    font-weight: 800;
}

.tab-summary-desc[b-3qy6rehw90] {
    margin-top: 6px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.5;
}

.metric-browser-layout[b-3qy6rehw90] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.group-sidebar[b-3qy6rehw90] {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    align-self: start;
}

.group-sidebar-header[b-3qy6rehw90] {
    padding: 12px 16px;
    border-bottom: 1px solid #e5e7eb;
    color: #111827;
    font-weight: 700;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.group-sidebar-body[b-3qy6rehw90] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 6px;
    padding: 12px;
}

.group-tab[b-3qy6rehw90] {
    width: 100%;
    text-align: left;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    border-radius: 8px;
    padding: 10px 12px;
    cursor: pointer;
    transition: all .15s ease;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 10px;
    align-items: center;
}

.group-tab:hover[b-3qy6rehw90],
.group-tab.active[b-3qy6rehw90] {
    border-color: #2563eb;
    background: #eff6ff;
}

.group-tab-title[b-3qy6rehw90] {
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}

.group-tab-count[b-3qy6rehw90],
.group-tab-hint[b-3qy6rehw90] {
    color: #64748b;
    font-size: 12px;
}

.metric-browser-content[b-3qy6rehw90] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.metric-section[b-3qy6rehw90] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.section-header-row[b-3qy6rehw90] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.section-title[b-3qy6rehw90] {
    color: #0f172a;
    font-size: 15px;
    font-weight: 700;
}

.section-hint[b-3qy6rehw90] {
    color: #94a3b8;
    font-size: 12px;
}

.chart-grid[b-3qy6rehw90] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
    gap: 16px;
}

.chart-card[b-3qy6rehw90] {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 12px;
    background: #fff;
}

.chart-card-header[b-3qy6rehw90] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}

.chart-title[b-3qy6rehw90] {
    color: #0f172a;
    font-size: 14px;
    font-weight: 700;
}

.chart-subtitle[b-3qy6rehw90],
.chart-meta[b-3qy6rehw90] {
    margin-top: 4px;
    color: #94a3b8;
    font-size: 12px;
}

.chart-meta[b-3qy6rehw90] {
    white-space: nowrap;
}

.query-text[b-3qy6rehw90] {
    margin-top: 8px;
    padding: 6px 8px;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.metric-name-cell .metric-name[b-3qy6rehw90] {
    color: #0f172a;
    font-weight: 700;
}

.metric-name-cell .metric-name-en[b-3qy6rehw90] {
    margin-top: 3px;
    color: #94a3b8;
    font-size: 11px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.metric-name-cell .metric-help[b-3qy6rehw90] {
    max-width: 680px;
    margin-top: 4px;
    color: #94a3b8;
    font-size: 11px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.metric-group-cell[b-3qy6rehw90] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.metric-group-label[b-3qy6rehw90],
.metric-source-cell[b-3qy6rehw90] {
    color: #334155;
    font-size: 13px;
}

.metric-group-code[b-3qy6rehw90] {
    color: #94a3b8;
    font-size: 11px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.table-responsive[b-3qy6rehw90] {
    overflow-x: auto;
}

.metrics-table[b-3qy6rehw90] {
    width: 100%;
    min-width: 1180px;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.metrics-table thead th[b-3qy6rehw90] {
    background: #f8fafc;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.metrics-table tbody td[b-3qy6rehw90] {
    padding: 12px 14px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: top;
    color: #111827;
    font-size: 13px;
}

.metrics-table tbody tr:hover[b-3qy6rehw90] {
    background: #f8fafc;
}

.status-tag[b-3qy6rehw90] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.status-tag.available[b-3qy6rehw90] {
    background: #dcfce7;
    color: #166534;
}

.status-tag.unavailable[b-3qy6rehw90] {
    background: #f1f5f9;
    color: #64748b;
}

.usage-tag[b-3qy6rehw90] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border-radius: 4px;
    color: #1d4ed8;
    background: #eff6ff;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.usage-empty[b-3qy6rehw90] {
    color: #94a3b8;
}

.table-limit-hint[b-3qy6rehw90] {
    margin-top: 10px;
    color: #94a3b8;
    font-size: 12px;
}

@media (max-width: 1100px) {
    .metric-browser-layout[b-3qy6rehw90] {
        grid-template-columns: 1fr;
    }

    .group-sidebar-body[b-3qy6rehw90] {
        max-height: none;
    }

    .chart-grid[b-3qy6rehw90] {
        grid-template-columns: 1fr;
    }

    .metric-search[b-3qy6rehw90] {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .monitor-cluster-filter[b-3qy6rehw90] {
        width: 100%;
        min-width: 0 !important;
        max-width: none;
    }

    .page-header[b-3qy6rehw90],
    .prometheus-toolbar[b-3qy6rehw90],
    .chart-card-header[b-3qy6rehw90],
    .section-header-row[b-3qy6rehw90] {
        align-items: flex-start;
        flex-direction: column;
    }

    .metric-search[b-3qy6rehw90],
    .gpu-monitoring-date-range[b-3qy6rehw90]  .ant-picker {
        width: 100% !important;
    }
}
/* /Components/Pages/Roles.razor.rz.scp.css */

.page-container[b-z3a04awkcp] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-z3a04awkcp] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-z3a04awkcp] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.header-left[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-z3a04awkcp] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 按钮 */
.btn[b-z3a04awkcp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn-primary[b-z3a04awkcp] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover[b-z3a04awkcp] {
    background: #1d4ed8;
}

.btn-default[b-z3a04awkcp] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover[b-z3a04awkcp] {
    background: #f9fafb;
}

.btn-danger[b-z3a04awkcp] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover[b-z3a04awkcp] {
    background: #dc2626;
}

.btn-sm[b-z3a04awkcp] {
    padding: 4px 10px;
    font-size: 13px;
}

.btn:disabled[b-z3a04awkcp] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* 搜索栏 */
.search-bar[b-z3a04awkcp] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    gap: 16px;
}

.search-input-wrapper[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    background: white;
    flex: 1;
    max-width: 400px;
}

.search-input-wrapper:focus-within[b-z3a04awkcp] {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.search-icon[b-z3a04awkcp] {
    color: #9ca3af;
    font-size: 14px;
}

.search-input[b-z3a04awkcp] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: #111827;
}

.search-input[b-z3a04awkcp]::placeholder {
    color: #9ca3af;
}

.search-clear-btn[b-z3a04awkcp] {
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    color: #9ca3af;
    font-size: 12px;
}

.search-clear-btn:hover[b-z3a04awkcp] {
    color: #6b7280;
}

.search-info[b-z3a04awkcp] {
    color: #6b7280;
    font-size: 14px;
}

.search-info strong[b-z3a04awkcp] {
    color: #111827;
}

/* 角色网格 */
.roles-grid[b-z3a04awkcp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 16px;
}

/* 角色卡片 */
.role-card[b-z3a04awkcp] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
    transition: all 0.15s;
}

.role-card:hover[b-z3a04awkcp] {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    border-color: #d1d5db;
}

.role-header[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border-bottom: 1px solid #f3f4f6;
}

.role-color-bar[b-z3a04awkcp] {
    width: 4px;
    height: 40px;
    border-radius: 2px;
    flex-shrink: 0;
}

.role-info[b-z3a04awkcp] {
    flex: 1;
    min-width: 0;
}

.role-name[b-z3a04awkcp] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.role-code[b-z3a04awkcp] {
    margin: 4px 0 0 0;
    font-size: 12px;
    color: #6b7280;
    font-family: monospace;
}

.role-badges[b-z3a04awkcp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-end;
}

.badge[b-z3a04awkcp] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.badge-system[b-z3a04awkcp] {
    background: #dbeafe;
    color: #2563eb;
}

.badge-disabled[b-z3a04awkcp] {
    background: #fee2e2;
    color: #ef4444;
}

.role-body[b-z3a04awkcp] {
    padding: 16px;
}

.role-desc[b-z3a04awkcp] {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
    margin-bottom: 12px;
}

.role-meta[b-z3a04awkcp] {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: #9ca3af;
}

.meta-item[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.color-preview[b-z3a04awkcp] {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    display: inline-block;
    border: 1px solid #e5e7eb;
}

.role-actions[b-z3a04awkcp] {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid #f3f4f6;
    background: #fafafa;
    justify-content: flex-end;
}

/* 弹窗样式 */
.modal-overlay[b-z3a04awkcp] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 24px;
}

.modal-content[b-z3a04awkcp] {
    background: white;
    border-radius: 12px;
    width: 100%;
    max-width: 500px;
    max-height: 90vh;
    overflow: auto;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.modal-header[b-z3a04awkcp] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-z3a04awkcp] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-title i[b-z3a04awkcp] {
    color: #2563eb;
}

.modal-close[b-z3a04awkcp] {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    font-size: 16px;
}

.modal-close:hover[b-z3a04awkcp] {
    background: #f3f4f6;
    color: #111827;
}

.modal-body[b-z3a04awkcp] {
    padding: 20px;
}

.modal-footer[b-z3a04awkcp] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    background: #fafafa;
}

/* 表单样式 */
.form-group[b-z3a04awkcp] {
    margin-bottom: 16px;
}

.form-row[b-z3a04awkcp] {
    display: flex;
    gap: 16px;
}

.form-group-half[b-z3a04awkcp] {
    flex: 1;
}

.form-label[b-z3a04awkcp] {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-z3a04awkcp]::after {
    content: " *";
    color: #ef4444;
}

.form-input[b-z3a04awkcp] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #111827;
    transition: all 0.15s;
}

.form-input:focus[b-z3a04awkcp] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-input:disabled[b-z3a04awkcp] {
    background: #f3f4f6;
    color: #6b7280;
    cursor: not-allowed;
}

.form-textarea[b-z3a04awkcp] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #111827;
    resize: vertical;
    min-height: 60px;
    font-family: inherit;
}

.form-textarea:focus[b-z3a04awkcp] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-hint[b-z3a04awkcp] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #9ca3af;
}

.color-input-wrapper[b-z3a04awkcp] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.color-picker[b-z3a04awkcp] {
    width: 36px;
    height: 36px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    padding: 2px;
}

/* 开关样式 */
.switch-wrapper[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.switch[b-z3a04awkcp] {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.switch input[b-z3a04awkcp] {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider[b-z3a04awkcp] {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d1d5db;
    transition: 0.2s;
    border-radius: 24px;
}

.switch-slider[b-z3a04awkcp]::before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    transition: 0.2s;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.switch input:checked + .switch-slider[b-z3a04awkcp] {
    background-color: #2563eb;
}

.switch input:checked + .switch-slider[b-z3a04awkcp]::before {
    transform: translateX(20px);
}

.switch-label[b-z3a04awkcp] {
    font-size: 14px;
    color: #374151;
}

/* 加载和空状态 */
.loading-container[b-z3a04awkcp], .empty-state[b-z3a04awkcp] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-z3a04awkcp] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-z3a04awkcp 1s linear infinite;
}

@keyframes spin-b-z3a04awkcp {
    to { transform: rotate(360deg); }
}

.loading-text[b-z3a04awkcp] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-icon[b-z3a04awkcp] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 12px;
}

.empty-state p[b-z3a04awkcp] {
    color: #6b7280;
    font-size: 14px;
    margin: 0;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-z3a04awkcp] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .header-right[b-z3a04awkcp] {
        width: 100%;
        justify-content: flex-start;
    }

    .search-bar[b-z3a04awkcp] {
        flex-direction: column;
        align-items: stretch;
    }

    .search-input-wrapper[b-z3a04awkcp] {
        max-width: none;
    }

    .roles-grid[b-z3a04awkcp] {
        grid-template-columns: 1fr;
    }

    .form-row[b-z3a04awkcp] {
        flex-direction: column;
    }
}

.edit-permission-summary[b-z3a04awkcp] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--console-color-border);
    border-radius: var(--console-radius-sm);
    background: var(--console-color-bg-subtle);
}

.edit-permission-summary-loading[b-z3a04awkcp] {
    display: flex;
    justify-content: center;
    min-height: 40px;
    padding: 8px;
}

.edit-permission-summary-error[b-z3a04awkcp] {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
}

.edit-permission-summary-error[b-z3a04awkcp]  .ant-alert {
    width: 100%;
}

.edit-permission-summary-content[b-z3a04awkcp] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.edit-permission-summary-header[b-z3a04awkcp] {
    color: var(--console-color-text-2);
    font-size: 12px;
    font-weight: 600;
}

.edit-permission-summary-group[b-z3a04awkcp] {
    padding-top: 8px;
    border-top: 1px solid var(--console-color-border);
}

.edit-permission-summary-group-title[b-z3a04awkcp] {
    margin-bottom: 4px;
}

.edit-permission-summary-type[b-z3a04awkcp] {
    display: flex;
    gap: 8px;
    padding: 2px 0 2px 8px;
    font-size: 13px;
    line-height: 1.5;
}

.edit-permission-summary-type-name[b-z3a04awkcp] {
    flex: 0 0 56px;
    color: var(--console-color-text-3);
}

.edit-permission-summary-items[b-z3a04awkcp] {
    min-width: 0;
    color: var(--console-color-text-1);
    overflow-wrap: anywhere;
}

.edit-permission-summary-hidden[b-z3a04awkcp] {
    margin-top: 4px;
    color: var(--console-color-warning);
    font-size: 12px;
}

/* 菜单分配 */
.menu-assign-group[b-z3a04awkcp] {
    margin-bottom: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px;
}

.menu-assign-group-title[b-z3a04awkcp] {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f3f4f6;
}

.menu-checkbox[b-z3a04awkcp] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    cursor: pointer;
    font-size: 14px;
    color: #374151;
}

.menu-checkbox input[type="checkbox"][b-z3a04awkcp] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.menu-assign-submenu[b-z3a04awkcp] {
    margin: 4px 0;
}

.permission-badge[b-z3a04awkcp] {
    display: inline-block;
    font-size: 11px;
    font-family: monospace;
    color: #7c3aed;
    background: #f5f3ff;
    border: 1px solid #ddd6fe;
    padding: 0 4px;
    border-radius: 3px;
    margin-left: 6px;
}

/* 角色页使用与数据集列表相同的白色画布、页头和表格面板。 */
.page-container.console-list-page[b-z3a04awkcp] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-z3a04awkcp] {
    width: 100%;
    min-height: 0;
}

.page-container.console-list-page .page-header[b-z3a04awkcp] {
    align-items: flex-start;
    padding-bottom: var(--console-space-4);
    margin-bottom: var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split);
}

.page-container.console-list-page .header-left[b-z3a04awkcp] {
    align-items: flex-start;
}

.page-container.console-list-page .role-header-icon[b-z3a04awkcp] {
    margin-top: 5px;
    color: var(--console-color-primary);
}

.roles-list-surface[b-z3a04awkcp] {
    flex: 1 1 auto;
    min-height: 240px;
    border-radius: var(--console-radius-md);
}

.roles-table-scroll[b-z3a04awkcp] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: auto;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-content {
    overflow-x: auto;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-content table {
    min-width: 1220px;
    table-layout: fixed;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-thead > tr > th,
.roles-list-surface[b-z3a04awkcp]  .ant-table-tbody > tr > td {
    white-space: nowrap;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-thead > tr > th,
.roles-list-surface[b-z3a04awkcp]  .ant-table-tbody > tr > td {
    overflow: hidden;
    text-overflow: ellipsis;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-tbody > tr > td:nth-child(1) {
    min-width: 120px;
}

.roles-list-surface[b-z3a04awkcp]  .ant-table-tbody > tr > td:nth-child(3) {
    min-width: 260px;
    white-space: normal;
}

.roles-list-surface .role-name-cell[b-z3a04awkcp],
.roles-list-surface .role-code-tag[b-z3a04awkcp] {
    white-space: nowrap;
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-z3a04awkcp] {
        padding: var(--console-space-4);
    }
}
/* /Components/Pages/SchedulingCenter.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.scheduling-page[b-bkmyq6gx24] {
/*    max-width: 1440px;*/
    margin: 0 auto;
}

/* 与用户管理页相同，滚动由 system-management-page 页面外壳统一承载。 */
.scheduling-page .console-list-page__content[b-bkmyq6gx24] {
    min-height: max-content !important;
}

.page-heading[b-bkmyq6gx24],
.section-heading[b-bkmyq6gx24] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.section-heading > div:first-child[b-bkmyq6gx24] {
    flex: 1 1 auto;
    min-width: 0;
}

.section-heading .heading-actions[b-bkmyq6gx24] {
    flex: 0 1 auto;
}

.heading-actions[b-bkmyq6gx24] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.metric-grid[b-bkmyq6gx24] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.queue-card[b-bkmyq6gx24] {
    border-radius: 4px;
}

.queue-surface[b-bkmyq6gx24] {
    flex: 1 1 auto;
    min-height: 260px;
    padding: 16px;
    overflow: hidden;
}

.queue-table-wrap[b-bkmyq6gx24] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    max-height: clamp(260px, 48vh, 520px);
    background: #fff;
    border: 1px solid var(--console-color-border, #f0f0f0);
    border-radius: var(--console-radius-base, 8px);
}

.queue-table[b-bkmyq6gx24] {
    width: 100%;
    min-width: 1480px;
    border-collapse: collapse;
    table-layout: fixed;
}

.queue-table th[b-bkmyq6gx24],
.queue-table td[b-bkmyq6gx24] {
    padding: 10px 12px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid var(--console-color-split, #f0f0f0);
    color: var(--console-color-text-2, #595959);
    font-size: 13px;
    line-height: 20px;
}

.queue-table th[b-bkmyq6gx24] {
    background: var(--console-color-bg-layout, #fafafa);
    color: var(--console-color-text-1, #262626);
    font-weight: 600;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.queue-table tbody tr:last-child td[b-bkmyq6gx24] {
    border-bottom: 0;
}

.queue-table tbody tr:hover td[b-bkmyq6gx24] {
    background: #fafcff;
}

.queue-name[b-bkmyq6gx24] {
    color: var(--console-color-text-1, #262626) !important;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.queue-decision[b-bkmyq6gx24] {
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.queue-actions[b-bkmyq6gx24] {
    min-width: 240px;
    white-space: nowrap;
}

.queue-table-state[b-bkmyq6gx24] {
    padding: 28px 16px !important;
    text-align: center !important;
    color: var(--console-color-text-3, #8c8c8c) !important;
}

.policy-list-dialog[b-bkmyq6gx24] {
    display: grid;
    gap: 20px;
    min-width: 0;
}

.policy-scope-bar[b-bkmyq6gx24] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px;
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: var(--console-radius-base, 4px);
    background: var(--console-color-bg-tile, #fafafa);
}

.policy-scope-copy[b-bkmyq6gx24] {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.policy-scope-copy label[b-bkmyq6gx24],
.policy-list-toolbar h3[b-bkmyq6gx24] {
    margin: 0;
    color: var(--console-color-text-1, #262626);
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}

.policy-scope-copy span[b-bkmyq6gx24],
.policy-list-toolbar p[b-bkmyq6gx24] {
    margin: 0;
    color: var(--console-color-text-3, #8c8c8c);
    font-size: 13px;
    line-height: 20px;
}

.policy-list-toolbar[b-bkmyq6gx24] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.policy-list-toolbar > div[b-bkmyq6gx24] {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.policy-list-action[b-bkmyq6gx24] {
    flex: 0 0 auto;
}

.policy-table-shell[b-bkmyq6gx24] {
    min-width: 0;
}

.policy-form[b-bkmyq6gx24] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.policy-form-grid[b-bkmyq6gx24] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.policy-form-grid > div[b-bkmyq6gx24] {
    min-width: 0;
}

@media (max-width: 1200px) {
    .metric-grid[b-bkmyq6gx24] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .page-heading[b-bkmyq6gx24],
    .section-heading[b-bkmyq6gx24] {
        align-items: flex-start;
        flex-direction: column;
    }

    .section-heading .heading-actions[b-bkmyq6gx24] {
        width: 100%;
    }

    .metric-grid[b-bkmyq6gx24] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .metric-grid[b-bkmyq6gx24],
    .policy-form-grid[b-bkmyq6gx24] {
        grid-template-columns: 1fr;
    }

    .policy-list-dialog[b-bkmyq6gx24] {
        gap: 16px;
    }

    .policy-scope-bar[b-bkmyq6gx24],
    .policy-list-toolbar[b-bkmyq6gx24] {
        align-items: stretch;
        flex-direction: column;
        gap: 12px;
    }

    .policy-list-action[b-bkmyq6gx24] {
        align-self: flex-start;
    }
}
/* /Components/Pages/SshAccess/SshPublicKeys.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.ssh-pk-page .console-list-page__content[b-jxcbril3b6] {
        overflow: auto;
    }

    .ssh-pk-page[b-jxcbril3b6]  .ant-card {
        border-radius: var(--console-radius-md, 6px);
        box-shadow: none;
    }

    .ssh-pk-page[b-jxcbril3b6]  .ant-table-wrapper {
        overflow: auto;
    }

    /* 头部 */
    .ssh-pk-header[b-jxcbril3b6] {
        margin-bottom: 20px;
    }
    .ssh-pk-header-left[b-jxcbril3b6] {
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .ssh-pk-header h1[b-jxcbril3b6] {
        margin: 0;
        font-size: 22px;
        font-weight: 700;
        color: #111827;
    }
    .ssh-pk-subtitle[b-jxcbril3b6] {
        margin: 6px 0 0 36px;
        font-size: 14px;
        color: #6b7280;
    }

    /* 工具栏 */
    .ssh-pk-toolbar[b-jxcbril3b6] {
        margin-bottom: 12px;
    }
    .ssh-pk-add-form[b-jxcbril3b6] {
        display: flex;
        gap: 8px;
        align-items: center;
    }

    /* 步骤 */
    .gw-steps[b-jxcbril3b6] {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    .gw-step[b-jxcbril3b6] {
        display: flex;
        gap: 14px;
        align-items: flex-start;
    }
    .gw-step-num[b-jxcbril3b6] {
        flex: 0 0 28px;
        height: 28px;
        border-radius: 50%;
        background: #2563eb;
        color: white;
        font-size: 13px;
        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .gw-step-body[b-jxcbril3b6] {
        flex: 1;
    }
    .gw-step-title[b-jxcbril3b6] {
        font-size: 14px;
        font-weight: 600;
        color: #111827;
        margin-bottom: 4px;
    }
    .gw-step-desc[b-jxcbril3b6] {
        font-size: 13px;
        color: #6b7280;
        line-height: 1.6;
    }
    .gw-step-desc code[b-jxcbril3b6] {
        background: #f3f4f6;
        padding: 1px 6px;
        border-radius: 3px;
        font-family: 'Consolas', monospace;
        font-size: 12px;
    }
/* /Components/Pages/Storage/MinioConfiguration.razor.rz.scp.css */
.page-container[b-ho83nz4ke6] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.main-content[b-ho83nz4ke6],
.storage-configuration-content[b-ho83nz4ke6] {
    width: 100%;
    min-height: 0;
}

.storage-tabs[b-ho83nz4ke6] {
    margin-top: 16px;
}

.page-state[b-ho83nz4ke6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 72px 0;
}

.error-state[b-ho83nz4ke6] {
    align-items: stretch;
}

.error-state > :last-child[b-ho83nz4ke6] {
    align-self: center;
}

.configuration-form[b-ho83nz4ke6] {
    margin-top: 16px;
}

.configuration-section[b-ho83nz4ke6] {
    margin-top: 16px;
    overflow: hidden;
}

.panel-header[b-ho83nz4ke6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    padding: 0 20px;
    border-bottom: 1px solid #f0f0f0;
}

.panel-title-row[b-ho83nz4ke6] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.panel-title[b-ho83nz4ke6] {
    font-size: 16px;
    font-weight: 600;
    color: #1f2937;
}

.panel-icon[b-ho83nz4ke6] {
    color: #1677ff;
}

.panel-body[b-ho83nz4ke6] {
    padding: 20px;
}

.configuration-grid[b-ho83nz4ke6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 2px;
}

.switch-field[b-ho83nz4ke6] {
    display: flex;
    align-items: center;
    min-height: 32px;
    gap: 10px;
}

.field-hint[b-ho83nz4ke6],
.updated-hint[b-ho83nz4ke6] {
    margin-top: 5px;
    color: #8c8c8c;
    font-size: 12px;
    line-height: 1.5;
}

.configuration-actions[b-ho83nz4ke6] {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 16px;
    padding: 14px 18px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.04);
    backdrop-filter: blur(6px);
}

.updated-hint[b-ho83nz4ke6] {
    margin-top: 8px;
    text-align: right;
}

@media (max-width: 900px) {
    .configuration-grid[b-ho83nz4ke6] {
        grid-template-columns: 1fr;
    }

    .configuration-grid > div:empty[b-ho83nz4ke6] {
        display: none;
    }
}

@media (max-width: 600px) {
    .page-container[b-ho83nz4ke6] {
        padding: var(--console-space-4);
    }
}
/* /Components/Pages/Storage/SftpCredentials.razor.rz.scp.css */
.page-container[b-qlpmmackyw] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.main-content[b-qlpmmackyw] {
    width: 100%;
    min-height: 0;
}

.page-state[b-qlpmmackyw] {
    display: grid;
    min-height: 360px;
    place-items: center;
}

.page-header[b-qlpmmackyw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.header-left[b-qlpmmackyw],
.panel-title-row[b-qlpmmackyw],
.panel-actions[b-qlpmmackyw],
.copy-row[b-qlpmmackyw],
.secret-row[b-qlpmmackyw] {
    display: flex;
    align-items: center;
}

.header-left[b-qlpmmackyw],
.panel-title-row[b-qlpmmackyw] {
    gap: 10px;
    flex: 0 0 auto;
}

.header-icon[b-qlpmmackyw],
.panel-icon[b-qlpmmackyw] {
    color: #1677ff;
    font-size: 18px;
}

.page-title[b-qlpmmackyw] {
    margin: 0;
    color: #1f2937;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
}

.content-panel[b-qlpmmackyw] {
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
}

.credentials-list-surface[b-qlpmmackyw] {
    flex: 1 1 auto;
    min-height: 240px;
}

.service-panel[b-qlpmmackyw] {
    margin-bottom: 16px;
}

.personal-panel[b-qlpmmackyw] {
    max-width: 840px;
    margin: 0 auto;
}

.panel-header[b-qlpmmackyw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 64px;
    padding: 14px 20px;
    border-bottom: 1px solid #f0f0f0;
}

.panel-title[b-qlpmmackyw] {
    color: #111827;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
}

.panel-actions[b-qlpmmackyw] {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.panel-body[b-qlpmmackyw] {
    padding: 20px;
}

.diagnostics-body[b-qlpmmackyw] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.diag-row[b-qlpmmackyw] {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 10px 0;
}

.diag-row:not(:last-of-type)[b-qlpmmackyw] {
    border-bottom: 1px dashed #e5e7eb;
}

.diag-label[b-qlpmmackyw] {
    color: #374151;
    font-size: 14px;
    font-weight: 500;
}

.diag-status[b-qlpmmackyw] {
    min-width: 0;
}

.diag-detail[b-qlpmmackyw] {
    margin-top: 6px;
    color: #475569;
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.diag-hint[b-qlpmmackyw] {
    margin-top: 6px;
    color: #ad6800;
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.table-wrap[b-qlpmmackyw] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    padding: 0;
    overflow: auto;
}

.panel-header[b-qlpmmackyw]  .ant-input-search {
    width: 280px !important;
    max-width: 100%;
}

.credential-content[b-qlpmmackyw] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.form-section[b-qlpmmackyw] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.field-label[b-qlpmmackyw],
.muted-text[b-qlpmmackyw] {
    color: #6b7280;
    font-size: 13px;
}

.copy-row[b-qlpmmackyw] {
    gap: 8px;
}

.copy-row[b-qlpmmackyw]  .ant-input-affix-wrapper,
.copy-row[b-qlpmmackyw]  .ant-input {
    min-width: 0;
}

.secret-row[b-qlpmmackyw] {
    flex-wrap: wrap;
    gap: 4px;
    min-width: 0;
}

.secret-row code[b-qlpmmackyw],
.command-row code[b-qlpmmackyw],
.path-panel code[b-qlpmmackyw] {
    font-family: Consolas, Monaco, monospace;
    overflow-wrap: anywhere;
    word-break: break-all;
}

.command-row code[b-qlpmmackyw] {
    font-size: 12px;
}

.warning-text[b-qlpmmackyw] {
    color: #ad6800;
}

.path-panel[b-qlpmmackyw] {
    padding: 12px 14px;
    border-left: 3px solid #1677ff;
    border-radius: 4px;
    background: #f6f9fe;
    color: #334155;
    font-size: 13px;
    line-height: 1.8;
}

.path-title[b-qlpmmackyw] {
    margin-bottom: 4px;
    color: #1f2937;
    font-weight: 600;
}

.path-hint[b-qlpmmackyw] {
    margin-top: 4px;
    color: #ad6800;
}

[b-qlpmmackyw] .ant-alert {
    border-radius: 4px;
}

[b-qlpmmackyw] .ant-table-wrapper {
    width: 100%;
}

[b-qlpmmackyw] .ant-table-cell {
    vertical-align: middle;
}

[b-qlpmmackyw] .ant-table-thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
}

[b-qlpmmackyw] .ant-space {
    column-gap: 2px !important;
}

@media (max-width: 768px) {
    .page-container[b-qlpmmackyw] {
        padding: 14px 12px 24px;
    }

    .page-header[b-qlpmmackyw],
    .panel-header[b-qlpmmackyw] {
        align-items: stretch;
        flex-direction: column;
    }

    .page-header[b-qlpmmackyw]  .ant-btn,
    .panel-actions[b-qlpmmackyw],
    .panel-actions > span[b-qlpmmackyw],
    .panel-actions[b-qlpmmackyw]  .ant-btn {
        width: 100%;
    }

    .panel-header[b-qlpmmackyw],
    .panel-body[b-qlpmmackyw] {
        padding: 14px 16px;
    }

    .panel-header[b-qlpmmackyw]  .ant-input-search {
        width: 100% !important;
    }

    .diag-row[b-qlpmmackyw] {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .table-wrap[b-qlpmmackyw] {
        padding: 0;
    }

    .copy-row[b-qlpmmackyw] {
        align-items: stretch;
    }
}
/* /Components/Pages/Storage/UploadTasks.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.upload-tasks-page .console-list-page__content[b-5qam0mp9ba] { overflow: auto; }

/* 页面头部 */
.page-header[b-5qam0mp9ba] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-5qam0mp9ba] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.header-right[b-5qam0mp9ba] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-title[b-5qam0mp9ba] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.page-subtitle[b-5qam0mp9ba] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
}

/* 筛选工具栏 */
.filter-toolbar[b-5qam0mp9ba] {
    background: #fff;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    padding: 12px 16px;
    margin-bottom: 16px;
}

.filter-row[b-5qam0mp9ba] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-item[b-5qam0mp9ba] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 140px;
}

.filter-label[b-5qam0mp9ba] {
    font-size: 12px;
    color: #6b7280;
}

.transfer-section-card[b-5qam0mp9ba] {
    margin-bottom: 16px;
}

.transfer-section-card[b-5qam0mp9ba]  .ant-card {
    border-radius: 6px;
}

.transfer-section-header[b-5qam0mp9ba] {
    display: flex;
    min-height: 64px;
    padding: 16px 20px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.transfer-section-header h2[b-5qam0mp9ba] {
    font-size: 15px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 4px 0;
}

.transfer-section-header p[b-5qam0mp9ba] {
    font-size: 12px;
    color: #6b7280;
    margin: 0;
}

/* 表格 */
.table-wrap[b-5qam0mp9ba] {
    width: 100%;
    overflow-x: auto;
}

.table[b-5qam0mp9ba] {
    width: 100%;
    border-collapse: collapse;
}

.table th[b-5qam0mp9ba], .table td[b-5qam0mp9ba] {
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 12px;
    text-align: left;
    font-size: 13px;
    vertical-align: middle;
}

.table th[b-5qam0mp9ba] {
    color: #64748b;
    font-size: 12px;
    background: #f8fafc;
    white-space: nowrap;
}

.table tbody tr:hover[b-5qam0mp9ba] {
    background: #f9fafb;
}

/* 进度条 */
.progress-bar[b-5qam0mp9ba] {
    height: 6px;
    background: #f0f0f0;
    border-radius: 3px;
    overflow: hidden;
    display: inline-block;
    width: 120px;
    vertical-align: middle;
}

.progress-fill[b-5qam0mp9ba] {
    height: 100%;
    background: linear-gradient(90deg, #2563eb, #16a34a);
    border-radius: 3px;
    transition: width 0.3s;
}

.progress-fill.exception[b-5qam0mp9ba] {
    background: #dc2626;
}

.progress-text[b-5qam0mp9ba] {
    font-size: 12px;
    color: #6b7280;
    margin-left: 8px;
    vertical-align: middle;
}

/* 状态徽章 */
.status-badge[b-5qam0mp9ba] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
}

.status-badge.s-completed[b-5qam0mp9ba] { background: #ecfdf5; color: #10b981; }
.status-badge.s-uploading[b-5qam0mp9ba] { background: #eff6ff; color: #2563eb; }
.status-badge.s-pending[b-5qam0mp9ba] { background: #f3f4f6; color: #6b7280; }
.status-badge.s-paused[b-5qam0mp9ba] { background: #fef3c7; color: #d97706; }
.status-badge.s-error[b-5qam0mp9ba] { background: #fef2f2; color: #dc2626; }
.status-badge.s-cancelled[b-5qam0mp9ba] { background: #f3f4f6; color: #9ca3af; }
.status-badge.s-interrupted[b-5qam0mp9ba] { background: #fff7ed; color: #ea580c; }

/* 空表格 */
.empty-table[b-5qam0mp9ba] {
    padding: 44px 20px;
}

.empty-table-icon[b-5qam0mp9ba] {
    font-size: 36px;
    margin-bottom: 12px;
    display: block;
}

.empty-table p[b-5qam0mp9ba] {
    margin: 0;
    font-size: 14px;
}

/* 按钮 */
.btn[b-5qam0mp9ba] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn:disabled[b-5qam0mp9ba] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-outline[b-5qam0mp9ba] {
    background: white;
    color: #374151;
    border-color: #cbd5e1;
}

.btn-outline:hover:not(:disabled)[b-5qam0mp9ba] {
    background: #f8fafc;
    border-color: #94a3b8;
}

.btn-link[b-5qam0mp9ba] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    padding: 2px 4px;
    color: #2563eb;
}

.btn-link-danger[b-5qam0mp9ba] {
    color: #dc2626;
}

.btn-link:hover[b-5qam0mp9ba] {
    text-decoration: underline;
}

/* 输入框 */
.input[b-5qam0mp9ba] {
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 13px;
    color: #111827;
    background: white;
}

.input:focus[b-5qam0mp9ba] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* 加载状态 */
.loading-container[b-5qam0mp9ba] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 300px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.loading-spinner[b-5qam0mp9ba] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-5qam0mp9ba 1s linear infinite;
}

.loading-text[b-5qam0mp9ba] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

@keyframes spin-b-5qam0mp9ba {
    to { transform: rotate(360deg); }
}

.import-files-row td[b-5qam0mp9ba] { background: #f9fafb; }
.import-files-summary[b-5qam0mp9ba] { color: #6b7280; font-size: 12px; margin: 8px 0; }
.sub-table[b-5qam0mp9ba] { background: #fff; border-radius: 6px; }
.sub-table th[b-5qam0mp9ba] { background: #f3f4f6; font-size: 12px; }
.sub-table td[b-5qam0mp9ba] { font-size: 12px; }
.file-path-cell[b-5qam0mp9ba] { max-width: 480px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Consolas, monospace; }
.error-icon[b-5qam0mp9ba] { color: #dc2626; margin-left: 6px; cursor: help; }
.stall-icon[b-5qam0mp9ba] { color: #f59e0b; margin-left: 6px; cursor: help; }
.error-banner[b-5qam0mp9ba] { display: flex; gap: 10px; align-items: flex-start; background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; padding: 10px 12px; border-radius: 6px; margin: 8px 0; }
.error-banner i[b-5qam0mp9ba] { font-size: 16px; margin-top: 2px; }
.error-banner-title[b-5qam0mp9ba] { font-weight: 600; margin-bottom: 4px; }
.error-banner-msg[b-5qam0mp9ba] { font-size: 13px; word-break: break-all; }

.image-progress-message[b-5qam0mp9ba] {
    display: block;
    border: 0;
    background: transparent;
    color: #2563eb;
    cursor: pointer;
    font-size: 12px;
    margin-top: 3px;
    padding: 0;
    text-align: left;
}

.image-progress-message:hover[b-5qam0mp9ba] {
    text-decoration: underline;
}

.image-import-detail-row td[b-5qam0mp9ba] {
    background: #f9fafb;
}

.image-import-detail-grid[b-5qam0mp9ba] {
    display: grid;
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: 12px 20px;
    padding: 12px 0;
}

.image-import-detail-grid > div[b-5qam0mp9ba] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.image-import-detail-grid span[b-5qam0mp9ba],
.image-import-reference span[b-5qam0mp9ba] {
    color: #64748b;
    font-size: 12px;
}

.image-import-detail-grid strong[b-5qam0mp9ba] {
    color: #111827;
    font-size: 13px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.image-import-reference[b-5qam0mp9ba] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 12px;
}

.image-import-reference code[b-5qam0mp9ba] {
    color: #334155;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.table td:last-child[b-5qam0mp9ba] {
    white-space: nowrap;
}

.table[b-5qam0mp9ba]  .ant-progress {
    min-width: 128px;
    margin: 0;
}

@media (max-width: 768px) {
    .page-container[b-5qam0mp9ba] { padding: 12px; }
    .page-header[b-5qam0mp9ba] { align-items: flex-start; }
    .filter-toolbar[b-5qam0mp9ba] { padding: 12px; }
    .transfer-section-header[b-5qam0mp9ba] { align-items: flex-start; flex-direction: column; }
    .image-import-detail-grid[b-5qam0mp9ba] { grid-template-columns: 1fr; }
}
.transfer-task-highlight[b-5qam0mp9ba] {
    background: #e6f4ff;
    box-shadow: inset 3px 0 0 #1677ff;
}
/* /Components/Pages/SysMenus.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式 page-container/page-header 等来自公共库 legacy-shared.css。 */
.page-icon[b-ywragp2291] {
    font-size: var(--console-font-md);
    color: var(--console-color-text-3);
}

.menu-route[b-ywragp2291] {
    color: var(--console-color-primary);
    font-size: var(--console-font-xs);
    font-family: monospace;
    background: var(--console-color-primary-bg);
    padding: 1px 6px;
    border-radius: var(--console-radius-sm);
}

.permission-tag[b-ywragp2291] {
    color: #7c3aed;
    font-size: var(--console-font-xs);
    font-family: monospace;
    background: #f5f3ff;
    padding: 1px 6px;
    border-radius: var(--console-radius-sm);
    border: 1px solid #ddd6fe;
}

.icon-item[b-ywragp2291] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border: 1px solid var(--console-color-border);
    border-radius: var(--console-radius-md);
    cursor: pointer;
    padding: 6px;
    background: var(--console-color-bg-card);
    transition: all .15s;
    gap: var(--console-space-1);
}

.icon-item:hover[b-ywragp2291],
.icon-item-selected[b-ywragp2291] {
    border-color: var(--console-color-primary);
    background: var(--console-color-primary-bg);
    color: var(--console-color-primary);
}

.icon-label[b-ywragp2291] {
    font-size: 10px;
    color: var(--console-color-text-3);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.icon-item-selected .icon-label[b-ywragp2291] {
    color: var(--console-color-primary);
}

/* 工作区卡片：一级层级 = 顶部工作区（研发工作台/运维中心/平台管理/账户管理）。
   卡片头承载工作区图标、名称、统计与编辑入口，卡片体是当前工作区的菜单树表格。 */
.sys-menu-workspace[b-ywragp2291] {
    flex: 0 0 auto;
    background: var(--console-color-bg-card);
    border: 1px solid var(--console-color-border);
    border-radius: var(--console-radius-lg, var(--console-radius-md));
    margin-bottom: var(--console-space-4);
    overflow: hidden;
}

.sys-menu-workspace__header[b-ywragp2291] {
    display: flex;
    align-items: center;
    gap: var(--console-space-3);
    padding: var(--console-space-3) var(--console-space-4);
    border-bottom: 1px solid var(--console-color-split, var(--console-color-border));
    background: var(--console-color-bg-layout, #f7f8fa);
}

.sys-menu-workspace__icon[b-ywragp2291] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--console-radius-md);
    font-size: 20px;
    color: var(--console-color-primary);
    background: var(--console-color-primary-bg);
    flex: none;
}

.sys-menu-workspace__heading[b-ywragp2291] {
    min-width: 0;
}

.sys-menu-workspace__title[b-ywragp2291] {
    display: flex;
    align-items: center;
    gap: var(--console-space-2);
    font-size: var(--console-font-md);
    font-weight: 600;
    color: var(--console-color-text-1);
    line-height: 1.4;
}

.sys-menu-workspace__meta[b-ywragp2291] {
    margin-top: 2px;
    font-size: var(--console-font-xs);
    color: var(--console-color-text-3);
}

.sys-menu-workspace__tabkey[b-ywragp2291] {
    font-family: monospace;
    color: var(--console-color-text-2);
}

.sys-menu-workspace__actions[b-ywragp2291] {
    margin-left: auto;
    flex: none;
}

.sys-menu-workspace__body[b-ywragp2291] {
    padding: 0 var(--console-space-2) var(--console-space-2);
}

.sys-menu-workspace__empty[b-ywragp2291] {
    padding: var(--console-space-5) var(--console-space-4);
    text-align: center;
    font-size: var(--console-font-sm);
    color: var(--console-color-text-3);
}

.sys-menu-workspace--archived .sys-menu-workspace__icon[b-ywragp2291] {
    color: var(--console-color-text-3);
    background: var(--console-color-bg-layout, #f0f0f0);
}

/* 所有工作区共享一张树形表格，层级由 Ant Design 的树行缩进表达。 */
.sys-menu-list-surface[b-ywragp2291] {
    background: var(--console-color-bg-card);
    border: 1px solid var(--console-color-border);
    border-radius: var(--console-radius-md);
    overflow: hidden;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-wrapper {
    margin: 0;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-thead > tr > th {
    background: var(--console-color-bg-layout, #f7f8fa);
    color: var(--console-color-text-3);
    font-size: var(--console-font-xs);
    font-weight: 500;
    white-space: nowrap;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-tbody > tr > td {
    vertical-align: middle;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-tbody > tr:hover > td {
    background: var(--console-color-primary-bg);
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-0 > td:first-child {
    font-weight: 500;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-1 > td:first-child,
.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-2 > td:first-child {
    position: relative;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-1 > td:first-child::before,
.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-2 > td:first-child::before {
    content: "";
    position: absolute;
    left: 20px;
    top: -17px;
    bottom: 17px;
    border-left: 1px solid var(--console-color-border);
    pointer-events: none;
}

.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-1 > td:first-child::after,
.sys-menu-list-surface[b-ywragp2291]  .ant-table-row-level-2 > td:first-child::after {
    content: "";
    position: absolute;
    left: 20px;
    top: 50%;
    width: 13px;
    border-top: 1px solid var(--console-color-border);
    pointer-events: none;
}

/* 菜单树单元格：二级层级 = 侧栏分组（加粗），菜单标识在独立列弱化显示。 */
.sys-menu-cell__title[b-ywragp2291] {
    display: flex;
    align-items: center;
    gap: var(--console-space-2);
    color: var(--console-color-text-1);
}

.sys-menu-cell__title--group[b-ywragp2291] {
    font-weight: 600;
}

.sys-menu-cell__icon[b-ywragp2291] {
    color: var(--console-color-text-3);
}

.sys-menu-cell__key[b-ywragp2291] {
    display: block;
    font-size: 11px;
    font-family: monospace;
    color: var(--console-color-text-3);
    white-space: nowrap;
}

.menu-presentation[b-ywragp2291] {
    display: block;
    color: var(--console-color-text-2);
    white-space: nowrap;
}

.menu-migration-note[b-ywragp2291] {
    display: block;
    margin-top: 2px;
    color: var(--console-color-text-3);
    font-size: var(--console-font-xs);
    white-space: nowrap;
}

.archived-menu-title[b-ywragp2291] {
    color: var(--console-color-text-3);
}

.archived-menu-tag[b-ywragp2291] {
    margin-left: var(--console-space-2);
}

.sys-menu-loading[b-ywragp2291] {
    align-items: center;
    justify-content: center;
    display: flex;
    min-height: 240px;
}
/* /Components/Pages/SystemDictionaries.razor.rz.scp.css */
/* 字典管理沿用控制台列表页骨架，仅保留表格与单元格的业务样式。 */
.page-container.console-list-page[b-ht6twa9mx3] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-ht6twa9mx3] {
    width: 100%;
    min-height: 0;
}

.dictionary-list-surface[b-ht6twa9mx3] {
    flex: 1 1 auto;
    min-height: 240px;
    border-radius: var(--console-radius-md);
}

.dictionary-list-surface[b-ht6twa9mx3]  .ant-empty {
    margin: auto;
}

.dictionary-types-scroll[b-ht6twa9mx3] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: auto;
}

.dictionary-list-surface[b-ht6twa9mx3]  .ant-table-content {
    overflow-x: auto;
}

.dictionary-list-surface[b-ht6twa9mx3]  .ant-table-content table {
    min-width: 1080px;
    table-layout: fixed;
}

.dictionary-list-surface[b-ht6twa9mx3]  .ant-table-thead > tr > th,
.dictionary-list-surface[b-ht6twa9mx3]  .ant-table-tbody > tr > td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dictionary-list-surface[b-ht6twa9mx3]  .ant-table-thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.dictionary-type-cell[b-ht6twa9mx3] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.dictionary-type-name[b-ht6twa9mx3] {
    overflow: hidden;
    color: var(--console-color-text-1);
    font-weight: 500;
    text-overflow: ellipsis;
}

.dictionary-code[b-ht6twa9mx3] {
    display: inline-block;
    overflow: hidden;
    color: var(--console-color-text-3);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dictionary-item-count[b-ht6twa9mx3],
.dictionary-muted[b-ht6twa9mx3] {
    color: var(--console-color-text-3);
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-ht6twa9mx3] {
        padding: var(--console-space-4);
    }
}
/* /Components/Pages/SystemDictionaryDetail.razor.rz.scp.css */
.page-container.console-list-page[b-79oxggbzjf] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.page-container.console-list-page > .main-content[b-79oxggbzjf] {
    width: 100%;
    min-height: 0;
}

.dictionary-items-surface[b-79oxggbzjf] {
    flex: 1 1 auto;
    min-height: 240px;
}

.dictionary-items-surface[b-79oxggbzjf]  .ant-empty {
    margin: auto;
}

.dictionary-items-scroll[b-79oxggbzjf] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: auto;
}

.dictionary-items-surface[b-79oxggbzjf]  .ant-table-content table {
    min-width: 1120px;
    table-layout: fixed;
}

.dictionary-items-surface[b-79oxggbzjf]  .ant-table-thead > tr > th,
.dictionary-items-surface[b-79oxggbzjf]  .ant-table-tbody > tr > td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dictionary-items-surface[b-79oxggbzjf]  .ant-table-thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.dictionary-code[b-79oxggbzjf],
.dictionary-value[b-79oxggbzjf] {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 12px;
}

.dictionary-description[b-79oxggbzjf],
.dictionary-value[b-79oxggbzjf] {
    display: block;
    overflow: hidden;
    color: var(--console-color-text-3);
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .page-container.console-list-page[b-79oxggbzjf] {
        padding: var(--console-space-4);
    }
}
/* /Components/Pages/TrainingManagement/CreateTrainingResource.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-ai2ugypnre] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-ai2ugypnre] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-ai2ugypnre] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-ai2ugypnre] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-ai2ugypnre] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
}

.back-btn:hover[b-ai2ugypnre] {
    background: #f9fafb;
    border-color: #d1d5db;
}

.page-title[b-ai2ugypnre] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

/* 卡片 */
.card[b-ai2ugypnre] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-body[b-ai2ugypnre] {
    padding: 24px;
}

/* 加载状态 */
.loading-container[b-ai2ugypnre] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}

.loading-spinner[b-ai2ugypnre] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-ai2ugypnre 1s linear infinite;
}

@keyframes spin-b-ai2ugypnre {
    to { transform: rotate(360deg); }
}

.loading-text[b-ai2ugypnre] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 表单容器 */
.form-container[b-ai2ugypnre] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 表单项 */
.form-group[b-ai2ugypnre] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-label[b-ai2ugypnre] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-ai2ugypnre]::after {
    content: "*";
    color: #ef4444;
    margin-left: 4px;
}

.form-input[b-ai2ugypnre], .form-textarea[b-ai2ugypnre] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    transition: all 0.15s;
}

.form-input:focus[b-ai2ugypnre], .form-textarea:focus[b-ai2ugypnre] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea[b-ai2ugypnre] {
    resize: vertical;
    min-height: 80px;
}

.form-error[b-ai2ugypnre] {
    font-size: 12px;
    color: #ef4444;
}

.form-hint[b-ai2ugypnre] {
    font-size: 12px;
    color: #6b7280;
}

/* 资源类型选择 */
.type-options[b-ai2ugypnre] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.type-option[b-ai2ugypnre] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    min-width: 100px;
}

.type-option:hover[b-ai2ugypnre] {
    border-color: #2563eb;
}

.type-option.selected[b-ai2ugypnre] {
    background: #eff6ff;
    border-color: #2563eb;
}

.type-option i[b-ai2ugypnre] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.type-option.selected i[b-ai2ugypnre] {
    color: #2563eb;
}

.type-option span[b-ai2ugypnre] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

/* 可见性选择 */
.visibility-options[b-ai2ugypnre] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.visibility-option[b-ai2ugypnre] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}

.visibility-option:hover:not(.disabled)[b-ai2ugypnre] {
    border-color: #2563eb;
}

.visibility-option.selected[b-ai2ugypnre] {
    background: #eff6ff;
    border-color: #2563eb;
}

.visibility-option.disabled[b-ai2ugypnre] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f9fafb;
}

.visibility-option i[b-ai2ugypnre] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.visibility-option.selected i[b-ai2ugypnre] {
    color: #2563eb;
}

.visibility-option span[b-ai2ugypnre] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.visibility-option small[b-ai2ugypnre] {
    font-size: 12px;
    color: #6b7280;
}

.option-disabled-tip[b-ai2ugypnre] {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #fef2f2;
    color: #ef4444;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    white-space: nowrap;
    margin-top: 4px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* 部门选择容器 */
.dept-select-container[b-ai2ugypnre] {
    display: flex;
    gap: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    background: #f9fafb;
}

.dept-tree-panel[b-ai2ugypnre] {
    flex: 1;
    min-width: 200px;
    max-width: 300px;
    border-right: 1px solid #e5e7eb;
    padding-right: 16px;
}

.dept-tree-header[b-ai2ugypnre] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 12px;
}

.dept-tree-body[b-ai2ugypnre] {
    max-height: 300px;
    overflow-y: auto;
}

.dept-tree-item[b-ai2ugypnre] {
    padding: 6px 8px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #374151;
    transition: all 0.15s;
}

.dept-tree-item:hover[b-ai2ugypnre] {
    background: #e5e7eb;
}

.dept-tree-item.selected[b-ai2ugypnre] {
    background: #2563eb;
    color: white;
}

.dept-tree-item i[b-ai2ugypnre] {
    font-size: 12px;
    color: #6b7280;
}

.dept-tree-item.selected i[b-ai2ugypnre] {
    color: white;
}

.tree-children[b-ai2ugypnre] {
    margin-left: 16px;
}

.empty-tree[b-ai2ugypnre] {
    color: #6b7280;
    font-size: 13px;
    text-align: center;
    padding: 20px;
}

.selected-dept-display[b-ai2ugypnre] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.selected-dept-info[b-ai2ugypnre] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #2563eb;
}

.selected-dept-info i[b-ai2ugypnre] {
    color: #2563eb;
}

.selected-dept-info span[b-ai2ugypnre] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.clear-btn[b-ai2ugypnre] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    padding: 4px;
    margin-left: auto;
}

.clear-btn:hover[b-ai2ugypnre] {
    color: #ef4444;
}

.no-selection[b-ai2ugypnre] {
    color: #9ca3af;
    font-size: 13px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

/* 当前部门显示 */
.current-dept[b-ai2ugypnre] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

.current-dept i[b-ai2ugypnre] {
    color: #6b7280;
}

/* 错误提示 */
.error-tip[b-ai2ugypnre] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #fee2e2;
    border-radius: 6px;
    color: #ef4444;
    font-size: 14px;
}

.error-tip i[b-ai2ugypnre] {
    color: #fbbf24;
}

/* 按钮 */
.btn[b-ai2ugypnre] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
}

.btn:disabled[b-ai2ugypnre] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-ai2ugypnre] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-ai2ugypnre] {
    background: #1d4ed8;
}

.btn-default[b-ai2ugypnre] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-ai2ugypnre] {
    background: #f9fafb;
}

/* 表单操作区 */
.form-actions[b-ai2ugypnre] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
}

/* Toast */
.toast[b-ai2ugypnre] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-ai2ugypnre 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-ai2ugypnre {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-ai2ugypnre] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-ai2ugypnre] {
    background: #fee2e2;
    color: #ef4444;
}

/* 响应式 */
@media (max-width: 768px) {
    .visibility-options[b-ai2ugypnre] {
        grid-template-columns: repeat(2, 1fr);
    }

    .type-options[b-ai2ugypnre] {
        flex-wrap: wrap;
    }

    .type-option[b-ai2ugypnre] {
        min-width: 80px;
    }

    .dept-select-container[b-ai2ugypnre] {
        flex-direction: column;
    }

    .dept-tree-panel[b-ai2ugypnre] {
        max-width: 100%;
        border-right: none;
        border-bottom: 1px solid #e5e7eb;
        padding-right: 0;
        padding-bottom: 16px;
    }
}

/* Ant Design asset creation workspace */
.asset-create-card[b-ai2ugypnre] {
    width: min(100%, 960px);
    margin: 0 auto;
    border-radius: 6px;
}

.asset-create-form[b-ai2ugypnre] {
    width: 100%;
}

.asset-create-form[b-ai2ugypnre]  .ant-form-item {
    margin-bottom: 20px;
}

.asset-type-segments[b-ai2ugypnre] {
    display: flex;
    flex-wrap: wrap;
}

.asset-type-segments[b-ai2ugypnre]  .ant-radio-button-wrapper {
    min-width: 112px;
    height: 40px;
    padding: 0 16px;
    line-height: 38px;
    text-align: center;
}

.asset-type-segments[b-ai2ugypnre]  .anticon {
    margin-right: 6px;
}

.form-actions[b-ai2ugypnre] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

@media (max-width: 640px) {
    .page-container[b-ai2ugypnre] {
        padding: 12px;
    }

    .asset-create-card[b-ai2ugypnre]  .ant-card-body {
        padding: 16px !important;
    }

    .asset-type-segments[b-ai2ugypnre],
    .asset-type-segments[b-ai2ugypnre]  .ant-radio-button-wrapper {
        width: 100%;
    }
}
/* /Components/Pages/TrainingManagement/CreateTrainingTask.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
/* 提交中全屏遮罩 */
.submit-overlay[b-jc11eduffa] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3000;
}
.submit-overlay-box[b-jc11eduffa] {
    background: #fff;
    border-radius: 12px;
    padding: 28px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}
.submit-spinner[b-jc11eduffa] {
    width: 40px;
    height: 40px;
    border: 4px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: submit-spin-b-jc11eduffa 0.9s linear infinite;
}
@keyframes submit-spin-b-jc11eduffa { to { transform: rotate(360deg); } }
.submit-overlay-text[b-jc11eduffa] { font-size: 14px; color: #374151; font-weight: 500; }

.page-container[b-jc11eduffa] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-jc11eduffa] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-jc11eduffa] {
    margin-bottom: 16px;
}

.header-left[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.back-link[b-jc11eduffa] {
    color: #2563eb;
    text-decoration: none;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.back-link:hover[b-jc11eduffa] {
    text-decoration: underline;
}

.page-title[b-jc11eduffa] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

/* 表单卡片 */
.form-card[b-jc11eduffa] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 24px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

/* 表单区块 */
.form-section[b-jc11eduffa] {
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f3f4f6;
}

.form-section:last-of-type[b-jc11eduffa] {
    border-bottom: none;
    margin-bottom: 16px;
}

.section-title[b-jc11eduffa] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.section-title i[b-jc11eduffa] {
    color: #6b7280;
}

.section-desc[b-jc11eduffa] {
    font-size: 13px;
    color: #6b7280;
    margin: -8px 0 16px 0;
}

/* 资源来源 Tab */
.res-tabs[b-jc11eduffa] { display: flex; gap: 6px; margin-bottom: 14px; }
.res-tab[b-jc11eduffa] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border: 1px solid #e5e7eb; background: #fff; border-radius: 8px; font-size: 14px; color: #6b7280; cursor: pointer; }
.res-tab:hover[b-jc11eduffa] { color: #111827; border-color: #d1d5db; }
.res-tab.active[b-jc11eduffa] { background: #2563eb; color: #fff; border-color: #2563eb; }
.res-tab-badge[b-jc11eduffa] { background: rgba(255,255,255,0.3); border-radius: 10px; padding: 0 7px; font-size: 12px; }
.res-tab:not(.active) .res-tab-badge[b-jc11eduffa] { background: #eff6ff; color: #2563eb; }
.res-empty[b-jc11eduffa] { text-align: center; padding: 32px 16px; color: #9ca3af; background: #fafafa; border: 1px dashed #e5e7eb; border-radius: 8px; }
.res-empty i[b-jc11eduffa] { font-size: 28px; margin-bottom: 8px; }
.res-empty p[b-jc11eduffa] { margin: 4px 0; color: #6b7280; font-weight: 500; }
.res-empty span[b-jc11eduffa] { font-size: 13px; }
.my-res-list[b-jc11eduffa] { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-bottom: 16px; }
.my-res-card[b-jc11eduffa] { position: relative; border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px 14px; cursor: pointer; background: #fff; transition: all 0.15s; }
.my-res-card:hover[b-jc11eduffa] { border-color: #93c5fd; }
.my-res-card.selected[b-jc11eduffa] { border-color: #2563eb; background: #eff6ff; }
.my-res-title[b-jc11eduffa] { font-weight: 600; font-size: 13px; display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.my-res-spec[b-jc11eduffa] { font-size: 12px; color: #6b7280; display: flex; flex-wrap: wrap; gap: 8px; }
.my-res-check[b-jc11eduffa] { position: absolute; top: 10px; right: 10px; color: #16a34a; }
.gpu-locked-note[b-jc11eduffa] { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; color: #1e40af; font-size: 13px; }
.gpu-bound-cards[b-jc11eduffa] { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.gpu-bound-card-item[b-jc11eduffa] { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #fff; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 13px; flex-wrap: wrap; }
.gpu-bound-card-item .bc-uuid[b-jc11eduffa] { font-family: monospace; color: #6b7280; }
.gpu-bound-card-item .bc-type[b-jc11eduffa] { background: #f3f4f6; border-radius: 3px; padding: 1px 8px; font-size: 12px; }
.gpu-bound-card-item .bc-mem[b-jc11eduffa] { color: #374151; }
.gpu-bound-card-item .bc-warn[b-jc11eduffa] { color: #b91c1c; margin-left: auto; }

/* 资源模板表格样式 */
.resource-template-table[b-jc11eduffa] {
    margin-bottom: 16px;
}

.template-table[b-jc11eduffa] {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: white;
}

.template-table th[b-jc11eduffa] {
    padding: 12px 16px;
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
}

.template-table td[b-jc11eduffa] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
}

.template-table tbody tr[b-jc11eduffa] {
    cursor: pointer;
    transition: all 0.15s;
}

.template-table tbody tr:hover[b-jc11eduffa] {
    background: #f9fafb;
}

.template-table tbody tr.selected[b-jc11eduffa] {
    background: #eff6ff;
    border-left: 3px solid #2563eb;
}

.template-table tbody tr:last-child td[b-jc11eduffa] {
    border-bottom: none;
}

.template-name[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
}

.gpu-badge[b-jc11eduffa] {
    display: inline-block;
    padding: 4px 8px;
    background: #dbeafe;
    color: #1e40af;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.gpu-badge.cpu-only[b-jc11eduffa] {
    background: #f3f4f6;
    color: #6b7280;
}

.suitable-for[b-jc11eduffa] {
    font-size: 13px;
    color: #6b7280;
}

/* 自定义资源配置样式 */
.custom-resource-config[b-jc11eduffa] {
    margin-top: 16px;
    padding: 16px;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 8px;
}

.custom-config-title[b-jc11eduffa] {
    font-size: 14px;
    font-weight: 600;
    color: #92400e;
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 资源摘要样式 */
.resource-summary[b-jc11eduffa] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
    padding: 12px 16px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
}

.summary-item[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #166534;
}

.summary-item i[b-jc11eduffa] {
    color: #16a34a;
}

/* GPU 选择互斥提示 */
.gpu-mutex-hint[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #fef3c7;
    border: 1px solid #fcd34d;
    border-radius: 6px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #92400e;
}

.gpu-mutex-hint i[b-jc11eduffa] {
    color: #f59e0b;
}

/* GPU 限制提示 */
.gpu-restriction-hint[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #991b1b;
}

.gpu-restriction-hint i[b-jc11eduffa] {
    color: #ef4444;
}

/* GPU 型号多选复选框样式 */
.gpu-type-checkboxes[b-jc11eduffa] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    min-height: 60px;
}

.gpu-type-checkboxes.disabled[b-jc11eduffa] {
    opacity: 0.5;
    pointer-events: none;
    background: #f3f4f6;
}

.gpu-checkbox-label[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    color: #374151;
    transition: all 0.15s;
}

.gpu-checkbox-label:hover[b-jc11eduffa] {
    border-color: #2563eb;
    background: #eff6ff;
}

.gpu-checkbox-label input[b-jc11eduffa] {
    width: 16px;
    height: 16px;
    accent-color: #2563eb;
}

.gpu-checkbox-label input:checked + span[b-jc11eduffa] {
    color: #2563eb;
    font-weight: 500;
}

.gpu-checkbox-label.denied[b-jc11eduffa] {
    opacity: 0.5;
    background: #fef2f2;
    border-color: #fecaca;
    cursor: not-allowed;
}

.gpu-checkbox-label.denied span[b-jc11eduffa] {
    color: #991b1b;
}

.selected-gpu-types[b-jc11eduffa] {
    margin-top: 8px;
    padding: 8px 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    font-size: 13px;
    color: #1e40af;
}

.selected-gpu-types strong[b-jc11eduffa] {
    color: #1e3a8a;
}

/* GPU 自动选择样式 */
.gpu-auto-select-wrapper[b-jc11eduffa] {
    padding: 12px 16px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    margin-bottom: 16px;
}

.gpu-auto-select-label[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #0369a1;
    cursor: pointer;
}

.gpu-auto-select-label i[b-jc11eduffa] {
    color: #0ea5e9;
}

.gpu-auto-select-label input[b-jc11eduffa] {
    width: 18px;
    height: 18px;
    accent-color: #0ea5e9;
}

/* GPU 切分单元选择表格样式 */
.gpu-slice-selector[b-jc11eduffa] {
    margin-bottom: 16px;
}

.gpu-slice-filters[b-jc11eduffa] {
    display: flex;
    gap: 16px;
    margin-bottom: 12px;
}

.filter-item[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.filter-label[b-jc11eduffa] {
    font-size: 13px;
    color: #374151;
    font-weight: 500;
}

.filter-select[b-jc11eduffa] {
    padding: 6px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    background: white;
    min-width: 120px;
}

.btn-refresh-gpu[b-jc11eduffa] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    background: white;
    color: #374151;
    cursor: pointer;
    transition: all 0.2s;
    height: 32px;
}

.btn-refresh-gpu:hover:not(:disabled)[b-jc11eduffa] {
    background: #f0f4ff;
    border-color: #6366f1;
    color: #4f46e5;
}

.btn-refresh-gpu:disabled[b-jc11eduffa] {
    opacity: 0.6;
    cursor: not-allowed;
}

.gpu-slice-hint[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #fefce8;
    border: 1px solid #fef08a;
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #713f12;
}

.gpu-slice-hint i[b-jc11eduffa] {
    color: #eab308;
}

.gpu-slice-hint strong[b-jc11eduffa] {
    color: #a16207;
}

.gpu-refresh-error[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #991b1b;
}

.gpu-refresh-error i[b-jc11eduffa] {
    color: #ef4444;
}

.gpu-slice-table-wrapper[b-jc11eduffa] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    max-height: 300px;
    overflow-y: auto;
}

.gpu-slice-table[b-jc11eduffa] {
    width: 100%;
    border-collapse: collapse;
    background: white;
}

.gpu-slice-table th[b-jc11eduffa] {
    padding: 10px 12px;
    text-align: left;
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
}

.gpu-slice-table td[b-jc11eduffa] {
    padding: 10px 12px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
}

.gpu-slice-table tbody tr:hover:not(.disabled):not(.empty-row)[b-jc11eduffa] {
    background: #f9fafb;
}

.gpu-slice-table tbody tr.selected[b-jc11eduffa] {
    background: #eff6ff;
}

.gpu-slice-table tbody tr.disabled[b-jc11eduffa] {
    opacity: 0.5;
    background: #f3f4f6;
}

.gpu-slice-table tbody tr.empty-row td[b-jc11eduffa] {
    padding: 24px;
}

.col-select[b-jc11eduffa] { width: 40px; }
.col-id[b-jc11eduffa] { width: 100px; }
.col-node[b-jc11eduffa] { width: 100px; }
.col-physical[b-jc11eduffa] { width: 80px; }
.col-type[b-jc11eduffa] { width: 100px; }
.col-memory[b-jc11eduffa] { width: 80px; }
.col-status[b-jc11eduffa] { width: 160px; }

.slice-id[b-jc11eduffa] {
    font-family: monospace;
    font-size: 12px;
    color: #6b7280;
    cursor: help;
}

.gpu-type-tag[b-jc11eduffa] {
    display: inline-block;
    padding: 2px 8px;
    background: #dbeafe;
    color: #1e40af;
    border-radius: 4px;
    font-size: 12px;
}

.status-denied[b-jc11eduffa] {
    color: #ef4444;
    font-size: 12px;
}

.status-full[b-jc11eduffa] {
    color: #f59e0b;
    font-size: 12px;
}

.status-available[b-jc11eduffa] {
    color: #16a34a;
    font-size: 12px;
}

.empty-table-hint[b-jc11eduffa] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #9ca3af;
}

.empty-table-hint i[b-jc11eduffa] {
    font-size: 16px;
}

/* GPU 切分单元绑定显示 */
.gpu-slice-bound[b-jc11eduffa] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    margin-top: 12px;
}

.bound-label[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #166534;
    font-weight: 500;
}

.bound-label i[b-jc11eduffa] {
    color: #16a34a;
}

.bound-list[b-jc11eduffa] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.bound-item[b-jc11eduffa] {
    padding: 4px 10px;
    background: #dcfce7;
    color: #15803d;
    border-radius: 4px;
    font-size: 12px;
}

.bound-count[b-jc11eduffa] {
    font-size: 12px;
    color: #16a34a;
}

/* GPU 切分单元验证提示 */
.gpu-slice-validation[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 6px;
    margin-top: 12px;
    font-size: 13px;
}

.gpu-slice-validation.warning[b-jc11eduffa] {
    background: #fef3c7;
    border: 1px solid #fcd34d;
    color: #92400e;
}

.gpu-slice-validation.error[b-jc11eduffa] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.gpu-slice-validation i[b-jc11eduffa] {
    color: #f59e0b;
}

.gpu-slice-validation.error i[b-jc11eduffa] {
    color: #ef4444;
}

/* 手动选择 GPU 后禁用高级配置提示 */
.gpu-slice-disable-advanced-hint[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #fef3c7;
    border: 1px solid #fcd34d;
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #92400e;
}

.gpu-slice-disable-advanced-hint i[b-jc11eduffa] {
    color: #f59e0b;
}

/* GPU 高级配置折叠样式 */
.gpu-advanced-config-toggle[b-jc11eduffa] {
    margin-top: 16px;
    border-top: 1px solid #f3f4f6;
    padding-top: 12px;
}

.gpu-advanced-config-toggle.disabled[b-jc11eduffa] {
    opacity: 0.5;
    pointer-events: none;
    background: #f3f4f6;
}

.gpu-advanced-config-toggle.disabled .toggle-btn[b-jc11eduffa] {
    cursor: not-allowed;
    background: #e5e7eb;
}

.toggle-btn[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
    color: #374151;
    cursor: pointer;
    transition: all 0.15s;
}

.toggle-btn:hover[b-jc11eduffa] {
    background: #f3f4f6;
}

.toggle-btn i[b-jc11eduffa] {
    color: #6b7280;
    font-size: 12px;
}

.active-badge[b-jc11eduffa] {
    padding: 2px 8px;
    background: #dbeafe;
    color: #1e40af;
    border-radius: 4px;
    font-size: 11px;
}

.gpu-advanced-config-content[b-jc11eduffa] {
    margin-top: 16px;
    padding: 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.form-grid[b-jc11eduffa] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.form-item[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-label[b-jc11eduffa] {
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}

.form-label.required[b-jc11eduffa]::after {
    content: " *";
    color: #ef4444;
}

.form-hint[b-jc11eduffa] {
    font-size: 12px;
    color: #6b7280;
}

.checkbox-item[b-jc11eduffa] {
    flex-direction: row !important;
    align-items: center;
    padding-top: 20px;
}

.checkbox-label[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #374151;
    cursor: pointer;
}

.checkbox-label input[b-jc11eduffa] {
    width: 16px;
    height: 16px;
}

/* 表单操作 */
.form-actions[b-jc11eduffa] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #f3f4f6;
}

.upload-buttons[b-jc11eduffa] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* 加载状态 */
.loading-container[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-jc11eduffa] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-jc11eduffa 1s linear infinite;
}

@keyframes spin-b-jc11eduffa {
    to { transform: rotate(360deg); }
}

.loading-text[b-jc11eduffa] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 脚本上传区域 */
.upload-area[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    border: 2px dashed #d1d5db;
    border-radius: 8px;
    background: #f9fafb;
    transition: all 0.15s;
}

.upload-area:hover[b-jc11eduffa] {
    border-color: #2563eb;
    background: #eff6ff;
}

.upload-area input[type="file"][b-jc11eduffa] {
    padding: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: white;
    cursor: pointer;
}

.upload-hint[b-jc11eduffa] {
    font-size: 12px;
    color: #6b7280;
}

.upload-progress[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #eff6ff;
    border-radius: 6px;
    margin-top: 12px;
    color: #2563eb;
    font-size: 14px;
}

.spinner-small[b-jc11eduffa] {
    width: 16px;
    height: 16px;
    border: 2px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-jc11eduffa 1s linear infinite;
}

/* 脚本列表 */
.script-list[b-jc11eduffa] {
    margin-top: 16px;
    padding: 16px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.script-list-title[b-jc11eduffa] {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin: 0 0 12px 0;
}

.script-item[b-jc11eduffa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    margin-bottom: 8px;
}

.script-item:last-child[b-jc11eduffa] {
    margin-bottom: 0;
}

.script-info[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.script-icon[b-jc11eduffa] {
    font-size: 20px;
    color: #2563eb;
}

.script-details[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.script-name[b-jc11eduffa] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

.script-meta[b-jc11eduffa] {
    font-size: 12px;
    color: #6b7280;
}

.script-meta .separator[b-jc11eduffa] {
    margin: 0 8px;
}

.uploader-info[b-jc11eduffa] {
    color: #6b7280;
}

.uploader-info i[b-jc11eduffa] {
    font-size: 10px;
    margin-right: 2px;
}

.script-actions[b-jc11eduffa] {
    display: flex;
    gap: 8px;
}

.btn-icon[b-jc11eduffa] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: #f3f4f6;
    border-radius: 6px;
    cursor: pointer;
    color: #6b7280;
    transition: all 0.15s;
}

.btn-icon:hover[b-jc11eduffa] {
    background: #e5e7eb;
    color: #111827;
}

.btn-icon.btn-danger:hover[b-jc11eduffa] {
    background: #fee2e2;
    color: #ef4444;
}

.full-width[b-jc11eduffa] {
    grid-column: 1 / -1;
}

/* 动态参数 / 环境变量输入行 */
.dynamic-input-list[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dynamic-input-row[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.dynamic-value-input[b-jc11eduffa],
.env-value-input[b-jc11eduffa] {
    flex: 1;
}

.env-key-input[b-jc11eduffa] {
    width: 180px !important;
    flex-shrink: 0;
}

.dynamic-remove-action[b-jc11eduffa] {
    flex-shrink: 0;
}

/* 文件列布局 */
.file-columns-container[b-jc11eduffa] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

/* 三列并排选择器：训练资源 | 数据集 | 模型，窄屏 flex-wrap 自动换行 */
.selector-columns[b-jc11eduffa] {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: flex-start;
}

.selector-column[b-jc11eduffa] {
    flex: 1 1 320px;
    min-width: 280px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.file-column[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.file-column .section-title[b-jc11eduffa] {
    margin-bottom: 0;
}

.file-column .section-desc[b-jc11eduffa] {
    margin: 0 0 8px 0;
    font-size: 12px;
}

.file-column .upload-buttons[b-jc11eduffa] {
    margin-bottom: 4px;
}

.btn-sm[b-jc11eduffa] {
    padding: 6px 12px;
    font-size: 13px;
}

.file-list-container[b-jc11eduffa] {
    min-height: 120px;
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f9fafb;
}

.file-list[b-jc11eduffa] {
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.file-item[b-jc11eduffa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
}

.file-info[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.file-icon[b-jc11eduffa] {
    font-size: 16px;
    color: #2563eb;
    flex-shrink: 0;
}

.file-details[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.file-name[b-jc11eduffa] {
    font-size: 13px;
    font-weight: 500;
    color: #111827;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-meta[b-jc11eduffa] {
    font-size: 11px;
    color: #6b7280;
}

.btn-icon-sm[b-jc11eduffa] {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    color: #9ca3af;
    transition: all 0.15s;
    flex-shrink: 0;
}

.btn-icon-sm:hover[b-jc11eduffa] {
    background: #fee2e2;
    color: #ef4444;
}

.empty-hint-sm[b-jc11eduffa] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 24px 12px;
    font-size: 13px;
    color: #9ca3af;
}

.empty-hint-sm i[b-jc11eduffa] {
    font-size: 14px;
}

/* 响应式：小屏幕时改为上下布局 */
@media (max-width: 900px) {
    .file-columns-container[b-jc11eduffa] {
        grid-template-columns: 1fr;
    }
}

/* 资源库选择弹窗 */
.modal-overlay[b-jc11eduffa] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-content[b-jc11eduffa] {
    background: white;
    border-radius: 8px;
    width: 600px;
    max-width: 90vw;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
}

.modal-header[b-jc11eduffa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-jc11eduffa] {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    color: #111827;
}

.modal-close[b-jc11eduffa] {
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    font-size: 24px;
    cursor: pointer;
    color: #6b7280;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.modal-close:hover[b-jc11eduffa] {
    background: #f3f4f6;
    color: #111827;
}

.modal-body[b-jc11eduffa] {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}

.modal-footer[b-jc11eduffa] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

.empty-state[b-jc11eduffa] {
    text-align: center;
    padding: 40px 20px;
    color: #6b7280;
}

.empty-state i[b-jc11eduffa] {
    font-size: 48px;
    margin-bottom: 16px;
    color: #d1d5db;
}

.empty-state p[b-jc11eduffa] {
    margin: 0;
}

.resource-list[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.resource-item[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.resource-item:hover[b-jc11eduffa] {
    background: #f9fafb;
    border-color: #2563eb;
}

.resource-item.selected[b-jc11eduffa] {
    background: #eff6ff;
    border-color: #2563eb;
}

.resource-checkbox[b-jc11eduffa] {
    font-size: 18px;
    color: #2563eb;
}

.resource-info[b-jc11eduffa] {
    flex: 1;
}

.resource-name[b-jc11eduffa] {
    font-size: 14px;
    font-weight: 500;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.resource-name i[b-jc11eduffa] {
    color: #6b7280;
}

.resource-meta[b-jc11eduffa] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

.resource-meta .separator[b-jc11eduffa] {
    margin: 0 8px;
}

/* 计量计费预检弹窗样式 */
.quota-dialog[b-jc11eduffa] {
    width: 480px;
}

.quota-dialog .modal-title[b-jc11eduffa] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.quota-info-card[b-jc11eduffa] {
    padding: 16px;
    border-radius: 8px;
    margin-bottom: 16px;
}

.quota-info-card.success[b-jc11eduffa] {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.quota-info-card.error[b-jc11eduffa] {
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.quota-row[b-jc11eduffa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.quota-row:last-child[b-jc11eduffa] {
    border-bottom: none;
}

.quota-label[b-jc11eduffa] {
    font-size: 14px;
    color: #374151;
}

.quota-value[b-jc11eduffa] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}

.quota-value.highlight[b-jc11eduffa] {
    font-size: 18px;
    color: #2563eb;
}

.quota-policies[b-jc11eduffa] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.quota-policies-title[b-jc11eduffa] {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 8px;
}

.quota-policy-item[b-jc11eduffa] {
    font-size: 12px;
    color: #6b7280;
    padding: 4px 0;
}

.quota-violations[b-jc11eduffa] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.violation-item[b-jc11eduffa] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    font-size: 14px;
    color: #991b1b;
}

.violation-item i[b-jc11eduffa] {
    margin-top: 2px;
}

.quota-hint[b-jc11eduffa] {
    font-size: 14px;
    color: #6b7280;
    text-align: center;
    margin: 0;
}

.quota-hint.error[b-jc11eduffa] {
    color: #991b1b;
}

.quota-warnings[b-jc11eduffa] {
    margin-top: 12px;
    padding: 12px;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 6px;
}

.warning-item[b-jc11eduffa] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: #92400e;
}

.warning-item i[b-jc11eduffa] {
    margin-top: 2px;
    color: #f59e0b;
}

.submit-error-alert[b-jc11eduffa] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 24px 16px;
    padding: 12px 14px;
    color: #991b1b;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    line-height: 1.5;
}

.submit-error-alert i[b-jc11eduffa] {
    flex: none;
    margin-top: 3px;
}

.submit-error-alert span[b-jc11eduffa] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* 响应式 */
@media (max-width: 768px) {
    .form-grid[b-jc11eduffa] {
        grid-template-columns: 1fr;
    }

    .form-actions[b-jc11eduffa] {
        flex-direction: column;
    }

    .dynamic-input-row[b-jc11eduffa] {
        flex-direction: column;
        align-items: stretch;
    }

    .env-key-input[b-jc11eduffa] {
        width: 100% !important;
    }

    .dynamic-remove-action[b-jc11eduffa] {
        align-self: flex-end;
    }
}

.section-title-row[b-jc11eduffa] { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.template-manage-link[b-jc11eduffa] { color:#1677ff; font-size:13px; text-decoration:none; }
.template-manage-link:hover[b-jc11eduffa] { text-decoration:underline; }
/* /Components/Pages/TrainingManagement/TrainingResourceDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-pnvgzgmzsz] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-pnvgzgmzsz] {
    margin: 0 auto;
}

/* 页面头部 */
.page-header[b-pnvgzgmzsz] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 16px;
}

.header-left[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.back-btn[b-pnvgzgmzsz] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    font-size: 16px;
}

.back-btn:hover[b-pnvgzgmzsz] {
    background: #f9fafb;
    border-color: #d1d5db;
}

.header-info[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page-title[b-pnvgzgmzsz] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-tags[b-pnvgzgmzsz] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.header-right[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 区块标题 */
.section-title[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
    margin-top: 24px;
}

.section-title:first-of-type[b-pnvgzgmzsz] {
    margin-top: 0;
}

.section-title i[b-pnvgzgmzsz] {
    color: #6b7280;
}

.count-badge[b-pnvgzgmzsz] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

/* 按钮 */
.btn[b-pnvgzgmzsz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-pnvgzgmzsz] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-pnvgzgmzsz] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-pnvgzgmzsz] {
    background: #1d4ed8;
}

.btn-default[b-pnvgzgmzsz] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-pnvgzgmzsz] {
    background: #f9fafb;
}

.btn-success[b-pnvgzgmzsz] {
    background: #16a34a;
    color: white;
}

.btn-success:hover:not(:disabled)[b-pnvgzgmzsz] {
    background: #15803d;
}

.btn-sm[b-pnvgzgmzsz] {
    padding: 6px 12px;
    font-size: 13px;
}

/* 卡片 */
.card[b-pnvgzgmzsz] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.card-header[b-pnvgzgmzsz] {
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-body[b-pnvgzgmzsz] {
    padding: 16px 20px;
}

.table-wrapper[b-pnvgzgmzsz] {
    overflow-x: auto;
}

/* 信息卡片 */
.info-card[b-pnvgzgmzsz] {
    padding: 16px 20px;
}

.info-grid[b-pnvgzgmzsz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.info-item[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label[b-pnvgzgmzsz] {
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
}

.info-value[b-pnvgzgmzsz] {
    font-size: 14px;
    color: #374151;
}

/* 表格 */
.data-table[b-pnvgzgmzsz] {
    width: 100%;
    border-collapse: collapse;
}

.data-table th[b-pnvgzgmzsz] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-pnvgzgmzsz] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-pnvgzgmzsz] {
    background: #f9fafb;
}

/* 版本单元格 */
.version-cell[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.latest-badge[b-pnvgzgmzsz] {
    padding: 2px 6px;
    background: #2563eb;
    color: white;
    border-radius: 4px;
    font-size: 11px;
}

.version-name[b-pnvgzgmzsz] {
    font-weight: 500;
}

.version-desc[b-pnvgzgmzsz] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

/* 类型标签 */
.type-tag[b-pnvgzgmzsz] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    background: #dbeafe;
    color: #2563eb;
}

/* 可见性标签 */
.visibility-private[b-pnvgzgmzsz] {
    background: #fef2f2;
    color: #991b1b;
}

.visibility-dept[b-pnvgzgmzsz] {
    background: #fef3c7;
    color: #92400e;
}

.visibility-organization[b-pnvgzgmzsz] {
    background: #dbeafe;
    color: #1d4ed8;
}

.visibility-public[b-pnvgzgmzsz] {
    background: #d1fae5;
    color: #065f46;
}

/* 状态标签 */
.status-tag[b-pnvgzgmzsz] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-pnvgzgmzsz] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-pnvgzgmzsz] {
    background: #f1f5f9;
    color: #64748b;
}

.status-archived[b-pnvgzgmzsz] {
    background: #fee2e2;
    color: #ef4444;
}

.status-pending[b-pnvgzgmzsz] {
    background: #fef3c7;
    color: #d97706;
}

.status-failed[b-pnvgzgmzsz] {
    background: #fee2e2;
    color: #ef4444;
}

.text-muted[b-pnvgzgmzsz] {
    color: #9ca3af;
}

.size-text[b-pnvgzgmzsz], .creator-text[b-pnvgzgmzsz], .date-text[b-pnvgzgmzsz] {
    font-size: 13px;
    color: #374151;
}

/* 操作单元格 */
.action-cell[b-pnvgzgmzsz] {
    display: flex;
    gap: 8px;
}

/* 加载和空状态 */
.loading-container[b-pnvgzgmzsz], .empty-state[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-pnvgzgmzsz] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-pnvgzgmzsz 1s linear infinite;
}

@keyframes spin-b-pnvgzgmzsz {
    to { transform: rotate(360deg); }
}

.loading-text[b-pnvgzgmzsz] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.empty-state.small[b-pnvgzgmzsz] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-pnvgzgmzsz] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-state.small .empty-icon[b-pnvgzgmzsz] {
    font-size: 36px;
}

.empty-title[b-pnvgzgmzsz] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-state.small .empty-title[b-pnvgzgmzsz] {
    font-size: 16px;
}

.empty-desc[b-pnvgzgmzsz] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

.empty-state.small .empty-desc[b-pnvgzgmzsz] {
    margin-bottom: 0;
}

/* Toast */
.toast[b-pnvgzgmzsz] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-pnvgzgmzsz 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-pnvgzgmzsz {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-pnvgzgmzsz] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-pnvgzgmzsz] {
    background: #fee2e2;
    color: #ef4444;
}

/* Modal 弹窗 */
.modal-overlay[b-pnvgzgmzsz] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
}

.modal-content[b-pnvgzgmzsz] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-large[b-pnvgzgmzsz] {
    width: 640px;
}

.modal-header[b-pnvgzgmzsz] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-pnvgzgmzsz] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.modal-close[b-pnvgzgmzsz] {
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 4px;
    font-size: 16px;
}

.modal-close:hover[b-pnvgzgmzsz] {
    color: #111827;
}

.modal-body[b-pnvgzgmzsz] {
    padding: 20px;
}

.modal-footer[b-pnvgzgmzsz] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 表单 */
.form-group[b-pnvgzgmzsz] {
    margin-bottom: 16px;
}

.form-label[b-pnvgzgmzsz] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-label.required[b-pnvgzgmzsz]::after {
    content: "*";
    color: #ef4444;
    margin-left: 4px;
}

.form-input[b-pnvgzgmzsz], .form-textarea[b-pnvgzgmzsz], .form-select[b-pnvgzgmzsz] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
}

.form-input:focus[b-pnvgzgmzsz], .form-textarea:focus[b-pnvgzgmzsz], .form-select:focus[b-pnvgzgmzsz] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 100, 235, 0.1);
}

.form-hint[b-pnvgzgmzsz] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #6b7280;
}

/* Radio Group 选项 */
.radio-group[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.radio-option[b-pnvgzgmzsz] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.radio-option:hover[b-pnvgzgmzsz] {
    border-color: #2563eb;
    background: #f9fafb;
}

.radio-option input[type="radio"][b-pnvgzgmzsz] {
    margin-top: 2px;
    cursor: pointer;
}

.radio-option input[type="radio"]:checked + .radio-label[b-pnvgzgmzsz] {
    color: #2563eb;
}

.radio-label[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
}

.radio-title[b-pnvgzgmzsz] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.radio-desc[b-pnvgzgmzsz] {
    font-size: 12px;
    color: #6b7280;
}

/* 可见性选项 */
.visibility-options[b-pnvgzgmzsz] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.visibility-option[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}

.visibility-option:hover[b-pnvgzgmzsz] {
    border-color: #2563eb;
}

.visibility-option.selected[b-pnvgzgmzsz] {
    background: #eff6ff;
    border-color: #2563eb;
}

.visibility-option i[b-pnvgzgmzsz] {
    font-size: 20px;
    color: #6b7280;
    margin-bottom: 4px;
}

.visibility-option.selected i[b-pnvgzgmzsz] {
    color: #2563eb;
}

.visibility-option span[b-pnvgzgmzsz] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.visibility-option small[b-pnvgzgmzsz] {
    font-size: 12px;
    color: #6b7280;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-pnvgzgmzsz] {
        flex-direction: column;
        align-items: flex-start;
    }

    .header-right[b-pnvgzgmzsz] {
        width: 100%;
        flex-wrap: wrap;
    }

    .info-grid[b-pnvgzgmzsz] {
        grid-template-columns: repeat(2, 1fr);
    }

    .visibility-options[b-pnvgzgmzsz] {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Tab 卡片样式 */
.tab-card[b-pnvgzgmzsz] {
    padding: 0;
}

.tab-header[b-pnvgzgmzsz] {
    display: flex;
    border-bottom: 1px solid #e5e7eb;
    padding: 0;
}

.tab-item[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.15s;
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
}

.tab-item:hover[b-pnvgzgmzsz] {
    color: #2563eb;
    background: #f9fafb;
}

.tab-item.active[b-pnvgzgmzsz] {
    color: #2563eb;
    border-bottom-color: #2563eb;
    background: #eff6ff;
}

.tab-item i[b-pnvgzgmzsz] {
    font-size: 14px;
}

.tab-count[b-pnvgzgmzsz] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
}

.tab-content[b-pnvgzgmzsz] {
    padding: 16px;
    min-height: 300px;
}

/* 版本选择器行 */
.version-selector-row[b-pnvgzgmzsz] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    margin-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.version-selector-left[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.selector-label[b-pnvgzgmzsz] {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

.version-select[b-pnvgzgmzsz] {
    min-width: 150px;
    max-width: 200px;
}

/* 文件浏览器容器 */
.file-explorer-wrapper[b-pnvgzgmzsz] {
    /* 样式已下沉到 FileExplorer 组件内部的 .file-explorer-root，保持外部 wrapper 透明 */
}

/* README 空状态 */
.empty-readme[b-pnvgzgmzsz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    padding: 24px;
    color: #6b7280;
}

.empty-readme .empty-icon[b-pnvgzgmzsz] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 12px;
}

.empty-readme .empty-text[b-pnvgzgmzsz] {
    font-size: 16px;
    font-weight: 500;
    color: #374151;
    margin: 0 0 8px 0;
}

.empty-readme .empty-hint[b-pnvgzgmzsz] {
    font-size: 13px;
    color: #6b7280;
    margin: 0;
    text-align: center;
}

/* README 内容 */
.readme-body[b-pnvgzgmzsz] {
    padding: 16px;
    font-size: 14px;
    color: #374151;
    line-height: 1.6;
    max-height: 600px;
    overflow-y: auto;
}

.readme-body h1[b-pnvgzgmzsz] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e7eb;
}

.readme-body h2[b-pnvgzgmzsz] {
    font-size: 20px;
    font-weight: 600;
    color: #111827;
    margin: 24px 0 12px 0;
}

.readme-body h3[b-pnvgzgmzsz] {
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin: 16px 0 8px 0;
}

.readme-body p[b-pnvgzgmzsz] {
    margin: 12px 0;
}

.readme-body ul[b-pnvgzgmzsz] {
    margin: 12px 0;
    padding-left: 24px;
}

.readme-body li[b-pnvgzgmzsz] {
    margin: 4px 0;
}

.readme-body code[b-pnvgzgmzsz] {
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 13px;
    color: #ef4444;
}

.readme-body pre[b-pnvgzgmzsz] {
    background: #f3f4f6;
    padding: 12px;
    border-radius: 6px;
    overflow-x: auto;
    margin: 16px 0;
}

.readme-body pre code[b-pnvgzgmzsz] {
    background: transparent;
    padding: 0;
    color: #374151;
}

.readme-body a[b-pnvgzgmzsz] {
    color: #2563eb;
    text-decoration: none;
}

.readme-body a:hover[b-pnvgzgmzsz] {
    text-decoration: underline;
}

.readme-body br[b-pnvgzgmzsz] {
    display: block;
    margin: 8px 0;
    content: "";
}

/* 小型加载容器 */
.loading-container.small[b-pnvgzgmzsz] {
    min-height: 150px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.loading-container.small i[b-pnvgzgmzsz] {
    font-size: 20px;
    color: #2563eb;
}

.loading-container.small span[b-pnvgzgmzsz] {
    font-size: 14px;
    color: #6b7280;
}

/* 小型空状态的额外样式 */
.empty-state.small .empty-hint[b-pnvgzgmzsz] {
    font-size: 13px;
    color: #9ca3af;
    margin-top: 8px;
}

/* 与数据集详情统一的资产详情工作区。标题和页签固定，内容区独立滚动。 */
.page-container[b-pnvgzgmzsz] {
    height: calc(100vh - 112px);
    min-height: 620px;
    padding: 16px;
    overflow: hidden;
    background: #f6f8fb;
}

.main-content[b-pnvgzgmzsz] {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.asset-tags[b-pnvgzgmzsz] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

.asset-tags[b-pnvgzgmzsz]  .ant-tag {
    margin-inline-end: 0;
}

.asset-hero[b-pnvgzgmzsz] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
}

.asset-mark[b-pnvgzgmzsz] {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: #e6f4ff;
    color: #1677ff;
    font-size: 22px;
}

.asset-identity[b-pnvgzgmzsz] {
    min-width: 0;
    flex: 1;
}

.asset-kind[b-pnvgzgmzsz] {
    color: #8c8c8c;
    font-size: 12px;
}

.asset-identity h1[b-pnvgzgmzsz] {
    margin: 2px 0 4px;
    font-size: 22px;
    line-height: 30px;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.asset-identity p[b-pnvgzgmzsz] {
    margin: 0 0 10px;
    color: #595959;
}

.asset-summary-meta[b-pnvgzgmzsz] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-bottom: 10px;
    color: #6b7280;
    font-size: 13px;
}

.asset-summary-meta span[b-pnvgzgmzsz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.asset-detail-layout[b-pnvgzgmzsz] {
    min-height: 0;
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
    margin-top: 12px;
    overflow: hidden;
}

.asset-primary-content[b-pnvgzgmzsz],
.asset-sidebar[b-pnvgzgmzsz],
.asset-content-card[b-pnvgzgmzsz] {
    min-height: 0;
}

.asset-sidebar[b-pnvgzgmzsz] {
    overflow-y: auto;
}

.asset-content-card[b-pnvgzgmzsz] {
    height: 100%;
}

.asset-content-card[b-pnvgzgmzsz]  .ant-card-body {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.asset-content-card[b-pnvgzgmzsz]  .ant-tabs-nav {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 20px;
}

.asset-tab-content[b-pnvgzgmzsz] {
    min-height: 0;
    flex: 1 1 0;
    overflow: auto;
    padding: 24px;
}

.asset-tab-content.readme[b-pnvgzgmzsz] {
    overflow: hidden;
    padding: 0;
}

.readme-scroll-panel[b-pnvgzgmzsz] {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-y: scroll;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 24px;
}

.asset-tab-content.files[b-pnvgzgmzsz] {
    padding: 16px;
}

.asset-tab-content.files[b-pnvgzgmzsz]  .file-explorer-root {
    min-height: 100%;
}

.asset-state[b-pnvgzgmzsz] {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.readme-body[b-pnvgzgmzsz] {
    width: 100%;
    max-width: 1100px;
    max-height: none;
    margin: 0 auto;
    padding: 0;
    overflow: visible;
    overflow-wrap: anywhere;
    line-height: 1.7;
}

.readme-body p[b-pnvgzgmzsz],
.readme-body ul[b-pnvgzgmzsz],
.readme-body ol[b-pnvgzgmzsz],
.readme-body blockquote[b-pnvgzgmzsz],
.readme-body table[b-pnvgzgmzsz] {
    margin: 12px 0;
}

.readme-body ul[b-pnvgzgmzsz],
.readme-body ol[b-pnvgzgmzsz] {
    padding-left: 24px;
}

.readme-body li + li[b-pnvgzgmzsz] {
    margin-top: 4px;
}

.readme-body blockquote[b-pnvgzgmzsz] {
    padding: 8px 14px;
    border-left: 3px solid #d9d9d9;
    background: #fafafa;
    color: #595959;
}

.readme-body table[b-pnvgzgmzsz] {
    width: 100%;
    border-collapse: collapse;
    display: block;
    overflow-x: auto;
}

.readme-body th[b-pnvgzgmzsz],
.readme-body td[b-pnvgzgmzsz] {
    padding: 8px 10px;
    border: 1px solid #e5e7eb;
    text-align: left;
    vertical-align: top;
}

.readme-body th[b-pnvgzgmzsz] {
    background: #fafafa;
    color: #262626;
}

.readme-body img[b-pnvgzgmzsz] {
    display: block;
    max-width: 100%;
    height: auto;
}

.visibility-field[b-pnvgzgmzsz] {
    display: grid;
    gap: 8px;
}

.visibility-field label[b-pnvgzgmzsz] {
    color: #262626;
    font-size: 14px;
    font-weight: 500;
}

@media (max-width: 992px) {
    .page-container[b-pnvgzgmzsz] {
        height: auto;
        min-height: 100%;
        overflow: visible;
    }

    .asset-hero[b-pnvgzgmzsz] {
        flex-wrap: wrap;
    }

    .asset-detail-layout[b-pnvgzgmzsz] {
        display: block;
        overflow: visible;
    }

    .asset-primary-content[b-pnvgzgmzsz] {
        height: auto;
        min-height: 0;
        margin-bottom: 16px;
    }

    .asset-content-card[b-pnvgzgmzsz],
    .asset-content-card[b-pnvgzgmzsz]  .ant-card-body {
        height: auto;
    }

    .asset-tab-content[b-pnvgzgmzsz],
    .asset-tab-content.readme[b-pnvgzgmzsz] {
        overflow: visible;
    }

    .readme-scroll-panel[b-pnvgzgmzsz] {
        height: auto;
        max-height: min(640px, 68vh);
        overflow-y: auto;
        padding: 20px;
    }

    .asset-tab-content.files[b-pnvgzgmzsz] {
        max-height: min(640px, 68vh);
        overflow: auto;
    }

    .asset-sidebar[b-pnvgzgmzsz] {
        display: none;
    }
}

@media (max-width: 640px) {
    .page-container[b-pnvgzgmzsz] {
        padding: 12px;
    }
}
/* /Components/Pages/TrainingManagement/TrainingResourceList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

.resource-pagination[b-w2hl86o5ey] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
    color: #6b7280;
    font-size: 14px;
}

.resource-pagination[b-w2hl86o5ey]  .ant-pagination {
    margin: 0;
}

@media (max-width: 640px) {
    .resource-pagination[b-w2hl86o5ey] {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 页面头部 */
.page-header[b-w2hl86o5ey] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-w2hl86o5ey] {
    color: #6b7280;
    font-size: 18px;
}

.page-title[b-w2hl86o5ey] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 区块标题 */
.section-header[b-w2hl86o5ey] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.section-title-left[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
}

.section-title-left i[b-w2hl86o5ey] {
    color: #6b7280;
}

.section-title-right[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.count-badge[b-w2hl86o5ey] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

/* 搜索框 */
.search-box[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 6px 12px;
    gap: 8px;
    min-width: 200px;
}

.search-icon[b-w2hl86o5ey] {
    color: #9ca3af;
    font-size: 14px;
}

.search-input[b-w2hl86o5ey] {
    border: none;
    outline: none;
    font-size: 14px;
    color: #111827;
    background: transparent;
    width: 150px;
}

.search-input[b-w2hl86o5ey]::placeholder {
    color: #9ca3af;
}

.search-clear[b-w2hl86o5ey] {
    background: none;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 2px;
    font-size: 12px;
}

.search-clear:hover[b-w2hl86o5ey] {
    color: #6b7280;
}

/* 高级筛选面板 */
.advanced-filter-panel[b-w2hl86o5ey] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.filter-row[b-w2hl86o5ey] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}

.filter-item[b-w2hl86o5ey] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-label[b-w2hl86o5ey] {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.filter-select[b-w2hl86o5ey], .filter-date[b-w2hl86o5ey] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    min-width: 140px;
}

.filter-select:focus[b-w2hl86o5ey], .filter-date:focus[b-w2hl86o5ey] {
    outline: none;
    border-color: #2563eb;
}

.filter-actions[b-w2hl86o5ey] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.filter-active-badge[b-w2hl86o5ey] {
    color: #2563eb;
    font-size: 10px;
    margin-left: 4px;
}

/* 按钮 */
.btn[b-w2hl86o5ey] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-w2hl86o5ey] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-sm[b-w2hl86o5ey] {
    padding: 4px 10px;
    font-size: 12px;
}

.btn-primary[b-w2hl86o5ey] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-w2hl86o5ey] {
    background: #1d4ed8;
}

.btn-default[b-w2hl86o5ey] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-w2hl86o5ey] {
    background: #f9fafb;
}

.btn-danger[b-w2hl86o5ey] {
    background: #dc2626;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-w2hl86o5ey] {
    background: #b91c1c;
}

.btn-link[b-w2hl86o5ey] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-w2hl86o5ey] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-link-danger[b-w2hl86o5ey] {
    background: none;
    border: none;
    color: #ef4444;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link-danger:hover[b-w2hl86o5ey] {
    color: #dc2626;
    text-decoration: underline;
}

/* 卡片 */
.card[b-w2hl86o5ey] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.table-wrapper[b-w2hl86o5ey] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* 表格 */
.data-table[b-w2hl86o5ey] {
    width: 100%;
    min-width: 1040px;
    border-collapse: collapse;
}

.data-table thead[b-w2hl86o5ey] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.cell-ellipsis[b-w2hl86o5ey] {
    display: block;
    max-width: 280px;
    overflow: hidden;
    color: #595959;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.main-content > .empty-state[b-w2hl86o5ey],
.main-content > .loading-container[b-w2hl86o5ey] {
    flex: 1 1 auto;
    min-height: 0;
}

.data-table th[b-w2hl86o5ey] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.data-table td[b-w2hl86o5ey] {
    padding: 12px 16px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-w2hl86o5ey] {
    background: #f9fafb;
}

.name-link[b-w2hl86o5ey] {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.name-link:hover[b-w2hl86o5ey] {
    text-decoration: underline;
}

.task-desc[b-w2hl86o5ey] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 类型标签 */
.type-tag[b-w2hl86o5ey] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.type-script[b-w2hl86o5ey] {
    background: #dbeafe;
    color: #2563eb;
}

.type-config[b-w2hl86o5ey] {
    background: #fce7f3;
    color: #db2777;
}

.type-code[b-w2hl86o5ey] {
    background: #dcfce7;
    color: #16a34a;
}

.type-other[b-w2hl86o5ey] {
    background: #e5e7eb;
    color: #6b7280;
}

/* 可见性标签 */
.visibility-private[b-w2hl86o5ey] {
    background: #fef2f2;
    color: #991b1b;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-dept[b-w2hl86o5ey] {
    background: #fef3c7;
    color: #92400e;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-organization[b-w2hl86o5ey] {
    background: #dbeafe;
    color: #1d4ed8;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.visibility-public[b-w2hl86o5ey] {
    background: #d1fae5;
    color: #065f46;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

/* 状态标签 */
.status-tag[b-w2hl86o5ey] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-ready[b-w2hl86o5ey] {
    background: #dcfce7;
    color: #16a34a;
}

.status-no-version[b-w2hl86o5ey] {
    background: #f1f5f9;
    color: #64748b;
}

.status-archived[b-w2hl86o5ey] {
    background: #fee2e2;
    color: #ef4444;
}

/* 版本信息 */
.version-info[b-w2hl86o5ey] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
}

.version-info i[b-w2hl86o5ey] {
    color: #6b7280;
}

.version-latest[b-w2hl86o5ey] {
    font-size: 11px;
    color: #6b7280;
    margin-top: 2px;
}

.size-text[b-w2hl86o5ey], .creator-text[b-w2hl86o5ey], .date-text[b-w2hl86o5ey] {
    font-size: 13px;
    color: #374151;
}

/* 操作单元格 */
.action-cell[b-w2hl86o5ey] {
    display: flex;
    gap: 8px;
}

/* 加载和空状态 */
.loading-container[b-w2hl86o5ey] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 400px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 40px;
}

.loading-spinner[b-w2hl86o5ey] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-w2hl86o5ey 1s linear infinite;
}

@keyframes spin-b-w2hl86o5ey {
    to { transform: rotate(360deg); }
}

.loading-text[b-w2hl86o5ey] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 空状态 */
.empty-state[b-w2hl86o5ey] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.empty-state.small[b-w2hl86o5ey] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-w2hl86o5ey] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-title[b-w2hl86o5ey] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-desc[b-w2hl86o5ey] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

/* Toast */
.toast[b-w2hl86o5ey] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-w2hl86o5ey 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-w2hl86o5ey {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-w2hl86o5ey] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-w2hl86o5ey] {
    background: #fee2e2;
    color: #ef4444;
}

/* Modal 弹窗 */
.modal-overlay[b-w2hl86o5ey] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
}

.modal-content[b-w2hl86o5ey] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-sm[b-w2hl86o5ey] {
    width: 400px;
}

.text-danger[b-w2hl86o5ey] {
    color: #dc2626;
}

.delete-warning[b-w2hl86o5ey] {
    font-size: 14px;
    color: #374151;
    margin-bottom: 8px;
}

.delete-warning-desc[b-w2hl86o5ey] {
    font-size: 12px;
    color: #6b7280;
    margin: 0;
}

.modal-header[b-w2hl86o5ey] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
}

.modal-title[b-w2hl86o5ey] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close[b-w2hl86o5ey] {
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 4px;
    font-size: 16px;
}

.modal-close:hover[b-w2hl86o5ey] {
    color: #111827;
}

.modal-body[b-w2hl86o5ey] {
    padding: 20px;
}

.modal-footer[b-w2hl86o5ey] {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
}

/* 部门布局 */
.department-layout[b-w2hl86o5ey] {
    display: flex;
    gap: 20px;
    min-height: 500px;
}

.department-sidebar[b-w2hl86o5ey] {
    width: 280px;
    flex-shrink: 0;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.sidebar-header[b-w2hl86o5ey] {
    padding: 16px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-weight: 600;
    color: #374151;
    display: flex;
    align-items: center;
    gap: 8px;
}

.department-tree[b-w2hl86o5ey] {
    padding: 8px;
    max-height: 500px;
    overflow-y: auto;
}

.tree-item[b-w2hl86o5ey] {
    padding: 8px 12px;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
}

.tree-item:hover[b-w2hl86o5ey] {
    background: #f3f4f6;
}

.tree-item.selected[b-w2hl86o5ey] {
    background: #eff6ff;
    color: #2563eb;
}

.tree-item i[b-w2hl86o5ey] {
    color: #9ca3af;
    font-size: 12px;
}

.tree-children[b-w2hl86o5ey] {
    margin-left: 20px;
}

.department-content[b-w2hl86o5ey] {
    flex: 1;
    min-width: 0;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-w2hl86o5ey] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .tabs[b-w2hl86o5ey] {
        flex-wrap: wrap;
    }

    .section-header[b-w2hl86o5ey] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .section-title-right[b-w2hl86o5ey] {
        width: 100%;
        flex-wrap: wrap;
    }

    .search-box[b-w2hl86o5ey] {
        min-width: 100%;
    }

    .advanced-filter-panel .filter-row[b-w2hl86o5ey] {
        flex-direction: column;
        align-items: stretch;
    }

    .filter-item[b-w2hl86o5ey] {
        width: 100%;
    }

    .filter-select[b-w2hl86o5ey], .filter-date[b-w2hl86o5ey] {
        width: 100%;
    }

    .filter-actions[b-w2hl86o5ey] {
        margin-left: 0;
        width: 100%;
        justify-content: flex-start;
    }

    .data-table[b-w2hl86o5ey] {
        display: block;
        overflow-x: auto;
    }
}
/* /Components/Pages/TrainingManagement/TrainingTaskDetail.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。公共版式来自公共库 legacy-shared.css。 */
.page-container[b-jdqcoo66zb] {
    min-height: 80vh;
    background: #f9fafb;
    padding: 24px;
    height: 100%;
}

.main-content[b-jdqcoo66zb] {
    margin: 0 auto;
}

.delete-confirm-content p[b-jdqcoo66zb] {
    margin-bottom: 12px;
    color: #111827;
}

.delete-task-info[b-jdqcoo66zb] {
    padding: 12px;
    border-radius: 8px;
    background: #f9fafb;
    color: #374151;
    line-height: 1.8;
    margin-bottom: 12px;
}

.delete-warning[b-jdqcoo66zb] {
    color: #dc2626;
    margin-bottom: 12px;
}

/* 页面头部 */
.page-header[b-jdqcoo66zb] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}

.header-left[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.back-link[b-jdqcoo66zb] {
    color: #2563eb;
    text-decoration: none;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.back-link:hover[b-jdqcoo66zb] {
    text-decoration: underline;
}

.page-title[b-jdqcoo66zb] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Tab 导航 */
.tabs-container[b-jdqcoo66zb] {
    margin-bottom: 16px;
}

.tabs[b-jdqcoo66zb] {
    display: flex;
    gap: 4px;
    background: white;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.tabs button[b-jdqcoo66zb] {
    padding: 10px 20px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    border-radius: 6px;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}

.tabs button:hover[b-jdqcoo66zb] {
    background: #f3f4f6;
    color: #111827;
}

.tabs button.active[b-jdqcoo66zb] {
    background: #2563eb;
    color: white;
}

/* 按钮 */
.btn[b-jdqcoo66zb] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn-primary[b-jdqcoo66zb] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover[b-jdqcoo66zb] {
    background: #1d4ed8;
}

.btn-default[b-jdqcoo66zb] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
    border-radius: 6px;
}

.btn-default:hover[b-jdqcoo66zb] {
    background: #f9fafb;
}

.btn-danger[b-jdqcoo66zb] {
    background: #ef4444;
    color: white;
    border-radius: 6px;
}

.btn-danger:hover[b-jdqcoo66zb] {
    background: #dc2626;
}

.btn-sm[b-jdqcoo66zb] {
    padding: 6px 12px;
    font-size: 13px;
}

/* 状态标签 */
.status-tag[b-jdqcoo66zb] {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.status-running[b-jdqcoo66zb] {
    background: #dbeafe;
    color: #2563eb;
}

.status-pending[b-jdqcoo66zb] {
    background: #fef3c7;
    color: #d97706;
}

.status-succeeded[b-jdqcoo66zb] {
    background: #dcfce7;
    color: #16a34a;
}

.status-failed[b-jdqcoo66zb] {
    background: #fee2e2;
    color: #ef4444;
}

.status-stopped[b-jdqcoo66zb] {
    background: #f1f5f9;
    color: #64748b;
}

.status-initializing[b-jdqcoo66zb] {
    background: #e0e7ff;
    color: #2563eb;
}

/* 卡片 */
.card[b-jdqcoo66zb] {
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
}

.card-header[b-jdqcoo66zb] {
    padding: 12px 20px;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-header .header-row[b-jdqcoo66zb] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.log-toolbar[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.log-toggle[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #595959;
    cursor: pointer;
    margin: 0;
}

.log-toggle input[b-jdqcoo66zb] {
    cursor: pointer;
}

.log-toggle.disabled[b-jdqcoo66zb] {
    color: #bfbfbf;
    cursor: not-allowed;
}

.log-toggle.disabled input[b-jdqcoo66zb] {
    cursor: not-allowed;
}

.card-body[b-jdqcoo66zb] {
    padding: 16px 20px;
}

/* 信息网格 */
.info-grid[b-jdqcoo66zb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

.info-item[b-jdqcoo66zb] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label[b-jdqcoo66zb] {
    font-size: 12px;
    color: #6b7280;
}

.info-value[b-jdqcoo66zb] {
    font-size: 14px;
    color: #111827;
}

.image-value[b-jdqcoo66zb], .code-value[b-jdqcoo66zb] {
    font-family: monospace;
    font-size: 12px;
    word-break: break-all;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
}

/* GPU 监控样式 */
.gpu-not-running[b-jdqcoo66zb] {
    text-align: center;
    padding: 60px 20px;
    color: #6b7280;
}

.gpu-not-running i[b-jdqcoo66zb] {
    font-size: 48px;
    margin-bottom: 16px;
    color: #9ca3af;
}

.gpu-not-running p[b-jdqcoo66zb] {
    font-size: 16px;
    margin: 0;
}

.gpu-history-info[b-jdqcoo66zb] {
    background: #fef3c7;
    border: 1px solid #fcd34d;
    border-radius: 6px;
    padding: 12px 16px;
}

.gpu-history-info p[b-jdqcoo66zb] {
    margin: 0;
    color: #92400e;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gpu-history-info i[b-jdqcoo66zb] {
    color: #f59e0b;
}

.metrics-loading[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 40px;
    color: #6b7280;
}

.loading-spinner.small[b-jdqcoo66zb] {
    width: 20px;
    height: 20px;
    border-width: 2px;
}

.gpu-metrics-grid[b-jdqcoo66zb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
}

.metric-card[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.metric-icon[b-jdqcoo66zb] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.metric-icon.memory[b-jdqcoo66zb] {
    background: #dbeafe;
    color: #2563eb;
}

.metric-icon.utilization[b-jdqcoo66zb] {
    background: #dcfce7;
    color: #16a34a;
}

.metric-icon.device[b-jdqcoo66zb] {
    background: #fef3c7;
    color: #d97706;
}

.metric-content[b-jdqcoo66zb] {
    flex: 1;
}

.metric-label[b-jdqcoo66zb] {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 4px;
}

.metric-value[b-jdqcoo66zb] {
    font-size: 24px;
    font-weight: 600;
    color: #111827;
}

.metric-value.small[b-jdqcoo66zb] {
    font-size: 14px;
    font-family: monospace;
}

.metric-unit[b-jdqcoo66zb] {
    font-size: 14px;
    font-weight: 400;
    color: #6b7280;
    margin-left: 2px;
}

.no-metrics[b-jdqcoo66zb] {
    text-align: center;
    padding: 60px 20px;
    color: #6b7280;
}

.no-metrics i[b-jdqcoo66zb] {
    font-size: 48px;
    margin-bottom: 16px;
    color: #d1d5db;
}

.no-metrics p[b-jdqcoo66zb] {
    font-size: 14px;
    margin: 0;
}

.no-metrics .hint[b-jdqcoo66zb] {
    font-size: 12px;
    color: #9ca3af;
    margin-top: 8px;
}

/* 时间范围选择器 */
.time-range-selector[b-jdqcoo66zb] {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.time-range-selector button[b-jdqcoo66zb] {
    padding: 6px 16px;
    border: 1px solid #d1d5db;
    background: white;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
}

.time-range-selector button:hover[b-jdqcoo66zb] {
    background: #f3f4f6;
}

.time-range-selector button.active[b-jdqcoo66zb] {
    background: #2563eb;
    color: white;
    border-color: #2563eb;
}

/* 图表容器 */
.chart-container[b-jdqcoo66zb] {
    width: 100%;
    overflow-x: auto;
}

.chart[b-jdqcoo66zb] {
    width: 100%;
    max-width: 800px;
    height: auto;
}

.chart-label[b-jdqcoo66zb] {
    font-size: 10px;
    fill: #6b7280;
}

.chart-info[b-jdqcoo66zb] {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    font-size: 12px;
    color: #6b7280;
}

/* 日志 */
.log-content[b-jdqcoo66zb] {
    background: #1f2937;
    border-radius: 6px;
    padding: 12px;
    max-height: 500px;
    overflow-y: auto;
}

.log-line[b-jdqcoo66zb] {
    font-family: 'Consolas', 'Monaco', monospace;
    font-size: 12px;
    color: #e5e7eb;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-all;
}

.log-empty[b-jdqcoo66zb] {
    text-align: center;
    color: #6b7280;
    padding: 40px;
    font-size: 14px;
}

/* 终端 */
.terminal-toolbar[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.terminal-container[b-jdqcoo66zb] {
    height: 520px;
    background: #1e1e1e;
    border-radius: 8px;
    padding: 12px;
    overflow: hidden;
}

.connection-hint[b-jdqcoo66zb] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #6b7280;
    font-size: 13px;
}

.connection-hint.error[b-jdqcoo66zb] {
    color: #dc2626;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 8px 10px;
    margin-bottom: 12px;
}

.connection-status.connected[b-jdqcoo66zb] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #16a34a;
    font-size: 13px;
}

.connection-status.connected i[b-jdqcoo66zb] {
    font-size: 8px;
}

.selected-pod-hint[b-jdqcoo66zb] {
    color: #6b7280;
    font-size: 12px;
    font-weight: 400;
    margin-left: 6px;
}

/* YAML 展示 */
.yaml-content[b-jdqcoo66zb] {
    background: #1f2937;
    border-radius: 6px;
    padding: 16px;
    max-height: 600px;
    overflow-y: auto;
}

.yaml-code[b-jdqcoo66zb] {
    font-family: 'Consolas', 'Monaco', monospace;
    font-size: 12px;
    color: #e5e7eb;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-all;
    margin: 0;
}

/* 文件列表 */
.files-list[b-jdqcoo66zb] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.file-item[b-jdqcoo66zb] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

.file-icon[b-jdqcoo66zb] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    border-radius: 8px;
    color: #2563eb;
    font-size: 18px;
    flex-shrink: 0;
}

.file-info[b-jdqcoo66zb] {
    flex: 1;
    min-width: 0;
}

.file-name[b-jdqcoo66zb] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
    word-break: break-all;
}

.file-details[b-jdqcoo66zb] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
    color: #6b7280;
}

.file-path[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: monospace;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
}

.file-size[b-jdqcoo66zb] {
    color: #059669;
    font-weight: 500;
}

.file-desc[b-jdqcoo66zb] {
    color: #6b7280;
}

/* 事件 */
.events-list[b-jdqcoo66zb] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.event-item[b-jdqcoo66zb] {
    display: grid;
    grid-template-columns: 150px 70px 100px 1fr;
    gap: 12px;
    padding: 10px 12px;
    background: #f9fafb;
    border-radius: 6px;
    font-size: 13px;
}

.event-item.event-warning[b-jdqcoo66zb] {
    background: #fef3c7;
}

.event-item.event-normal[b-jdqcoo66zb] {
    background: #f0fdf4;
}

.event-time[b-jdqcoo66zb] {
    color: #6b7280;
}

.event-type[b-jdqcoo66zb] {
    font-weight: 500;
}

.event-reason[b-jdqcoo66zb] {
    font-weight: 600;
    color: #2563eb;
}

.event-message[b-jdqcoo66zb] {
    color: #374151;
}

/* 加载状态 */
.loading-container[b-jdqcoo66zb], .error-state[b-jdqcoo66zb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-jdqcoo66zb] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-jdqcoo66zb 1s linear infinite;
}

@keyframes spin-b-jdqcoo66zb {
    to { transform: rotate(360deg); }
}

.loading-text[b-jdqcoo66zb] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

.error-icon[b-jdqcoo66zb] {
    font-size: 48px;
    color: #f59e0b;
    margin-bottom: 16px;
}

.error-title[b-jdqcoo66zb] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 16px 0;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-jdqcoo66zb] {
        flex-direction: column;
        align-items: flex-start;
    }

    .info-grid[b-jdqcoo66zb] {
        grid-template-columns: 1fr;
    }

    .event-item[b-jdqcoo66zb] {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .tabs[b-jdqcoo66zb] {
        flex-wrap: wrap;
    }

    .tabs button[b-jdqcoo66zb] {
        flex: 1;
        min-width: 100px;
        justify-content: center;
    }
}

/* 产出文件列表样式 */
.output-files-info[b-jdqcoo66zb] {
    background: #dbeafe;
    border: 1px solid #93c5fd;
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

.output-files-info p[b-jdqcoo66zb] {
    margin: 0;
    color: #1e40af;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.output-files-info i[b-jdqcoo66zb] {
    color: #2563eb;
}

.output-files-list[b-jdqcoo66zb] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.output-file-item[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

.output-file-item:hover[b-jdqcoo66zb] {
    background: #f3f4f6;
}

.output-file-icon[b-jdqcoo66zb] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dcfce7;
    border-radius: 8px;
    color: #16a34a;
    font-size: 18px;
    flex-shrink: 0;
}

.output-file-info[b-jdqcoo66zb] {
    flex: 1;
    min-width: 0;
}

.output-file-name[b-jdqcoo66zb] {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    margin-bottom: 4px;
    word-break: break-all;
}

.output-file-details[b-jdqcoo66zb] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
    color: #6b7280;
}

.output-file-path[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: monospace;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
}

.output-file-size[b-jdqcoo66zb] {
    color: #059669;
    font-weight: 500;
}

.output-file-time[b-jdqcoo66zb] {
    color: #6b7280;
}

/* 产出文件面包屑导航 */
.output-breadcrumb[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px 12px;
    margin-bottom: 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 13px;
}

.output-breadcrumb .breadcrumb-item[b-jdqcoo66zb] {
    color: #2563eb;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 6px;
    border-radius: 4px;
}

.output-breadcrumb .breadcrumb-item:hover[b-jdqcoo66zb] {
    background: #e0e7ff;
}

.output-breadcrumb .breadcrumb-item.active[b-jdqcoo66zb] {
    color: #374151;
    font-weight: 600;
    cursor: default;
}

.output-breadcrumb .breadcrumb-item.active:hover[b-jdqcoo66zb] {
    background: transparent;
}

.output-breadcrumb .breadcrumb-separator[b-jdqcoo66zb] {
    color: #9ca3af;
}

/* 可点击的目录行 */
.output-file-item-clickable[b-jdqcoo66zb] {
    cursor: pointer;
}

.output-file-item-clickable:hover[b-jdqcoo66zb] {
    background: #eff6ff;
    border-color: #93c5fd;
}

.output-file-icon-dir[b-jdqcoo66zb] {
    background: #fef3c7;
    color: #d97706;
}

.output-file-actions[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.register-model-form[b-jdqcoo66zb] {
    display: grid;
    gap: 16px;
}

.register-model-form .form-field[b-jdqcoo66zb] {
    display: grid;
    gap: 6px;
}

.register-model-form .form-field label[b-jdqcoo66zb] {
    color: #262626;
    font-size: 14px;
    font-weight: 500;
}

.register-model-form .modal-actions[b-jdqcoo66zb] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

.output-preview-overlay[b-jdqcoo66zb] {
    z-index: 1200;
}

.output-preview-modal[b-jdqcoo66zb] {
    width: min(1100px, 92vw);
    height: min(780px, 88vh);
    display: flex;
    flex-direction: column;
    padding: 0;
}

.output-preview-body[b-jdqcoo66zb] {
    flex: 1;
    min-height: 0;
    overflow: auto;
    background: #f9fafb;
}

.output-preview-frame[b-jdqcoo66zb] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    border: none;
    background: #fff;
}

.output-preview-centered[b-jdqcoo66zb] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.output-preview-image[b-jdqcoo66zb] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.output-preview-media[b-jdqcoo66zb] {
    width: min(720px, 100%);
}

.output-preview-video[b-jdqcoo66zb] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    background: #111827;
}

/* 下载进度弹窗样式 */
.download-progress-modal[b-jdqcoo66zb] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.download-progress-content[b-jdqcoo66zb] {
    background: white;
    border-radius: 8px;
    padding: 24px;
    max-width: 450px;
    width: 100%;
}

.download-progress-header[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.download-progress-icon[b-jdqcoo66zb] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    background: #dbeafe;
    color: #2563eb;
}

.download-progress-icon.completed[b-jdqcoo66zb] {
    background: #dcfce7;
    color: #16a34a;
}

.download-progress-icon.failed[b-jdqcoo66zb] {
    background: #fee2e2;
    color: #ef4444;
}

.download-progress-title[b-jdqcoo66zb] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.download-progress-filename[b-jdqcoo66zb] {
    font-size: 13px;
    color: #6b7280;
    font-family: monospace;
    background: #f3f4f6;
    padding: 2px 8px;
    border-radius: 4px;
    word-break: break-all;
}

.download-progress-bar-container[b-jdqcoo66zb] {
    width: 100%;
    height: 24px;
    background: #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 12px;
}

.download-progress-bar[b-jdqcoo66zb] {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #2563eb);
    border-radius: 12px;
    transition: width 0.3s ease;
}

.download-progress-bar.completed[b-jdqcoo66zb] {
    background: linear-gradient(90deg, #10b981, #16a34a);
}

.download-progress-bar.failed[b-jdqcoo66zb] {
    background: linear-gradient(90deg, #ef4444, #dc2626);
}

.download-progress-text[b-jdqcoo66zb] {
    text-align: center;
    font-size: 14px;
    color: #374151;
    margin-bottom: 8px;
}

.download-progress-stats[b-jdqcoo66zb] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 16px;
}

.download-progress-error[b-jdqcoo66zb] {
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 12px;
    color: #991b1b;
    font-size: 13px;
    margin-bottom: 16px;
}

.download-progress-footer[b-jdqcoo66zb] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* ── SSH 直连卡片 ── */
.ssh-access-card[b-jdqcoo66zb] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px 20px;
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
    border: 1px solid #bbf7d0;
    border-radius: 12px;
    margin-top: 12px;
}
.ssh-access-main[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 14px;
}
.ssh-access-icon[b-jdqcoo66zb] {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #dcfce7;
    color: #16a34a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.ssh-access-card h3[b-jdqcoo66zb] {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: #111827;
}
.ssh-access-card p[b-jdqcoo66zb] {
    margin: 2px 0 0;
    font-size: 13px;
    color: #6b7280;
}
.ssh-access-btn[b-jdqcoo66zb] {
    min-width: 130px;
}
.ssh-config-block[b-jdqcoo66zb] {
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 12px;
}
.ssh-config-pre[b-jdqcoo66zb] {
    margin: 0;
    padding: 8px;
    background: #1e1e1e;
    color: #d4d4d4;
    border-radius: 6px;
    font-size: 12px;
    overflow-x: auto;
    white-space: pre;
}
.ssh-notice-bar[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    font-size: 13px;
    color: #1e40af;
}

.text-orange[b-jdqcoo66zb] { color: #ea580c !important; font-weight: 600; }

.expiry-warning-bar[b-jdqcoo66zb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fffbeb;
    border: 1px solid #fbbf24;
    border-radius: 10px;
    font-size: 14px;
    color: #92400e;
    margin-bottom: 8px;
}

.modal-overlay[b-jdqcoo66zb] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-content[b-jdqcoo66zb] {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    position: relative;
    min-width: 360px;
}

.modal-title[b-jdqcoo66zb] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.modal-close[b-jdqcoo66zb] {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: #9ca3af;
}
.training-business-metrics[b-jdqcoo66zb] {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
}
.training-business-heading[b-jdqcoo66zb] { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.training-business-heading h3[b-jdqcoo66zb] { margin:0; color:#111827; font-size:16px; }
.training-business-heading span[b-jdqcoo66zb] { color:#64748b; font-size:12px; }
.business-metrics-state[b-jdqcoo66zb] { min-height:130px; display:flex; align-items:center; justify-content:center; }
.business-metric-grid[b-jdqcoo66zb] { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-top:16px; }
.business-metric[b-jdqcoo66zb] { min-width:0; padding:12px; border:1px solid #e5e7eb; border-radius:6px; background:#f8fafc; }
.business-metric span[b-jdqcoo66zb],.business-metric strong[b-jdqcoo66zb],.business-metric small[b-jdqcoo66zb] { display:block; }
.business-metric span[b-jdqcoo66zb],.business-metric small[b-jdqcoo66zb] { color:#64748b; font-size:12px; }
.business-metric strong[b-jdqcoo66zb] { margin:6px 0 4px; color:#111827; font-size:18px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:1000px) { .business-metric-grid[b-jdqcoo66zb] { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:560px) { .business-metric-grid[b-jdqcoo66zb] { grid-template-columns:minmax(0,1fr); } }
/* /Components/Pages/TrainingManagement/TrainingTaskList.razor.rz.scp.css */
/* 页面独有样式（CSS 隔离）。页面与列表版式统一由 console-list-* 公共类负责。 */

.delete-confirm-content p[b-x7vbw3forg] {
    margin-bottom: 12px;
    color: #111827;
}

.delete-task-info[b-x7vbw3forg] {
    padding: 12px;
    border-radius: 8px;
    background: #f9fafb;
    color: #374151;
    line-height: 1.8;
    margin-bottom: 12px;
}

.delete-warning[b-x7vbw3forg] {
    color: #dc2626;
    margin-bottom: 12px;
}

/* 页面头部 */
.page-header[b-x7vbw3forg] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.header-left[b-x7vbw3forg] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-icon[b-x7vbw3forg] {
    color: #6b7280;
    font-size: 18px;
}

.page-title[b-x7vbw3forg] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.header-right[b-x7vbw3forg] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 区块标题 */
.section-title[b-x7vbw3forg] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
    margin-top: 24px;
}

.section-title:first-of-type[b-x7vbw3forg] {
    margin-top: 0;
}

.section-title i[b-x7vbw3forg] {
    color: #6b7280;
}

.count-badge[b-x7vbw3forg] {
    background: #e5e7eb;
    color: #6b7280;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

.subordinate-section[b-x7vbw3forg] {
    margin-top: 32px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}

/* 按钮 */
.btn[b-x7vbw3forg] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-x7vbw3forg] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-x7vbw3forg] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-x7vbw3forg] {
    background: #1d4ed8;
}

.btn-default[b-x7vbw3forg] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
    border-radius: 6px;
}

.btn-default:hover:not(:disabled)[b-x7vbw3forg] {
    background: #f9fafb;
}

.btn-sm[b-x7vbw3forg] {
    padding: 6px 12px;
    font-size: 13px;
}

.btn-link[b-x7vbw3forg] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-x7vbw3forg] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-link.text-red[b-x7vbw3forg] {
    color: #ef4444;
}

/* 筛选栏 */
.filter-card[b-x7vbw3forg] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.filter-row[b-x7vbw3forg] {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.filter-item[b-x7vbw3forg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filter-label[b-x7vbw3forg] {
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
}

.select-input[b-x7vbw3forg], .search-input[b-x7vbw3forg] {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    min-width: 140px;
}

.search-input[b-x7vbw3forg] {
    min-width: 200px;
}

/* 卡片 */
.card[b-x7vbw3forg] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

/* 表格 */
.data-table[b-x7vbw3forg] {
    width: 100%;
    min-width: 1460px;
    border-collapse: collapse;
}

.table-wrapper[b-x7vbw3forg] {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
}

/* 训练任务默认每页 20 条，表格高度超出视口时在数据区滚动，避免被列表卡片裁掉。 */
.training-task-list-page .table-wrapper[b-x7vbw3forg] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.console-list-scroll[b-x7vbw3forg]  .ant-table-content {
    overflow-x: auto;
    overflow-y: hidden;
}

.console-list-surface[b-x7vbw3forg]  .ant-table-wrapper {
    min-height: 0;
}

.console-list-surface[b-x7vbw3forg]  .ant-table {
    min-width: 0;
}

.console-list-surface[b-x7vbw3forg]  .ant-table-thead > tr > th {
    padding: 12px 16px;
    background: #f9fafb;
    color: #6b7280;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.console-list-surface[b-x7vbw3forg]  .ant-table-tbody > tr > td {
    padding: 12px 16px;
    color: #111827;
    font-size: 14px;
    vertical-align: middle;
    white-space: nowrap;
}

.console-list-surface[b-x7vbw3forg]  .ant-table-tbody > tr:hover > td {
    background: #f9fafb;
}

.data-table thead[b-x7vbw3forg] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.cell-ellipsis[b-x7vbw3forg] {
    display: block;
    max-width: 260px;
    overflow: hidden;
    color: #595959;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.main-content > .empty-state[b-x7vbw3forg],
.main-content > .loading-container[b-x7vbw3forg] {
    flex: 1 1 auto;
    min-height: 0;
}

.data-table th[b-x7vbw3forg] {
    text-align: left;
    padding: 12px 16px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.data-table td[b-x7vbw3forg] {
    padding: 12px 16px;
    font-size: 14px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.data-table tbody tr:hover[b-x7vbw3forg] {
    background: #f9fafb;
}

.name-link[b-x7vbw3forg] {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
}

.name-link:hover[b-x7vbw3forg] {
    text-decoration: underline;
}

.task-desc[b-x7vbw3forg] {
    font-size: 12px;
    color: #6b7280;
    margin-top: 4px;
}

.image-cell[b-x7vbw3forg] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: monospace;
    font-size: 12px;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.copy-btn[b-x7vbw3forg] {
    flex-shrink: 0;
    padding: 2px 4px;
    color: #9ca3af;
    cursor: pointer;
    background: none;
    border: none;
    font-size: 12px;
    transition: color 0.15s;
}

.copy-btn:hover[b-x7vbw3forg] {
    color: #2563eb;
}

.code-text[b-x7vbw3forg] {
    font-family: monospace;
    font-size: 12px;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 4px;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    white-space: nowrap;
}

/* 资源标签 */
.resource-badge[b-x7vbw3forg] {
    display: inline-block;
    background: #f3f4f6;
    color: #4b5563;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    margin-right: 4px;
}

/* 状态标签 */
.status-tag[b-x7vbw3forg],
.task-scope-tag[b-x7vbw3forg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
}

.status-pending[b-x7vbw3forg] {
    background: #fef3c7;
    color: #d97706;
}

.status-running[b-x7vbw3forg] {
    background: #dbeafe;
    color: #2563eb;
}

.status-succeeded[b-x7vbw3forg] {
    background: #dcfce7;
    color: #16a34a;
}

.status-failed[b-x7vbw3forg] {
    background: #fee2e2;
    color: #ef4444;
}

.status-stopped[b-x7vbw3forg] {
    background: #f1f5f9;
    color: #64748b;
}

.status-initializing[b-x7vbw3forg] {
    background: #e0e7ff;
    color: #2563eb;
}

.status-creating[b-x7vbw3forg] {
    background: #dbeafe;
    color: #2563eb;
}

.status-stopping[b-x7vbw3forg],
.status-expired[b-x7vbw3forg] {
    background: #fef3c7;
    color: #d97706;
}

.task-scope-tag[b-x7vbw3forg],
.task-scope-mine[b-x7vbw3forg],
.task-scope-department[b-x7vbw3forg],
.task-scope-all[b-x7vbw3forg] {
    background: #eff6ff;
    color: #2563eb;
}

.creator-cell[b-x7vbw3forg] {
    color: #374151;
    font-size: 13px;
}

/* 操作单元格 */
.action-cell[b-x7vbw3forg] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.text-gray[b-x7vbw3forg] {
    color: #9ca3af;
    font-size: 13px;
    font-style: italic;
}

.btn-link.text-orange[b-x7vbw3forg] {
    color: #d97706;
}

.btn-link.text-orange:hover[b-x7vbw3forg] {
    color: #b45309;
}

/* 分页 */
.pagination[b-x7vbw3forg] {
    flex: 0 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-top: 1px solid #f3f4f6;
}

.page-info[b-x7vbw3forg] {
    font-size: 13px;
    color: #6b7280;
}

/* 加载状态 */
.loading-container[b-x7vbw3forg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.loading-spinner[b-x7vbw3forg] {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-x7vbw3forg 1s linear infinite;
}

@keyframes spin-b-x7vbw3forg {
    to { transform: rotate(360deg); }
}

.loading-text[b-x7vbw3forg] {
    margin-top: 16px;
    color: #6b7280;
    font-size: 14px;
}

/* 空状态 */
.empty-state[b-x7vbw3forg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    padding: 40px;
}

.empty-state.small[b-x7vbw3forg] {
    min-height: 200px;
    padding: 24px;
}

.empty-icon[b-x7vbw3forg] {
    font-size: 48px;
    color: #d1d5db;
    margin-bottom: 16px;
}

.empty-state.small .empty-icon[b-x7vbw3forg] {
    font-size: 36px;
}

.empty-title[b-x7vbw3forg] {
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    margin: 0 0 8px 0;
}

.empty-state.small .empty-title[b-x7vbw3forg] {
    font-size: 16px;
}

.empty-desc[b-x7vbw3forg] {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 20px 0;
}

.empty-state.small .empty-desc[b-x7vbw3forg] {
    margin-bottom: 0;
}

/* Toast */
.toast[b-x7vbw3forg] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn-b-x7vbw3forg 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@keyframes slideIn-b-x7vbw3forg {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-success[b-x7vbw3forg] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-x7vbw3forg] {
    background: #fee2e2;
    color: #ef4444;
}

/* 响应式 */
@media (max-width: 768px) {
    .page-header[b-x7vbw3forg] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .filter-row[b-x7vbw3forg] {
        flex-direction: column;
        align-items: stretch;
    }

    .filter-item[b-x7vbw3forg] {
        width: 100%;
    }

    .select-input[b-x7vbw3forg], .search-input[b-x7vbw3forg] {
        width: 100%;
    }
}
/* /Components/Pages/Users.razor.rz.scp.css */

.users-admin-page[b-d3w7vucxk4] { min-height: calc(100vh - 64px); background: #f5f6f8; }
.admin-layout[b-d3w7vucxk4] { display: flex; align-items: stretch; gap: 16px; min-height: calc(100vh - 64px); }

.tree-panel[b-d3w7vucxk4] { width: 220px; min-width: 220px; background: #fff; border-right: 1px solid #edf0f3; overflow: hidden; }
.tree-panel-header[b-d3w7vucxk4] { height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid #edf0f3; }
.tree-panel-title[b-d3w7vucxk4] { margin: 0; font-size: 15px; color: #3f4654; font-weight: 600; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.tree-panel-actions[b-d3w7vucxk4] { display: flex; align-items: center; gap: 8px; }
.tree-action[b-d3w7vucxk4] { border: 0; background: transparent; color: #7b8494; font-size: 14px; padding: 0; cursor: pointer; }
.tree-action:hover[b-d3w7vucxk4] { color: #1890ff; }

.tree-container[b-d3w7vucxk4] { padding: 12px 8px; overflow-y: auto; max-height: calc(100vh - 108px); }
.custom-tree[b-d3w7vucxk4] { color: #303642; }
.tree-node-row[b-d3w7vucxk4] { display: flex; align-items: center; min-height: 32px; gap: 6px; cursor: pointer; white-space: nowrap; font-size: 14px; line-height: 32px; padding: 0 6px; border-radius: 4px; }
.tree-node-row:hover[b-d3w7vucxk4] { background: #f3f7fb; }
.tree-node-row:hover .tn-name[b-d3w7vucxk4] { color: #1890ff; }
.tree-node-row.selected[b-d3w7vucxk4] { background: #eaf4ff; }
.tree-node-row.selected .tn-name[b-d3w7vucxk4] { color: #1890ff; font-weight: 600; }
.tn-toggle[b-d3w7vucxk4] { width: 18px; height: 24px; border: 0; background: transparent; color: #6b7280; font-size: 11px; padding: 0; cursor: pointer; }
.tn-toggle.expanded[b-d3w7vucxk4] { transform: rotate(90deg); }
.tn-toggle-placeholder[b-d3w7vucxk4] { width: 18px; flex-shrink: 0; }
.tn-icon[b-d3w7vucxk4] { color: #3f4654; font-size: 15px; width: 18px; flex-shrink: 0; }
.tn-name[b-d3w7vucxk4] { overflow: hidden; text-overflow: ellipsis; color: #303642; }
.tn-job[b-d3w7vucxk4], .tn-badge[b-d3w7vucxk4] { display: none; }
.tn-tag-manager[b-d3w7vucxk4], .tree-separator[b-d3w7vucxk4] { display: none; }
.tree-children[b-d3w7vucxk4] { margin-left: 14px; padding-left: 8px; border-left: 1px solid #d8dde6; }
.tree-empty[b-d3w7vucxk4] { padding: 28px 8px; color: #9ca3af; font-size: 14px; text-align: center; }

.users-content[b-d3w7vucxk4] { flex: 1; min-width: 0; padding: 12px 10px 0 0; }
.filter-card[b-d3w7vucxk4] { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; box-shadow: none; }
.filter-row[b-d3w7vucxk4] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.filter-item[b-d3w7vucxk4] { display: flex; flex-direction: column; gap: 6px; }
.filter-label[b-d3w7vucxk4] { font-size: 12px; font-weight: 500; color: #6b7280; }
.filter-row .ant-input[b-d3w7vucxk4] { width: 200px; height: 36px !important; min-height: 36px !important; font-size: 14px; border-radius: 6px; padding: 6px 12px !important; line-height: 22px !important; }
.filter-row .ant-input-affix-wrapper[b-d3w7vucxk4] { width: 200px; height: 36px !important; min-height: 36px !important; border-radius: 6px; padding: 0 12px !important; }
.filter-row .ant-input-affix-wrapper > input.ant-input[b-d3w7vucxk4] { height: 34px !important; min-height: 34px !important; padding: 0 !important; line-height: 34px !important; }
.filter-row .search-input[b-d3w7vucxk4] { width: 200px !important; min-width: 200px; }
.filter-row .select-input[b-d3w7vucxk4] { min-width: 140px; width: 160px; }
.filter-row .ant-select[b-d3w7vucxk4] { font-size: 14px; }
.filter-row .ant-select-selector[b-d3w7vucxk4] { height: 36px !important; border-radius: 6px !important; }
.filter-row .ant-select-selection-item[b-d3w7vucxk4] { line-height: 34px !important; }
.filter-row .ant-btn[b-d3w7vucxk4] { height: 36px; padding: 0 16px; font-size: 14px; border-radius: 6px; }
.filter-row .ant-btn-primary[b-d3w7vucxk4] { background: #2563eb; border-color: #2563eb; }
.filter-row .ant-btn:not(.ant-btn-primary)[b-d3w7vucxk4] { background: white; border-color: #d1d5db; color: #374151; }

.table-header[b-d3w7vucxk4] {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin-bottom: 12px; gap: 16px;
}
.table-header-left[b-d3w7vucxk4] { flex: 1; }
.table-header-right[b-d3w7vucxk4] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

.loading-container[b-d3w7vucxk4] { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 400px; background: white; gap: 12px; }
.loading-text[b-d3w7vucxk4] { color: #6b7280; font-size: 14px; margin: 0; }

.reset-password-form[b-d3w7vucxk4] { display: grid; gap: 16px; }
.reset-password-field[b-d3w7vucxk4] { display: grid; gap: 6px; }
.reset-password-field label[b-d3w7vucxk4] { color: #374151; font-size: 14px; font-weight: 500; }
.reset-password-field label span[b-d3w7vucxk4] { color: #dc2626; }
.reset-password-actions[b-d3w7vucxk4] { display: flex; justify-content: flex-end; padding-top: 4px; }

@media (max-width: 900px) {
    .admin-layout[b-d3w7vucxk4] { flex-direction: column; }
    .tree-panel[b-d3w7vucxk4] { width: 100%; min-width: unset; border-right: 0; }
    .users-content[b-d3w7vucxk4] { padding: 0 8px 8px; }
}

/* 管理列表页统一回落到控制台版式，避免旧版灰底和重复内边距。 */
.page-container.console-list-page.users-admin-page[b-d3w7vucxk4] {
    min-height: 100%;
    padding: var(--console-page-padding);
    background: var(--console-color-bg-page);
}

.users-admin-page .admin-layout[b-d3w7vucxk4] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.users-admin-page .users-content[b-d3w7vucxk4] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    padding: 0;
}

.users-list-surface[b-d3w7vucxk4] {
    flex: 1 1 auto;
    min-height: 240px;
    border-radius: var(--console-radius-md);
}

.users-table-scroll[b-d3w7vucxk4] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow: auto;
}

/* 横向滚动由 AntD Table 的 ScrollX + TableLayout=Fixed 内建处理。 */

.users-list-surface[b-d3w7vucxk4]  .ant-table-thead > tr > th,
.users-list-surface[b-d3w7vucxk4]  .ant-table-tbody > tr > td {
    white-space: nowrap;
}

.users-list-surface[b-d3w7vucxk4]  .ant-table-thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.users-list-surface[b-d3w7vucxk4]  .ant-table-tbody > tr > td:nth-child(2),
.users-list-surface[b-d3w7vucxk4]  .ant-table-tbody > tr > td:nth-child(3) {
    min-width: 110px;
}

.users-list-surface[b-d3w7vucxk4]  .ant-table-thead > tr > th,
.users-list-surface[b-d3w7vucxk4]  .ant-table-tbody > tr > td {
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 600px) {
    .page-container.console-list-page.users-admin-page[b-d3w7vucxk4] {
        padding: var(--console-space-4);
    }
}
/* /Components/Shared/AccessScopeSelector.razor.rz.scp.css */
.access-scope-selector[b-q8zykzz521] { display: grid; gap: 14px; min-width: 0; }
.scope-visibility-select[b-q8zykzz521] { width: 100%; }
.scope-tree-toolbar[b-q8zykzz521] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.scope-search[b-q8zykzz521] { min-width: 0; flex: 1; }
.scope-selection-count[b-q8zykzz521] { flex: none; color: #6b7280; font-size: 12px; }
.scope-tree[b-q8zykzz521] { min-height: 180px; max-height: min(360px, 42vh); overflow: auto; padding: 6px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; }
.scope-tree[b-q8zykzz521]  .ant-tree { min-width: max-content; }
.scope-tree-title[b-q8zykzz521] { min-width: 0; display: inline-flex; align-items: center; gap: 8px; }
.scope-tree-title.group .scope-tree-name[b-q8zykzz521] { color: #334155; font-weight: 600; }
.scope-tree-name[b-q8zykzz521] { max-width: 260px; overflow: hidden; color: #1f2937; text-overflow: ellipsis; white-space: nowrap; }
.scope-tree-count[b-q8zykzz521] { margin-left: 2px; color: #64748b; }
.scope-selected-summary[b-q8zykzz521] { display: grid; gap: 8px; padding-top: 2px; }
.scope-selected-summary > strong[b-q8zykzz521] { font-size: 13px; }
.scope-selected-empty[b-q8zykzz521] { color: #8c8c8c; font-size: 12px; }
.scope-selected-tags[b-q8zykzz521] { display: flex; flex-wrap: wrap; gap: 6px; }
.scope-tag[b-q8zykzz521] { display: inline-flex; align-items: center; gap: 5px; min-width: 0; max-width: 220px; padding: 4px 8px; border-radius: 4px; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scope-tag.department[b-q8zykzz521] { background: #eef6ff; color: #175cd3; }
.scope-tag.user[b-q8zykzz521] { background: #ecfdf3; color: #067647; }
.scope-tag.more[b-q8zykzz521] { background: #f3f4f6; color: #4b5563; }
@media (max-width: 720px) {
    .scope-tree-toolbar[b-q8zykzz521] { align-items: stretch; flex-direction: column; }
    .scope-selection-count[b-q8zykzz521] { align-self: flex-end; }
}
/* /Components/Shared/AssetTagEditorModal.razor.rz.scp.css */
.asset-tag-label-row[b-sm5cy8kh1l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.asset-tag-counter[b-sm5cy8kh1l] {
    color: #8c8c8c;
    font-size: 12px;
}

.asset-tag-selection[b-sm5cy8kh1l] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 72px;
    padding: 12px;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    background: #fafafa;
}

.asset-tag-empty[b-sm5cy8kh1l] {
    width: 100%;
    color: #8c8c8c;
    font-size: 14px;
    text-align: center;
}

.asset-tag-selection[b-sm5cy8kh1l]  .ant-tag {
    margin: 0;
}

.asset-tag-create-row[b-sm5cy8kh1l] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

@media (max-width: 480px) {
    .asset-tag-create-row[b-sm5cy8kh1l] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Shared/AssetTransferSummary.razor.rz.scp.css */
.asset-transfer-summary[b-9rcovvsouf] {
    display: flex;
    min-width: 0;
    min-height: 72px;
    padding: 12px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #f6f8fb;
    border: 1px solid #e6eaf0;
    border-radius: 6px;
}

.asset-transfer-main[b-9rcovvsouf],
.asset-transfer-loading[b-9rcovvsouf],
.asset-transfer-heading[b-9rcovvsouf],
.asset-transfer-actions[b-9rcovvsouf] {
    display: flex;
    align-items: center;
}

.asset-transfer-main[b-9rcovvsouf] {
    min-width: 0;
    flex: 1;
    gap: 12px;
}

.asset-transfer-loading[b-9rcovvsouf] {
    gap: 10px;
    color: #6b7280;
}

.asset-transfer-icon[b-9rcovvsouf] {
    display: inline-flex;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    color: #475569;
    background: #fff;
    border: 1px solid #dbe2ea;
    border-radius: 6px;
}

.asset-transfer-icon.active[b-9rcovvsouf] { color: #1677ff; border-color: #91caff; }
.asset-transfer-icon.warning[b-9rcovvsouf] { color: #d97706; border-color: #fcd34d; }

.asset-transfer-copy[b-9rcovvsouf] {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 3px;
}

.asset-transfer-copy strong[b-9rcovvsouf] {
    color: #1f2937;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.asset-transfer-copy > span[b-9rcovvsouf] {
    color: #64748b;
    font-size: 12px;
}

.asset-transfer-heading[b-9rcovvsouf] {
    min-width: 0;
    gap: 8px;
}

.asset-transfer-progress[b-9rcovvsouf] {
    max-width: 460px;
}

.asset-transfer-progress[b-9rcovvsouf]  .ant-progress {
    margin: 0;
}

.asset-transfer-actions[b-9rcovvsouf] {
    flex: 0 0 auto;
    gap: 4px;
}

@media (max-width: 768px) {
    .asset-transfer-summary[b-9rcovvsouf] {
        align-items: stretch;
        flex-direction: column;
    }

    .asset-transfer-actions[b-9rcovvsouf] {
        justify-content: flex-end;
    }
}
/* /Components/Shared/AuditCenterNav.razor.rz.scp.css */
.audit-center-header[b-sdagvn0r55] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: var(--console-space-4, 16px);
    border-bottom: 1px solid var(--console-color-split, #f0f0f0);
}

.audit-center-heading[b-sdagvn0r55] {
    flex: 0 0 auto;
    padding-bottom: 13px;
}

.audit-center-heading h1[b-sdagvn0r55] {
    margin: 0;
    color: var(--console-color-text-1, #1f2329);
    font-size: var(--console-font-lg, 20px);
    font-weight: 600;
    line-height: 1.35;
}

.audit-center-heading span[b-sdagvn0r55] {
    display: block;
    margin-top: 3px;
    color: var(--console-color-text-3, #666);
    font-size: var(--console-font-sm, 13px);
}

.audit-center-tabs[b-sdagvn0r55] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: stretch;
    gap: var(--console-space-1, 4px);
    overflow-x: auto;
}

.audit-center-tab[b-sdagvn0r55] {
    display: inline-flex;
    align-items: center;
    gap: var(--console-space-2, 8px);
    min-height: 42px;
    padding: 0 var(--console-space-3, 12px);
    border-bottom: 2px solid transparent;
    color: var(--console-color-text-3, #666);
    font-size: var(--console-font-base, 14px);
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.audit-center-tab:hover[b-sdagvn0r55] {
    color: var(--console-color-primary, #1677ff);
}

.audit-center-tab.active[b-sdagvn0r55] {
    border-bottom-color: var(--console-color-primary, #1677ff);
    color: var(--console-color-primary, #1677ff);
    font-weight: 600;
}

@media (max-width: 840px) {
    .audit-center-header[b-sdagvn0r55] {
        align-items: stretch;
        flex-direction: column;
        gap: 0;
    }

    .audit-center-heading[b-sdagvn0r55] {
        padding-bottom: 8px;
    }

    .audit-center-tabs[b-sdagvn0r55] {
        width: 100%;
    }
}
/* /Components/Shared/AuditCenterPage.razor.rz.scp.css */
.audit-center-page[b-vzie0dtxlc] {
    width: 100%;
    min-height: 100%;
    box-sizing: border-box;
    color: var(--console-color-text-1, #1f2329);
    background: var(--console-color-bg-page, #fff);
}

.audit-center-page__content[b-vzie0dtxlc] {
    min-width: 0;
}

/* 审计中心共享平台控制台的页面节奏，页面级样式只保留业务差异。 */
.audit-center-page[b-vzie0dtxlc]  .audit-overview,
.audit-center-page[b-vzie0dtxlc]  .audit-page,
.audit-center-page[b-vzie0dtxlc]  .outbox-page,
.audit-center-page[b-vzie0dtxlc]  .audit-detail-page {
    display: flex;
    flex-direction: column;
    gap: var(--console-space-4, 16px);
    min-width: 0;
}

.audit-center-page[b-vzie0dtxlc]  .overview-toolbar,
.audit-center-page[b-vzie0dtxlc]  .page-heading,
.audit-center-page[b-vzie0dtxlc]  .detail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--console-space-4, 16px);
    min-width: 0;
    margin-bottom: 0;
}

.audit-center-page[b-vzie0dtxlc]  .detail-filters,
.audit-center-page[b-vzie0dtxlc]  .detail-metrics-grid,
.audit-center-page[b-vzie0dtxlc]  .panel-grid.two-column {
    margin-top: 0;
    margin-bottom: 0;
}

.audit-center-page[b-vzie0dtxlc]  .toolbar-right,
.audit-center-page[b-vzie0dtxlc]  .page-actions {
    display: flex;
    align-items: center;
    gap: var(--console-space-3, 12px);
    min-width: 0;
}

.audit-center-page[b-vzie0dtxlc]  .section-block,
.audit-center-page[b-vzie0dtxlc]  .overview-panel,
.audit-center-page[b-vzie0dtxlc]  .summary-card,
.audit-center-page[b-vzie0dtxlc]  .panel-card,
.audit-center-page[b-vzie0dtxlc]  .filter-card,
.audit-center-page[b-vzie0dtxlc]  .detail-hero {
    background: var(--console-color-bg-card, #fff);
    border: 1px solid var(--console-color-border, #e5e6eb);
    border-radius: var(--console-radius-md, 6px);
    box-shadow: var(--console-shadow-card, 0 1px 2px rgba(0, 0, 0, .03));
}

.audit-center-page[b-vzie0dtxlc]  .section-block,
.audit-center-page[b-vzie0dtxlc]  .overview-panel,
.audit-center-page[b-vzie0dtxlc]  .detail-hero {
    padding: var(--console-space-5, 20px) var(--console-space-6, 24px);
}

.audit-center-page[b-vzie0dtxlc]  .metric-card {
    min-width: 0;
    min-height: 96px;
    padding: var(--console-space-4, 16px);
    background: var(--console-color-bg-card, #fff);
    border: 1px solid var(--console-color-border, #e5e6eb);
    border-radius: var(--console-radius-md, 6px);
    box-shadow: var(--console-shadow-card, 0 1px 2px rgba(0, 0, 0, .03));
}

.audit-center-page[b-vzie0dtxlc]  .metric-value {
    color: var(--console-color-text-1, #1f2329);
    font-size: 28px;
    font-weight: 700;
}

.audit-center-page[b-vzie0dtxlc]  .metric-label,
.audit-center-page[b-vzie0dtxlc]  .card-label,
.audit-center-page[b-vzie0dtxlc]  .detail-grid span,
.audit-center-page[b-vzie0dtxlc]  .detail-meta-label {
    color: var(--console-color-text-3, #666);
}

.audit-center-page[b-vzie0dtxlc]  .metric-sub,
.audit-center-page[b-vzie0dtxlc]  .panel-header > span,
.audit-center-page[b-vzie0dtxlc]  .page-heading p {
    color: var(--console-color-text-4, #8f959e);
}

.audit-center-page[b-vzie0dtxlc]  .section-title,
.audit-center-page[b-vzie0dtxlc]  .panel-header h2,
.audit-center-page[b-vzie0dtxlc]  .page-heading h2,
.audit-center-page[b-vzie0dtxlc]  .detail-hero h1,
.audit-center-page[b-vzie0dtxlc]  .detail-section-title {
    color: var(--console-color-text-1, #1f2329);
}

.audit-center-page[b-vzie0dtxlc]  .section-loading,
.audit-center-page[b-vzie0dtxlc]  .loading-panel {
    color: var(--console-color-text-4, #8f959e);
}

.audit-center-page[b-vzie0dtxlc]  .trend-empty,
.audit-center-page[b-vzie0dtxlc]  .detail-meta-grid,
.audit-center-page[b-vzie0dtxlc]  .detail-code-block,
.audit-center-page[b-vzie0dtxlc]  .detail-grid pre {
    background: var(--console-color-bg-tile, #fafafa);
    border-color: var(--console-color-border, #e5e6eb);
    border-radius: var(--console-radius-base, 4px);
}

.audit-center-page[b-vzie0dtxlc]  .audit-pagination-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--console-space-3, 12px);
    flex-wrap: wrap;
    padding: var(--console-space-3, 12px) 0 0;
}

.audit-center-page[b-vzie0dtxlc]  .audit-inline-alert-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--console-space-3, 12px);
    align-items: center;
}

.audit-center-page[b-vzie0dtxlc]  .ant-table-wrapper {
    border: 1px solid var(--console-color-border, #e5e6eb);
    border-radius: var(--console-radius-md, 6px);
    overflow: hidden;
}

.audit-center-page[b-vzie0dtxlc]  .ant-table-thead > tr > th {
    background: var(--console-color-bg-tile, #fafafa);
    color: var(--console-color-text-3, #666);
}

@media (max-width: 720px) {
    .audit-center-page[b-vzie0dtxlc]  .overview-toolbar,
    .audit-center-page[b-vzie0dtxlc]  .page-heading {
        flex-direction: column;
        align-items: stretch;
    }

    .audit-center-page[b-vzie0dtxlc]  .toolbar-left,
    .audit-center-page[b-vzie0dtxlc]  .toolbar-right,
    .audit-center-page[b-vzie0dtxlc]  .page-actions {
        flex-wrap: wrap;
    }

    .audit-center-page[b-vzie0dtxlc]  .audit-inline-alert-actions {
        grid-template-columns: 1fr;
    }
}
/* /Components/Shared/ConsoleFilterBar.razor.rz.scp.css */
.console-filter-bar[b-4wjmhm97yt] {
    width: 100%;
    margin: 0 0 16px;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.console-filter-main[b-4wjmhm97yt] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}

.console-filter-search[b-4wjmhm97yt] {
    flex: 0 1 240px;
    width: 240px;
    min-width: 180px;
    max-width: 100%;
}

.console-filter-primary[b-4wjmhm97yt],
.console-filter-actions[b-4wjmhm97yt] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
    flex: 0 1 auto;
}

.console-filter-primary:not(:has(*))[b-4wjmhm97yt],
.console-filter-actions:not(:has(*))[b-4wjmhm97yt] {
    display: none;
}

.console-filter-primary[b-4wjmhm97yt] {
    flex-wrap: wrap;
}

.console-filter-actions[b-4wjmhm97yt] {
    flex-wrap: wrap;
    margin-left: 0;
    justify-content: flex-start;
}

.console-filter-bar[b-4wjmhm97yt]  .ant-btn {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    white-space: nowrap;
}

.console-filter-bar[b-4wjmhm97yt]  .console-filter-field {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 6px;
    min-width: 128px;
}

.console-filter-bar[b-4wjmhm97yt]  .console-filter-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.console-filter-search[b-4wjmhm97yt]  .ant-input-affix-wrapper,
.console-filter-search[b-4wjmhm97yt]  .ant-input-search,
.console-filter-search[b-4wjmhm97yt]  .ant-input-group-wrapper,
.console-filter-search[b-4wjmhm97yt]  > .ant-input,
.console-filter-search[b-4wjmhm97yt]  > input {
    width: 100% !important;
    max-width: 240px;
}

.console-filter-bar[b-4wjmhm97yt]  .ant-select,
.console-filter-bar[b-4wjmhm97yt]  .ant-picker {
    width: 160px !important;
    max-width: 100%;
}

@media (max-width: 900px) {
    .console-filter-main[b-4wjmhm97yt] {
        flex-wrap: wrap;
    }
}

@media (max-width: 600px) {
    .console-filter-search[b-4wjmhm97yt] {
        flex-basis: 100%;
        width: 100%;
    }

    .console-filter-actions[b-4wjmhm97yt] {
        justify-content: flex-start;
    }

    .console-filter-bar[b-4wjmhm97yt]  .console-filter-field {
        flex: 1 1 150px;
    }
}
/* /Components/Shared/ConsoleFormModal.razor.rz.scp.css */
.console-form-modal-body[b-jtl6oo7nbt] {
    display: grid;
    gap: 20px;
    min-width: 0;
    padding: 4px 0;
}

.console-form-modal-description[b-jtl6oo7nbt] {
    margin: -2px 0 0;
    color: #595959;
    font-size: 13px;
    line-height: 20px;
}

.console-form-modal-body[b-jtl6oo7nbt]  .console-form-field {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.console-form-modal-body[b-jtl6oo7nbt]  .console-form-label {
    color: #262626;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
}

.console-form-modal-body[b-jtl6oo7nbt]  .console-form-help {
    margin: 0;
    color: #8c8c8c;
    font-size: 12px;
    line-height: 20px;
}

.console-form-modal-body[b-jtl6oo7nbt]  .console-form-error {
    margin: 0;
    color: #ff4d4f;
    font-size: 12px;
    line-height: 20px;
}

@media (max-width: 600px) {
    .console-form-modal-body[b-jtl6oo7nbt] {
        gap: 16px;
    }
}
/* /Components/Shared/ConsolePageToolbar.razor.rz.scp.css */
.console-page-toolbar[b-sqx3fl8pto] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
    margin: 0 0 12px;
}

.console-page-toolbar[b-sqx3fl8pto]  > .ant-btn:first-child {
    flex: 0 0 auto;
    height: 32px;
    padding-left: 0;
}

.console-page-toolbar-actions[b-sqx3fl8pto] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

@media (max-width: 600px) {
    .console-page-toolbar[b-sqx3fl8pto] {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .console-page-toolbar-actions[b-sqx3fl8pto] {
        width: 100%;
        justify-content: flex-start;
    }
}
/* /Components/Shared/DepartmentSharedView.razor.rz.scp.css */
.department-shared-view[b-vpdkev5xcm] {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    min-height: 380px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--console-color-border, #e5e7eb);
    border-radius: var(--console-radius-base, 6px);
}

.department-shared-sidebar[b-vpdkev5xcm] {
    min-width: 0;
    background: #fafafa;
    border-right: 1px solid var(--console-color-border, #e5e7eb);
}

.department-shared-sidebar-header[b-vpdkev5xcm],
.department-shared-content-header[b-vpdkev5xcm] {
    min-height: 48px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--console-color-border, #e5e7eb);
}

.department-shared-sidebar-header[b-vpdkev5xcm],
.department-shared-content-title[b-vpdkev5xcm] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #1f2937;
    font-size: 14px;
    font-weight: 600;
}

.department-shared-tree[b-vpdkev5xcm] {
    max-height: 520px;
    padding: 12px 8px;
    overflow: auto;
}

.department-shared-tree[b-vpdkev5xcm]  .ant-tree {
    background: transparent;
}

.department-shared-tree[b-vpdkev5xcm]  .ant-tree-node-content-wrapper {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.department-shared-node-title.selected[b-vpdkev5xcm] {
    color: #1677ff;
    font-weight: 600;
}

.department-shared-content[b-vpdkev5xcm] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    background: #fff;
}

.department-shared-content-header[b-vpdkev5xcm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.department-shared-state[b-vpdkev5xcm] {
    display: flex;
    min-height: 300px;
    padding: 32px 20px;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: #6b7280;
    text-align: center;
}

.department-shared-state > span[b-vpdkev5xcm] {
    max-width: 420px;
    font-size: 13px;
    line-height: 1.6;
}

.department-shared-result[b-vpdkev5xcm] {
    min-width: 0;
    padding: 16px;
    overflow-x: auto;
}

@media (max-width: 768px) {
    .department-shared-view[b-vpdkev5xcm] {
        grid-template-columns: minmax(0, 1fr);
    }

    .department-shared-sidebar[b-vpdkev5xcm] {
        border-right: 0;
        border-bottom: 1px solid var(--console-color-border, #e5e7eb);
    }

    .department-shared-tree[b-vpdkev5xcm] {
        max-height: 220px;
    }

    .department-shared-state[b-vpdkev5xcm] {
        min-height: 220px;
    }
}
/* /Components/Shared/FileExplorer.razor.rz.scp.css */
/* 组件根容器：所有样式都在 FileExplorer 内部，不依赖外部 wrapper */
.file-explorer-root[b-gdyq5vt2np] {
    border: 0;
    border-radius: 0;
    background: transparent;
    min-height: 300px;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.files-table-scroll[b-gdyq5vt2np] {
    width: 100%;
    min-height: 0;
    overflow: auto;
}

/* 面包屑导航 */
.breadcrumb-container[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 12px;
    min-height: 40px;
    padding: 6px 10px;
    background: #fafafa;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
}

.breadcrumb-separator[b-gdyq5vt2np] {
    color: #9ca3af;
}

/* 按钮 */
.btn[b-gdyq5vt2np] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.15s;
    text-decoration: none;
}

.btn:disabled[b-gdyq5vt2np] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-primary[b-gdyq5vt2np] {
    background: #2563eb;
    color: white;
}

.btn-primary:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #1d4ed8;
}

.btn-default[b-gdyq5vt2np] {
    background: white;
    color: #374151;
    border-color: #d1d5db;
}

.btn-default:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #f9fafb;
}

.btn-danger[b-gdyq5vt2np] {
    background: #ef4444;
    color: white;
}

.btn-danger:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #dc2626;
}

.btn-primary-outline[b-gdyq5vt2np] {
    background: white;
    color: #2563eb;
    border-color: #2563eb;
}

.btn-primary-outline:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #eff6ff;
}

.btn-danger-outline[b-gdyq5vt2np] {
    background: white;
    color: #ef4444;
    border-color: #ef4444;
}

.btn-danger-outline:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #fef2f2;
}

.btn-success-outline[b-gdyq5vt2np] {
    background: white;
    color: #16a34a;
    border-color: #16a34a;
}

.btn-success-outline:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #f0fff4;
}

.btn-success[b-gdyq5vt2np] {
    background: #16a34a;
    color: white;
}

.btn-success:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #15803d;
}

.btn-link[b-gdyq5vt2np] {
    background: none;
    border: none;
    color: #2563eb;
    cursor: pointer;
    font-size: 14px;
    padding: 4px 8px;
}

.btn-link:hover[b-gdyq5vt2np] {
    color: #1d4ed8;
    text-decoration: underline;
}

.btn-sm[b-gdyq5vt2np] {
    padding: 4px 8px;
    font-size: 12px;
}

/* 文件操作区 */
.files-actions[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.files-actions[b-gdyq5vt2np]  .ant-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    min-height: 32px;
    padding: 0 15px;
    font-size: 14px;
    line-height: 30px;
}

.file-row-actions[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-button {
    width: 32px;
    min-width: 32px;
    height: 30px;
    padding: 0;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-button:hover {
    background: #f0f5ff;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-download {
    box-shadow: none;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-version-text {
    width: auto;
    min-width: 52px;
    padding: 0 8px;
    color: #7c3aed;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-version-text:hover {
    background: #f5f3ff;
}

.file-row-actions[b-gdyq5vt2np]  .file-action-delete:hover {
    background: #fff1f0;
}

.file-name-btn[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.file-item[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
}

.file-info-name-btn[b-gdyq5vt2np] {
    padding: 0;
    color: #111827;
    text-decoration: none;
}

.file-info-name-btn:hover .file-name[b-gdyq5vt2np] {
    color: #2563eb;
    text-decoration: underline;
}

.folder-row[b-gdyq5vt2np] {
    cursor: pointer;
}

.folder-row:hover[b-gdyq5vt2np] {
    background: #eff6ff;
}

.file-row:hover[b-gdyq5vt2np] {
    background: #f9fafb;
}

.current-path[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    color: #374151;
    font-size: 14px;
}

/* 加载和空状态 */
.loading-files[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px;
    color: #6b7280;
    font-size: 14px;
}

.empty-files[b-gdyq5vt2np] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 220px;
    padding: 32px 20px;
    border: 1px dashed #d9d9d9;
    border-radius: 6px;
    background: #fff;
    color: #9ca3af;
}

.empty-files i[b-gdyq5vt2np] {
    font-size: 48px;
}

.empty-files p[b-gdyq5vt2np] {
    font-size: 14px;
    margin: 0;
}

.empty-hint[b-gdyq5vt2np] {
    font-size: 12px;
    color: #9ca3af;
}

/* 文件表格 */
.files-table[b-gdyq5vt2np] {
    width: 100%;
    min-width: 860px;
    background: #fff;
    border-collapse: collapse;
}

.files-table th[b-gdyq5vt2np] {
    text-align: left;
    padding: 10px 12px;
    background: #f9fafb;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    text-transform: uppercase;
    border-bottom: 1px solid #e5e7eb;
}

.files-table td[b-gdyq5vt2np] {
    padding: 10px 12px;
    font-size: 13px;
    color: #111827;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.files-table tbody tr:hover[b-gdyq5vt2np] {
    background: #f9fafb;
}

.file-icon[b-gdyq5vt2np] {
    margin-right: 8px;
    color: #6b7280;
}

.file-name[b-gdyq5vt2np] {
    font-size: 13px;
    color: #111827;
}

.type-tag[b-gdyq5vt2np] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.type-folder[b-gdyq5vt2np] {
    background: #dbeafe;
    color: #2563eb;
}

.type-file[b-gdyq5vt2np] {
    background: #f3f4f6;
    color: #6b7280;
}

.files-summary[b-gdyq5vt2np] {
    margin-top: 12px;
    padding: 12px 0 0;
    border-top: 1px solid #e5e7eb;
    font-size: 13px;
    color: #6b7280;
}

/* 弹窗 */
.modal-overlay[b-gdyq5vt2np] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1200;
}

.modal-content[b-gdyq5vt2np] {
    background: white;
    border-radius: 8px;
    width: 480px;
    max-width: 90vw;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.modal-header[b-gdyq5vt2np] {
    padding: 16px 20px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-title[b-gdyq5vt2np] {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-close[b-gdyq5vt2np] {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    font-size: 16px;
    padding: 4px;
}

.modal-close:hover[b-gdyq5vt2np] {
    color: #111827;
}

.modal-body[b-gdyq5vt2np] {
    padding: 20px;
}

.modal-footer[b-gdyq5vt2np] {
    padding: 16px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.versions-modal[b-gdyq5vt2np] {
    width: min(920px, 94vw);
}

.versions-modal .modal-body[b-gdyq5vt2np] {
    overflow-x: auto;
}

.versions-modal .files-table[b-gdyq5vt2np] {
    min-width: 820px;
}

.versions-modal .files-table th[b-gdyq5vt2np],
.versions-modal .files-table td[b-gdyq5vt2np] {
    white-space: nowrap;
}

.versions-modal .files-table td .btn + .btn[b-gdyq5vt2np] {
    margin-left: 8px;
}

.file-preview-modal[b-gdyq5vt2np] {
    width: min(1100px, 92vw);
    height: min(780px, 88vh);
    display: flex;
    flex-direction: column;
}

.file-preview-body[b-gdyq5vt2np] {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 0;
    background: #f9fafb;
}

.file-preview-frame[b-gdyq5vt2np] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    border: none;
    background: #fff;
}

.file-preview-centered[b-gdyq5vt2np] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.file-preview-image[b-gdyq5vt2np] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.file-preview-text[b-gdyq5vt2np] {
    min-height: 560px;
    margin: 0;
    padding: 16px;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 12px;
    line-height: 1.6;
    background: #111827;
    color: #f9fafb;
}

.file-preview-media[b-gdyq5vt2np] {
    width: min(720px, 100%);
}

.file-preview-video[b-gdyq5vt2np] {
    width: 100%;
    height: 100%;
    min-height: 560px;
    background: #111827;
}

/* 表单 */
.form-item[b-gdyq5vt2np] {
    margin-bottom: 16px;
}

.form-label[b-gdyq5vt2np] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
}

.form-input[b-gdyq5vt2np] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    background: white;
    transition: all 0.15s;
}

.form-input:focus[b-gdyq5vt2np] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.selected-file[b-gdyq5vt2np] {
    margin-top: 8px;
    padding: 8px 12px;
    background: #f0f5ff;
    border-radius: 4px;
    color: #2563eb;
    font-size: 13px;
}

.required[b-gdyq5vt2np] {
    color: #ef4444;
}

/* 删除确认 */
.warning-message[b-gdyq5vt2np] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px;
}

.warning-icon[b-gdyq5vt2np] {
    font-size: 48px;
    color: #fbbf24;
}

.warning-hint[b-gdyq5vt2np] {
    font-size: 13px;
    color: #6b7280;
}

/* Toast */
.toast[b-gdyq5vt2np] {
    position: fixed;
    top: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2000;
    animation: slideIn 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@@keyframes slideIn {
    from[b-gdyq5vt2np] { transform: translateX(100%); opacity: 0; }
    to[b-gdyq5vt2np] { transform: translateX(0); opacity: 1; }
}

.toast-success[b-gdyq5vt2np] {
    background: #dcfce7;
    color: #16a34a;
}

.toast-error[b-gdyq5vt2np] {
    background: #fee2e2;
    color: #ef4444;
}

/* 压缩弹窗文件列表样式 */
.compress-modal[b-gdyq5vt2np] {
    width: 600px;
    max-width: 90vw;
}

.compress-file-list[b-gdyq5vt2np] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    max-height: 300px;
    overflow-y: auto;
}

.compress-file-header[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-size: 13px;
    color: #374151;
}

.compress-file-header input[type="checkbox"][b-gdyq5vt2np] {
    width: 16px;
    height: 16px;
}

.compress-file-item[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
}

.compress-file-item:last-child[b-gdyq5vt2np] {
    border-bottom: none;
}

.compress-file-item.selected[b-gdyq5vt2np] {
    background: #eff6ff;
}

.compress-file-item input[type="checkbox"][b-gdyq5vt2np] {
    width: 16px;
    height: 16px;
}

.compress-file-item i[b-gdyq5vt2np] {
    color: #6b7280;
    font-size: 14px;
}

.compress-file-item .file-name[b-gdyq5vt2np] {
    flex: 1;
    color: #111827;
}

.compress-file-item .file-size[b-gdyq5vt2np] {
    color: #6b7280;
    font-size: 12px;
}

.form-hint[b-gdyq5vt2np] {
    margin-top: 4px;
    font-size: 12px;
    color: #6b7280;
}

/* 对象信息抽屉 */
.object-info-overlay[b-gdyq5vt2np] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.35);
    display: flex;
    justify-content: flex-end;
    z-index: 1100;
}

.object-info-panel[b-gdyq5vt2np] {
    width: 440px;
    max-width: 95vw;
    height: 100vh;
    background: #fff;
    box-shadow: -8px 0 24px rgba(15, 23, 42, 0.18);
    display: flex;
    flex-direction: column;
}

.object-info-header[b-gdyq5vt2np] {
    padding: 18px 20px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.object-info-title-wrap[b-gdyq5vt2np] {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.object-info-title-wrap > i[b-gdyq5vt2np] {
    color: #2563eb;
    margin-top: 3px;
}

.object-info-title[b-gdyq5vt2np] {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #111827;
}

.object-info-subtitle[b-gdyq5vt2np] {
    max-width: 320px;
    margin-top: 3px;
    font-size: 13px;
    color: #6b7280;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.object-info-body[b-gdyq5vt2np] {
    flex: 1;
    overflow-y: auto;
    padding: 18px 20px 24px;
}

.object-info-section[b-gdyq5vt2np] {
    margin-bottom: 22px;
}

.object-info-section h4[b-gdyq5vt2np] {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    color: #111827;
}

.object-info-actions[b-gdyq5vt2np] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.object-info-actions[b-gdyq5vt2np]  .ant-btn {
    height: 34px;
    border-radius: 6px;
    text-align: left;
}

.object-info-actions[b-gdyq5vt2np]  .ant-btn .anticon {
    margin-right: 6px;
}

.object-info-grid[b-gdyq5vt2np] {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    row-gap: 10px;
    column-gap: 12px;
    margin: 0;
}

.object-info-grid dt[b-gdyq5vt2np] {
    color: #6b7280;
    font-size: 13px;
}

.object-info-grid dd[b-gdyq5vt2np] {
    min-width: 0;
    margin: 0;
    color: #111827;
    font-size: 13px;
    word-break: break-all;
}

.object-info-grid code[b-gdyq5vt2np] {
    font-size: 12px;
    color: #374151;
    background: #f3f4f6;
    border-radius: 4px;
    padding: 2px 4px;
}

.object-info-empty[b-gdyq5vt2np] {
    padding: 12px;
    border: 1px dashed #d1d5db;
    border-radius: 6px;
    color: #9ca3af;
    font-size: 13px;
    text-align: center;
}

.metadata-table[b-gdyq5vt2np] {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.metadata-table th[b-gdyq5vt2np],
.metadata-table td[b-gdyq5vt2np] {
    padding: 9px 10px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
    text-align: left;
    vertical-align: top;
    word-break: break-all;
}

.metadata-table th[b-gdyq5vt2np] {
    width: 38%;
    color: #6b7280;
    background: #f9fafb;
    font-weight: 600;
}

.metadata-table td[b-gdyq5vt2np] {
    color: #111827;
}

.metadata-table tr:last-child th[b-gdyq5vt2np],
.metadata-table tr:last-child td[b-gdyq5vt2np] {
    border-bottom: none;
}

.tag-chip-list[b-gdyq5vt2np] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.tag-chip[b-gdyq5vt2np] {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.tags-modal[b-gdyq5vt2np] {
    width: min(720px, 92vw);
}

.tags-modal-header[b-gdyq5vt2np] {
    align-items: flex-start;
}

.tags-modal-title-wrap[b-gdyq5vt2np] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.tags-modal-icon-wrap[b-gdyq5vt2np] {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #eff6ff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.tags-modal-icon[b-gdyq5vt2np] {
    color: #2563eb;
    font-size: 16px;
}

.tags-modal-title-text[b-gdyq5vt2np] {
    min-width: 0;
}

.tags-modal-title-text .modal-title[b-gdyq5vt2np] {
    margin: 0;
}

.tags-modal-subtitle[b-gdyq5vt2np] {
    margin-top: 4px;
    color: #6b7280;
    font-size: 13px;
    word-break: break-all;
}

.tags-modal-body[b-gdyq5vt2np] {
    padding-top: 18px;
}

.tags-modal-footer[b-gdyq5vt2np] {
    justify-content: flex-end;
}

.tag-section[b-gdyq5vt2np] {
    margin-bottom: 18px;
}

.tag-section-title[b-gdyq5vt2np] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 12px;
}

.tag-section-title[b-gdyq5vt2np]::before {
    content: '';
    width: 4px;
    height: 16px;
    border-radius: 999px;
    background: #2563eb;
}

.tag-empty[b-gdyq5vt2np] {
    padding: 14px 16px;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    background: #f9fafb;
    color: #9ca3af;
    font-size: 13px;
}

.tag-chip-list-edit[b-gdyq5vt2np] {
    margin-bottom: 4px;
}

.tag-chip-edit[b-gdyq5vt2np] {
    border: none;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.tag-chip-edit:hover:not(:disabled)[b-gdyq5vt2np] {
    background: #1d4ed8;
}

.tag-chip-edit i[b-gdyq5vt2np] {
    font-size: 11px;
    opacity: 0.9;
}

.tag-chip-text[b-gdyq5vt2np] {
    white-space: nowrap;
}

.tag-add-form[b-gdyq5vt2np] {
    padding: 14px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
}

.tag-add-grid[b-gdyq5vt2np] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: start;
}

.tag-add-row[b-gdyq5vt2np] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tag-field-label[b-gdyq5vt2np] {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
}

.tag-field-input[b-gdyq5vt2np] {
    font-size: 13px;
    padding: 9px 10px;
}

.tag-add-actions[b-gdyq5vt2np] {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
}

.tag-editor-error[b-gdyq5vt2np] {
    padding: 10px 12px;
    border: 1px solid #fecaca;
    border-radius: 6px;
    background: #fef2f2;
    color: #dc2626;
    font-size: 13px;
}

@media (max-width: 640px) {
    .tag-add-grid[b-gdyq5vt2np] {
        grid-template-columns: 1fr;
    }

    .tags-modal-title-wrap[b-gdyq5vt2np] {
        gap: 10px;
    }
}

/* /Components/Shared/GpuAllocationWorkflow.razor.rz.scp.css */
.allocation-workflow-overlay[b-thpg3a1deb] { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 20px; background: rgba(15, 23, 42, .5); }
.allocation-workflow[b-thpg3a1deb] { width: min(860px, 100%); max-height: calc(100vh - 40px); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; background: #fff; border-radius: 8px; box-shadow: 0 24px 64px rgba(15, 23, 42, .24); color: #111827; }
.workflow-header[b-thpg3a1deb] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 22px 14px; border-bottom: 1px solid #e5e7eb; }
.workflow-header h2[b-thpg3a1deb] { margin: 0; font-size: 18px; line-height: 26px; letter-spacing: 0; }
.workflow-header p[b-thpg3a1deb], .section-heading p[b-thpg3a1deb] { margin: 3px 0 0; color: #64748b; font-size: 13px; }
.icon-button[b-thpg3a1deb] { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 32px; border: 0; border-radius: 6px; background: #f1f5f9; color: #475569; cursor: pointer; }
.workflow-steps[b-thpg3a1deb] { padding: 16px 24px; border-bottom: 1px solid #e5e7eb; }
.workflow-steps[b-thpg3a1deb]  .ant-steps-item-title { font-size: 13px; font-weight: 600; }
.workflow-steps[b-thpg3a1deb]  .ant-steps-item-description { max-width: 150px; font-size: 12px; }
.workflow-body[b-thpg3a1deb] { min-height: 0; overflow-y: auto; padding: 20px 22px 24px; }
.section-heading[b-thpg3a1deb] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.section-heading h3[b-thpg3a1deb] { margin: 0; font-size: 16px; letter-spacing: 0; }
.selection-count[b-thpg3a1deb] { flex: 0 0 auto; padding: 4px 8px; border-radius: 4px; background: #eff6ff; color: #1d4ed8; font-size: 12px; }
.node-capacity[b-thpg3a1deb] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.node-capacity div[b-thpg3a1deb] { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid #dbeafe; background: #f8fbff; border-radius: 6px; }
.node-capacity span[b-thpg3a1deb] { color: #64748b; font-size: 12px; }
.node-capacity strong[b-thpg3a1deb] { color: #1e3a8a; font-size: 13px; }
.resource-list[b-thpg3a1deb] { display: grid; gap: 8px; }
.resource-row[b-thpg3a1deb] { width: 100%; min-height: 72px; display: grid; grid-template-columns: 32px minmax(150px, 1fr) minmax(210px, 1.2fr) 110px; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid #dbe1ea; border-radius: 6px; background: #fff; color: inherit; text-align: left; cursor: pointer; }
.resource-row:hover[b-thpg3a1deb] { border-color: #93c5fd; background: #f8fbff; }
.resource-row.selected[b-thpg3a1deb] { border-color: #2563eb; box-shadow: inset 3px 0 #2563eb; background: #f8fbff; }
.resource-check[b-thpg3a1deb] { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 4px; background: #e2e8f0; color: #475569; }
.resource-row.selected .resource-check[b-thpg3a1deb] { background: #2563eb; color: #fff; }
.resource-main[b-thpg3a1deb], .resource-memory[b-thpg3a1deb] { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.resource-main strong[b-thpg3a1deb], .resource-memory strong[b-thpg3a1deb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.resource-main small[b-thpg3a1deb], .resource-memory small[b-thpg3a1deb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #64748b; font-size: 11px; }
.memory-bar[b-thpg3a1deb] { height: 6px; overflow: hidden; border-radius: 3px; background: #e2e8f0; }
.memory-bar i[b-thpg3a1deb] { display: block; height: 100%; border-radius: inherit; background: #22c55e; }
.mode-grid[b-thpg3a1deb] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mode-card[b-thpg3a1deb] { min-height: 92px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 20px; align-items: center; gap: 10px; padding: 14px; border: 1px solid #dbe1ea; border-radius: 6px; background: #fff; color: #334155; text-align: left; cursor: pointer; }
.mode-card > i:first-child[b-thpg3a1deb] { font-size: 22px; color: #64748b; }
.mode-card span[b-thpg3a1deb] { display: flex; flex-direction: column; gap: 4px; }
.mode-card strong[b-thpg3a1deb] { font-size: 14px; }
.mode-card small[b-thpg3a1deb] { color: #64748b; font-size: 12px; line-height: 18px; }
.mode-card .mode-check[b-thpg3a1deb] { visibility: hidden; color: #2563eb; }
.mode-card.selected[b-thpg3a1deb] { border-color: #2563eb; background: #eff6ff; }
.mode-card.selected > i:first-child[b-thpg3a1deb], .mode-card.selected .mode-check[b-thpg3a1deb] { color: #2563eb; visibility: visible; }
.mode-card.disabled[b-thpg3a1deb] { opacity: .5; cursor: not-allowed; }
.inline-warning[b-thpg3a1deb], .confirm-note[b-thpg3a1deb], .workflow-error[b-thpg3a1deb] { display: flex; align-items: flex-start; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: 6px; font-size: 12px; line-height: 18px; }
.inline-warning[b-thpg3a1deb] { border: 1px solid #fde68a; background: #fffbeb; color: #92400e; }
.spec-panel[b-thpg3a1deb] { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e5e7eb; }
.spec-row[b-thpg3a1deb] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.spec-row > label[b-thpg3a1deb], .field-grid label > span[b-thpg3a1deb], .advanced-fields label > span[b-thpg3a1deb] { color: #334155; font-size: 12px; font-weight: 600; }
.segmented-control[b-thpg3a1deb] { display: inline-grid; grid-template-columns: repeat(2, 1fr); padding: 2px; border-radius: 6px; background: #e2e8f0; }
.segmented-control button[b-thpg3a1deb] { min-width: 74px; height: 28px; border: 0; border-radius: 4px; background: transparent; color: #64748b; font-size: 12px; cursor: pointer; }
.segmented-control button.active[b-thpg3a1deb] { background: #fff; color: #1d4ed8; box-shadow: 0 1px 3px rgba(15, 23, 42, .12); }
.quick-specs[b-thpg3a1deb] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.quick-specs button[b-thpg3a1deb] { min-width: 58px; height: 32px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 5px; background: #fff; color: #334155; font-size: 12px; cursor: pointer; }
.quick-specs button.selected[b-thpg3a1deb] { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; }
.field-grid[b-thpg3a1deb] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.field-grid label[b-thpg3a1deb], .advanced-fields label[b-thpg3a1deb] { display: flex; flex-direction: column; gap: 6px; }
.field-grid input[b-thpg3a1deb], .advanced-fields input[b-thpg3a1deb] { width: 100%; height: 36px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 5px; outline: none; font-size: 13px; box-sizing: border-box; }
.field-grid input:focus[b-thpg3a1deb], .advanced-fields input:focus[b-thpg3a1deb], .owner-search input:focus[b-thpg3a1deb] { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, .12); }
.input-suffix[b-thpg3a1deb] { position: relative; }
.input-suffix input[b-thpg3a1deb] { padding-right: 42px; }
.input-suffix em[b-thpg3a1deb] { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: #64748b; font-size: 11px; font-style: normal; }
.advanced-fields[b-thpg3a1deb] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.allocation-preview[b-thpg3a1deb] { margin-top: 16px; border: 1px solid #dbe1ea; border-radius: 6px; overflow: hidden; }
.preview-heading[b-thpg3a1deb] { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; background: #f8fafc; border-bottom: 1px solid #e5e7eb; }
.preview-heading strong[b-thpg3a1deb] { font-size: 12px; }
.preview-heading span[b-thpg3a1deb] { color: #64748b; font-size: 11px; }
.preview-row[b-thpg3a1deb] { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(105px, auto) 18px minmax(85px, auto) minmax(100px, auto); align-items: center; gap: 8px; padding: 9px 12px; border-bottom: 1px solid #f1f5f9; font-size: 11px; }
.preview-row:last-child[b-thpg3a1deb] { border-bottom: 0; }
.preview-row > span:first-child[b-thpg3a1deb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #475569; }
.preview-row > span:last-child[b-thpg3a1deb] { color: #15803d; }
.preview-row i[b-thpg3a1deb] { color: #94a3b8; text-align: center; }
.scope-kind-radios[b-thpg3a1deb] { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 14px; }
.scope-kind-radios[b-thpg3a1deb]  .ant-radio-wrapper { align-items: flex-start; margin: 0; }
.scope-kind-label[b-thpg3a1deb] { display: grid; gap: 2px; }
.scope-kind-label strong[b-thpg3a1deb] { color: #334155; font-size: 13px; }
.scope-kind-label small[b-thpg3a1deb] { color: #64748b; font-size: 11px; }
.confirm-grid[b-thpg3a1deb] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #dbe1ea; border-radius: 6px; overflow: hidden; }
.confirm-grid > div[b-thpg3a1deb] { min-height: 82px; display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-right: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; }
.confirm-grid > div:nth-child(2n)[b-thpg3a1deb] { border-right: 0; }
.confirm-grid > div:nth-last-child(-n+2)[b-thpg3a1deb] { border-bottom: 0; }
.confirm-grid span[b-thpg3a1deb], .confirm-grid small[b-thpg3a1deb] { color: #64748b; font-size: 11px; }
.confirm-grid strong[b-thpg3a1deb] { font-size: 13px; }
.confirm-grid small[b-thpg3a1deb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.confirm-note[b-thpg3a1deb] { border: 1px solid #bfdbfe; background: #eff6ff; color: #1e40af; }
.workflow-error[b-thpg3a1deb] { border: 1px solid #fecaca; background: #fef2f2; color: #b91c1c; }
.empty-state[b-thpg3a1deb] { padding: 24px; color: #94a3b8; font-size: 12px; text-align: center; }
.workflow-footer[b-thpg3a1deb] { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; padding: 14px 22px; border-top: 1px solid #e5e7eb; background: #fff; }
.btn-primary[b-thpg3a1deb], .btn-secondary[b-thpg3a1deb] { min-height: 36px; padding: 0 14px; border-radius: 5px; font-size: 13px; cursor: pointer; }
.btn-primary[b-thpg3a1deb] { border: 1px solid #2563eb; background: #2563eb; color: #fff; }
.btn-primary:disabled[b-thpg3a1deb] { border-color: #cbd5e1; background: #cbd5e1; cursor: not-allowed; }
.btn-secondary[b-thpg3a1deb] { border: 1px solid #cbd5e1; background: #fff; color: #334155; }

@media (max-width: 700px) {
    .allocation-workflow-overlay[b-thpg3a1deb] { padding: 8px; }
    .allocation-workflow[b-thpg3a1deb] { max-height: calc(100vh - 16px); }
    .workflow-header[b-thpg3a1deb], .workflow-body[b-thpg3a1deb], .workflow-footer[b-thpg3a1deb] { padding-left: 14px; padding-right: 14px; }
    .workflow-steps[b-thpg3a1deb] { padding: 12px 8px; overflow-x: auto; }
    .workflow-steps[b-thpg3a1deb]  .ant-steps { min-width: 560px; }
    .resource-row[b-thpg3a1deb] { grid-template-columns: 28px minmax(0, 1fr); }
    .resource-memory[b-thpg3a1deb] { grid-column: 2; }
    .memory-bar[b-thpg3a1deb] { display: none; }
    .mode-grid[b-thpg3a1deb], .field-grid[b-thpg3a1deb], .advanced-fields[b-thpg3a1deb], .confirm-grid[b-thpg3a1deb], .node-capacity[b-thpg3a1deb] { grid-template-columns: 1fr; }
    .confirm-grid > div[b-thpg3a1deb] { border-right: 0; border-bottom: 1px solid #e5e7eb !important; }
    .confirm-grid > div:last-child[b-thpg3a1deb] { border-bottom: 0 !important; }
    .preview-row[b-thpg3a1deb] { grid-template-columns: minmax(80px, 1fr) auto; }
    .preview-row i[b-thpg3a1deb], .preview-row span:not(:first-child):not(:last-child)[b-thpg3a1deb] { display: none; }
}
/* /Components/Shared/GpuTopNodeTable.razor.rz.scp.css */
.gpu-top-table-wrap[b-5jnyju8ygv] {
    width: 100%;
    overflow-x: auto;
}

.gpu-top-table-wrap.compact[b-5jnyju8ygv] {
    min-height: 220px;
}

.gpu-top-table[b-5jnyju8ygv] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.compact .gpu-top-table[b-5jnyju8ygv] {
    min-width: 560px;
}

.detailed .gpu-top-table[b-5jnyju8ygv] {
    min-width: 560px;
}

.gpu-top-table th[b-5jnyju8ygv],
.gpu-top-table td[b-5jnyju8ygv] {
    padding: 9px 8px;
    border-bottom: 1px solid #f1f5f9;
    color: #475569;
    font-size: 12px;
    text-align: right;
    vertical-align: top;
}

.gpu-top-table th[b-5jnyju8ygv] {
    background: #f8fafc;
    color: #64748b;
    font-weight: 600;
    white-space: nowrap;
}

.gpu-top-table th:first-child[b-5jnyju8ygv],
.gpu-top-table td:first-child[b-5jnyju8ygv] {
    text-align: left;
}

.compact .gpu-top-table th:first-child[b-5jnyju8ygv],
.compact .gpu-top-table td:first-child[b-5jnyju8ygv] {
    width: 52%;
}

.detailed .gpu-top-table th:first-child[b-5jnyju8ygv],
.detailed .gpu-top-table td:first-child[b-5jnyju8ygv] {
    width: 34%;
}

.node-name[b-5jnyju8ygv],
.gpu-top-table strong[b-5jnyju8ygv],
.gpu-top-table small[b-5jnyju8ygv] {
    display: block;
}

.node-name[b-5jnyju8ygv] {
    overflow: hidden;
    color: #0f172a;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.gpu-top-table small[b-5jnyju8ygv] {
    margin-top: 2px;
    color: #94a3b8;
    font-size: 10px;
    line-height: 1.3;
}

.detailed .gpu-top-table small[b-5jnyju8ygv] {
    white-space: nowrap;
}

.allocation-rate[b-5jnyju8ygv] { color: #2563eb; }
.usage-rate[b-5jnyju8ygv] { color: #059669; }

.gpu-top-table .empty-cell[b-5jnyju8ygv] {
    height: 180px;
    color: #94a3b8;
    text-align: center;
    vertical-align: middle;
}
/* /Components/Shared/PushExampleTabs.razor.rz.scp.css */
.registry-command-tabs[b-4xtj8k7mcg] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    min-width: 0;
}

.registry-command-mode[b-4xtj8k7mcg] {
    align-self: flex-start;
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(92px, 1fr));
    padding: 3px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f1f5f9;
}

.registry-command-mode-button[b-4xtj8k7mcg] {
    min-height: 30px;
    padding: 4px 14px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
}

.registry-command-mode-button:hover[b-4xtj8k7mcg] {
    color: #1677ff;
}

.registry-command-mode-button.active[b-4xtj8k7mcg] {
    background: #fff;
    color: #1677ff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
}

.registry-command-mode-button:focus-visible[b-4xtj8k7mcg] {
    outline: 2px solid #91caff;
    outline-offset: 1px;
}

.registry-command-body[b-4xtj8k7mcg] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    min-width: 0;
}

.registry-command-section[b-4xtj8k7mcg] {
    min-width: 0;
}

.registry-command-heading[b-4xtj8k7mcg] {
    min-height: 28px;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #475569;
    font-size: 13px;
    font-weight: 600;
}

.registry-command-actions[b-4xtj8k7mcg] {
    display: flex;
    align-items: center;
    gap: 2px;
}

.registry-command-heading[b-4xtj8k7mcg]  .ant-btn {
    width: 28px;
    height: 28px;
    padding: 0;
    color: #64748b;
}

.registry-command-heading[b-4xtj8k7mcg]  .ant-btn:hover {
    color: #1677ff;
    background: #e6f4ff;
}

.registry-command-code[b-4xtj8k7mcg] {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 11px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
    color: #0f172a;
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: 12px;
    line-height: 1.65;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.registry-command-pre[b-4xtj8k7mcg] {
    margin: 0;
    white-space: pre-wrap;
}

.registry-command-alert[b-4xtj8k7mcg] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #fed7aa;
    border-radius: 6px;
    background: #fff7ed;
    color: #c2410c;
    font-size: 13px;
}

.registry-command-alert i[b-4xtj8k7mcg] {
    margin-top: 3px;
}

@media (max-width: 520px) {
    .registry-command-mode[b-4xtj8k7mcg] {
        align-self: stretch;
    }

    .registry-command-heading[b-4xtj8k7mcg] {
        align-items: flex-start;
    }
}
