/* /Components/AccountModelRestrictionEditor.razor.rz.scp.css */
.model-restriction-editor[b-0f2hl1jpuv] {
    display: grid;
    gap: 14px;
    width: 100%;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.model-restriction-heading strong[b-0f2hl1jpuv] {
    display: block;
    color: var(--text);
    font-size: 15px;
}

.model-restriction-heading small[b-0f2hl1jpuv],
.selected-count[b-0f2hl1jpuv] {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.model-mode-tabs[b-0f2hl1jpuv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.model-mode-tabs button[b-0f2hl1jpuv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    color: var(--muted);
    background: var(--surface-muted);
    border: 1px solid transparent;
    border-radius: 6px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.model-mode-tabs button.selected[b-0f2hl1jpuv] {
    color: var(--primary-strong);
    background: var(--primary-soft);
    border-color: color-mix(in srgb, var(--primary) 36%, transparent);
}

.model-mode-tabs button.mapping.selected[b-0f2hl1jpuv] {
    color: #8254b5;
    background: color-mix(in srgb, #8254b5 12%, var(--surface));
    border-color: color-mix(in srgb, #8254b5 36%, transparent);
}

.model-selector[b-0f2hl1jpuv] {
    padding: 10px;
    color: var(--text);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
    cursor: pointer;
}

.model-selector:focus-visible[b-0f2hl1jpuv] {
    border-color: var(--form-control-focus);
    outline: none;
    box-shadow: 0 0 0 3px var(--form-control-focus-ring);
}

.model-selector-empty[b-0f2hl1jpuv] {
    display: block;
    padding: 6px 2px 10px;
    color: var(--muted);
    font-size: 13px;
}

.selected-model-grid[b-0f2hl1jpuv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    /* 已选模型 chips 同口径限高（2026-10-18）：编辑态预填大白名单（百级模型）时
       曾经把整张表单撑到 4500px+，弹窗滚不停。与 .model-options-list 的 250px 同上限。 */
    max-height: 250px;
    overflow-y: auto;
}

.selected-model[b-0f2hl1jpuv] {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 6px 8px;
    color: var(--text);
    background: var(--surface-muted);
    border-radius: 5px;
    font-size: 13px;
}

.selected-model > span[b-0f2hl1jpuv] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selected-model button[b-0f2hl1jpuv],
.model-copy[b-0f2hl1jpuv],
.mapping-remove[b-0f2hl1jpuv] {
    display: inline-grid;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    place-items: center;
    padding: 0;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 5px;
    cursor: pointer;
}

.selected-model button:hover[b-0f2hl1jpuv],
.model-copy:hover[b-0f2hl1jpuv] { color: var(--primary); background: var(--surface-hover); }
.mapping-remove:hover[b-0f2hl1jpuv] { color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, transparent); }

.model-selector-footer[b-0f2hl1jpuv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 9px;
    padding-top: 8px;
    color: var(--muted);
    border-top: 1px solid var(--line);
    font-size: 12px;
}

.model-options[b-0f2hl1jpuv] {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--form-control-border);
    border-radius: 6px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
}

.model-search[b-0f2hl1jpuv] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
}

.model-search input[b-0f2hl1jpuv],
.custom-model input[b-0f2hl1jpuv],
.mapping-row input[b-0f2hl1jpuv] {
    width: 100%;
    min-width: 0;
    height: var(--form-control-height);
    padding: 0 11px;
    color: var(--form-control-color);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
    font: inherit;
}

.model-search input[b-0f2hl1jpuv] {
    height: 34px;
    padding: 0;
    background: transparent;
    border: 0;
}

.model-search input:focus[b-0f2hl1jpuv] { outline: none; }
.custom-model input:focus[b-0f2hl1jpuv],
.mapping-row input:focus[b-0f2hl1jpuv] { border-color: var(--form-control-focus); outline: none; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }

.model-options-list[b-0f2hl1jpuv] { max-height: 250px; overflow-y: auto; }
.model-option[b-0f2hl1jpuv] { display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.model-option:last-child[b-0f2hl1jpuv] { border-bottom: 0; }
.model-option:hover[b-0f2hl1jpuv] { background: var(--surface-hover); }

.model-option-select[b-0f2hl1jpuv] {
    display: flex;
    min-width: 0;
    flex: 1;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    color: var(--text);
    background: transparent;
    border: 0;
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}

.model-option-select > span:last-child[b-0f2hl1jpuv] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.model-checkbox[b-0f2hl1jpuv] { display: inline-grid; width: 17px; height: 17px; flex: 0 0 auto; place-items: center; border: 1px solid var(--form-control-border); border-radius: 4px; }
.model-checkbox.checked[b-0f2hl1jpuv] { color: #fff; background: var(--primary); border-color: var(--primary); }
.model-options-empty[b-0f2hl1jpuv] { padding: 18px; color: var(--muted); font-size: 13px; text-align: center; }

.model-actions[b-0f2hl1jpuv] { display: flex; flex-wrap: wrap; gap: 8px; }
.model-action[b-0f2hl1jpuv],
.custom-model button[b-0f2hl1jpuv],
.add-mapping[b-0f2hl1jpuv],
.mapping-presets button[b-0f2hl1jpuv],
.mapping-footer button[b-0f2hl1jpuv] {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 11px;
    color: var(--primary-strong);
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--primary) 42%, var(--form-control-border));
    border-radius: 6px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.model-action:hover[b-0f2hl1jpuv],
.custom-model button:hover[b-0f2hl1jpuv],
.add-mapping:hover[b-0f2hl1jpuv] { background: var(--primary-soft); }
.model-action.clear[b-0f2hl1jpuv],
.mapping-footer button[b-0f2hl1jpuv] { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, var(--form-control-border)); }
.model-action.clear:hover[b-0f2hl1jpuv],
.mapping-footer button:hover[b-0f2hl1jpuv] { background: color-mix(in srgb, var(--danger) 10%, transparent); }
.model-action:disabled[b-0f2hl1jpuv],
.custom-model button:disabled[b-0f2hl1jpuv],
.mapping-footer button:disabled[b-0f2hl1jpuv] { opacity: .5; cursor: not-allowed; }

.custom-model label[b-0f2hl1jpuv] { display: block; margin-bottom: 6px; color: var(--text); font-size: 13px; font-weight: 600; }
.custom-model > div[b-0f2hl1jpuv] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.custom-model button[b-0f2hl1jpuv] { min-width: 70px; color: var(--primary-strong); background: var(--primary-soft); }

.mapping-help[b-0f2hl1jpuv] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    color: #8254b5;
    background: color-mix(in srgb, #8254b5 10%, var(--surface));
    border-radius: 6px;
    font-size: 13px;
}

.mapping-list[b-0f2hl1jpuv] { display: grid; gap: 8px; }
.mapping-row[b-0f2hl1jpuv] { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 32px; align-items: center; gap: 8px; }
.add-mapping[b-0f2hl1jpuv] { width: 100%; border-style: dashed; }
.mapping-presets[b-0f2hl1jpuv] { display: flex; flex-wrap: wrap; gap: 7px; }
.mapping-presets button[b-0f2hl1jpuv] { min-height: 30px; padding: 0 9px; color: #8254b5; border-color: color-mix(in srgb, #8254b5 32%, var(--form-control-border)); font-size: 12px; }
.mapping-presets button:hover[b-0f2hl1jpuv] { background: color-mix(in srgb, #8254b5 10%, var(--surface)); }
.mapping-footer[b-0f2hl1jpuv] { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; }

@media (max-width: 640px) {
    .selected-model-grid[b-0f2hl1jpuv] { grid-template-columns: 1fr; }
    .model-mode-tabs[b-0f2hl1jpuv] { gap: 6px; }
    .model-mode-tabs button[b-0f2hl1jpuv] { padding: 0 8px; font-size: 13px; }
    .model-actions[b-0f2hl1jpuv] { display: grid; grid-template-columns: 1fr; }
    .model-action[b-0f2hl1jpuv] { width: 100%; }
    .custom-model > div[b-0f2hl1jpuv] { grid-template-columns: 1fr; }
    .custom-model button[b-0f2hl1jpuv] { width: 100%; }
    .mapping-row[b-0f2hl1jpuv] { grid-template-columns: minmax(0, 1fr) 32px; }
    .mapping-row > svg[b-0f2hl1jpuv] { display: none; }
    .mapping-row input:nth-of-type(2)[b-0f2hl1jpuv] { grid-column: 1; }
    .mapping-remove[b-0f2hl1jpuv] { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
    .mapping-footer[b-0f2hl1jpuv] { align-items: stretch; flex-direction: column; }
    .mapping-footer button[b-0f2hl1jpuv] { width: 100%; }
}
/* /Components/AccountQuotaUsageCell.razor.rz.scp.css */
.account-quota-cell[b-vrra2hhucf] { display: grid; min-width: 235px; gap: 3px; color: var(--ink); }
.quota-window[b-vrra2hhucf] { display: grid; grid-template-columns: 38px 72px 38px minmax(54px, 1fr); align-items: center; gap: 4px; }
.quota-window small[b-vrra2hhucf] { overflow: hidden; color: var(--muted); font-size: .68rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.quota-window .quota-label[b-vrra2hhucf] { display: inline-flex; width: fit-content; padding: 2px 5px; border-radius: 5px; color: #7c83ee; background: color-mix(in srgb, #6366f1 18%, transparent); font-weight: 700; }
.quota-window .quota-label.emerald[b-vrra2hhucf] { color: #69d5a6; background: color-mix(in srgb, #10b981 18%, transparent); }
.quota-window .quota-label.purple[b-vrra2hhucf] { color: #c083f5; background: color-mix(in srgb, #a855f7 18%, transparent); }
.quota-window .quota-label.amber[b-vrra2hhucf] { color: #d99a45; background: color-mix(in srgb, #c47e1b 18%, transparent); }
.quota-window b[b-vrra2hhucf] { color: var(--muted); text-align: right; font-size: .68rem; font-weight: 620; font-variant-numeric: tabular-nums; line-height: 1.15; }
.quota-window i[b-vrra2hhucf] { display: block; height: 6px; overflow: hidden; background: color-mix(in srgb, var(--muted) 34%, transparent); border-radius: 4px; }
.quota-window em[b-vrra2hhucf] { display: block; height: 100%; background: var(--primary); border-radius: inherit; }
.quota-window em.indigo[b-vrra2hhucf] { background: #6366f1; }
.quota-window em.emerald[b-vrra2hhucf] { background: #10b981; }
.quota-window em.purple[b-vrra2hhucf] { background: #a855f7; }
.quota-window em.amber[b-vrra2hhucf], .quota-window em.warning[b-vrra2hhucf] { background: #c47e1b; }
.quota-window em.danger[b-vrra2hhucf] { background: var(--danger); }
.quota-window.legacy[b-vrra2hhucf] { grid-template-columns: 42px 80px 70px minmax(0, 1fr); }
.quota-stats[b-vrra2hhucf] { display: flex; flex-wrap: wrap; gap: 3px; padding-left: 42px; }
.quota-stats span[b-vrra2hhucf] { padding: 2px 5px; color: var(--muted); background: color-mix(in srgb, var(--muted) 14%, transparent); border-radius: 5px; font-size: .64rem; font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; }
.account-today-stats[b-vrra2hhucf] { padding-left: 0; }
.today-stats-loading[b-vrra2hhucf] { display: flex; align-items: center; gap: 4px; }
.today-stats-loading span[b-vrra2hhucf] { width: 48px; height: 20px; border-radius: 5px; background: color-mix(in srgb, var(--muted) 18%, transparent); animation: quota-pulse-b-vrra2hhucf 1.4s ease-in-out infinite; }
.today-stats-loading span:nth-child(2)[b-vrra2hhucf] { width: 40px; }
.today-stats-loading span:nth-child(3)[b-vrra2hhucf] { width: 58px; }
.quota-actions[b-vrra2hhucf] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding-top: 0; }
.quota-actions button[b-vrra2hhucf] { display: inline-flex; min-height: 21px; padding: 1px 3px; align-items: center; gap: 3px; color: #669cff; background: transparent; border: 0; border-radius: 4px; font-size: .66rem; font-weight: 650; line-height: 1.15; }
.quota-actions button:hover:not(:disabled)[b-vrra2hhucf] { background: color-mix(in srgb, #669cff 14%, transparent); }
.quota-actions button.reset-action[b-vrra2hhucf] { color: #b97728; }
.quota-actions button:disabled[b-vrra2hhucf] { cursor: not-allowed; opacity: .48; }
.quota-query[b-vrra2hhucf] { display: inline-flex; width: fit-content; min-height: 28px; padding: 4px 8px; align-items: center; gap: 4px; color: var(--primary); background: transparent; border: 1px solid color-mix(in srgb, var(--primary) 35%, var(--line)); border-radius: 6px; font-size: .75rem; font-weight: 650; }
.quota-query:hover[b-vrra2hhucf] { background: var(--primary-soft); }
.quota-query:disabled[b-vrra2hhucf] { opacity: .55; }
.quota-loading[b-vrra2hhucf] { display: grid; width: 210px; gap: 7px; }
.quota-loading span[b-vrra2hhucf] { display: block; width: 100%; height: 12px; border-radius: 4px; background: color-mix(in srgb, var(--muted) 18%, transparent); animation: quota-pulse-b-vrra2hhucf 1.4s ease-in-out infinite; }
.balance-values[b-vrra2hhucf] { color: var(--ink); font-size: .76rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.quota-unavailable[b-vrra2hhucf] { color: var(--muted); font-size: .76rem; }
.quota-error[b-vrra2hhucf], .quota-feedback[b-vrra2hhucf] { display: block; overflow: hidden; max-width: 250px; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.quota-error[b-vrra2hhucf] { color: var(--danger); }
.quota-feedback[b-vrra2hhucf] { color: #2c9a71; }
@keyframes quota-pulse-b-vrra2hhucf { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .quota-loading span[b-vrra2hhucf], .today-stats-loading span[b-vrra2hhucf] { animation: none; } }
/* /Components/AccountStatsDistributionPanel.razor.rz.scp.css */
.stats-distribution-panel[b-mk90ssj1hh] {
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.stats-distribution-heading[b-mk90ssj1hh] {
    display: flex;
    margin-bottom: 12px;
    align-items: center;
    justify-content: space-between;
}

.stats-distribution-heading h3[b-mk90ssj1hh],
.stats-distribution-heading p[b-mk90ssj1hh] {
    margin: 0;
}

.stats-distribution-heading h3[b-mk90ssj1hh] {
    color: var(--ink);
    font-size: .9rem;
    font-weight: 700;
}

.stats-distribution-heading p[b-mk90ssj1hh] {
    margin-top: 3px;
    color: var(--muted);
    font-size: .76rem;
}

.stats-distribution-layout[b-mk90ssj1hh] {
    display: grid;
    grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
    align-items: center;
    gap: 18px;
}

.stats-distribution-chart[b-mk90ssj1hh] {
    min-width: 0;
}

.stats-distribution-table-wrap[b-mk90ssj1hh] {
    max-height: 220px;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.stats-distribution-table[b-mk90ssj1hh] {
    width: 100%;
    border-collapse: collapse;
    color: var(--ink);
    font-size: .78rem;
}

.stats-distribution-table th[b-mk90ssj1hh],
.stats-distribution-table td[b-mk90ssj1hh] {
    min-width: 82px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--line);
    text-align: right;
    white-space: nowrap;
}

.stats-distribution-table th[b-mk90ssj1hh] {
    position: sticky;
    z-index: 1;
    top: 0;
    color: var(--muted);
    background: var(--surface-muted);
    font-weight: 700;
}

.stats-distribution-table th:first-child[b-mk90ssj1hh],
.stats-distribution-table td:first-child[b-mk90ssj1hh] {
    min-width: 150px;
    max-width: 240px;
    text-align: left;
}

.stats-distribution-table td:first-child[b-mk90ssj1hh] {
    overflow: hidden;
    font-weight: 650;
    text-overflow: ellipsis;
}

.stats-distribution-table tbody tr:last-child td[b-mk90ssj1hh] {
    border-bottom: 0;
}

.distribution-actual[b-mk90ssj1hh] { color: #25805d; }
.distribution-account[b-mk90ssj1hh] { color: #b66a1f; }
.distribution-standard[b-mk90ssj1hh] { color: var(--muted); }

.stats-distribution-empty[b-mk90ssj1hh] {
    display: grid;
    min-height: 150px;
    place-items: center;
    color: var(--muted);
    font-size: .82rem;
}

@media (max-width: 760px) {
    .stats-distribution-layout[b-mk90ssj1hh] {
        grid-template-columns: 1fr;
    }

    .stats-distribution-chart[b-mk90ssj1hh] {
        max-width: 260px;
        margin: 0 auto;
    }
}
/* /Components/AccountStatsModal.razor.rz.scp.css */
.account-stats-modal[b-73idkqpkuh] {
    display: grid;
    gap: 16px;
    color: var(--ink);
}

.account-stats-identity[b-73idkqpkuh] {
    display: flex;
    min-height: 64px;
    padding: 10px 12px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: var(--primary-soft);
    border: 1px solid rgba(47, 125, 93, .28);
    border-radius: 7px;
}

.account-stats-identity-main[b-73idkqpkuh] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 11px;
}

.account-stats-identity-main > div[b-73idkqpkuh] {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.account-stats-identity-main strong[b-73idkqpkuh] {
    overflow: hidden;
    font-size: .92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-stats-identity-main span:not(.account-stats-identity-icon)[b-73idkqpkuh] {
    color: var(--muted);
    font-size: .76rem;
}

.account-stats-identity-icon[b-73idkqpkuh] {
    display: inline-flex;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--primary);
    border-radius: 7px;
}

.account-stats-status[b-73idkqpkuh] {
    display: inline-flex;
    padding: 5px 9px;
    color: var(--muted);
    background: var(--surface-muted);
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 700;
}

.account-stats-status.active[b-73idkqpkuh] {
    color: #247052;
    background: rgba(47, 125, 93, .14);
}

.account-stats-primary-grid[b-73idkqpkuh] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.stats-primary-card[b-73idkqpkuh] {
    display: grid;
    min-height: 132px;
    padding: 14px;
    align-content: start;
    gap: 8px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-left-width: 3px;
    border-radius: 7px;
}

.stats-primary-card.cost[b-73idkqpkuh] { border-left-color: #2f8c67; }
.stats-primary-card.requests[b-73idkqpkuh] { border-left-color: #347eb8; }
.stats-primary-card.average-cost[b-73idkqpkuh] { border-left-color: #c48529; }
.stats-primary-card.average-requests[b-73idkqpkuh] { border-left-color: #7669b5; }

.stats-primary-card header[b-73idkqpkuh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--muted);
    font-size: .77rem;
    font-weight: 650;
}

.stats-primary-card header i[b-73idkqpkuh],
.stats-detail-card header i[b-73idkqpkuh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-muted);
    border-radius: 6px;
    font-style: normal;
}

.stats-primary-card header i[b-73idkqpkuh] {
    width: 30px;
    height: 30px;
}

.stats-primary-card.cost header i[b-73idkqpkuh] { color: #2f8c67; }
.stats-primary-card.requests header i[b-73idkqpkuh] { color: #347eb8; }
.stats-primary-card.average-cost header i[b-73idkqpkuh] { color: #c48529; }
.stats-primary-card.average-requests header i[b-73idkqpkuh] { color: #7669b5; }

.stats-primary-card > strong[b-73idkqpkuh] {
    font-size: 1.35rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}

.stats-primary-card > small[b-73idkqpkuh] {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}

.account-stats-detail-grid[b-73idkqpkuh] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.stats-detail-card[b-73idkqpkuh] {
    min-width: 0;
    padding: 14px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.stats-detail-card > header[b-73idkqpkuh] {
    display: flex;
    margin-bottom: 11px;
    align-items: center;
    gap: 8px;
}

.stats-detail-card header i[b-73idkqpkuh] {
    width: 28px;
    height: 28px;
}

.stats-detail-card header i.cyan[b-73idkqpkuh] { color: #278195; }
.stats-detail-card header i.orange[b-73idkqpkuh] { color: #bc6b24; }
.stats-detail-card header i.indigo[b-73idkqpkuh] { color: #625bb0; }
.stats-detail-card header i.teal[b-73idkqpkuh] { color: #288a7d; }
.stats-detail-card header i.rose[b-73idkqpkuh] { color: #b55268; }
.stats-detail-card header i.lime[b-73idkqpkuh] { color: #657f2d; }

.stats-detail-card h3[b-73idkqpkuh] {
    margin: 0;
    font-size: .84rem;
    font-weight: 700;
}

.stats-detail-card dl[b-73idkqpkuh] {
    display: grid;
    margin: 0;
    gap: 7px;
}

.stats-detail-card dl > div[b-73idkqpkuh] {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.stats-detail-card dt[b-73idkqpkuh],
.stats-detail-card dd[b-73idkqpkuh] {
    margin: 0;
    font-size: .77rem;
}

.stats-detail-card dt[b-73idkqpkuh] { color: var(--muted); }
.stats-detail-card dd[b-73idkqpkuh] { overflow: hidden; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.stats-detail-card dd.accent-orange[b-73idkqpkuh] { color: #bc6b24; }
.stats-detail-card dd.accent-indigo[b-73idkqpkuh] { color: #625bb0; }

.account-stats-trend-panel[b-73idkqpkuh] {
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.account-stats-trend-panel > header[b-73idkqpkuh] {
    display: flex;
    margin-bottom: 10px;
    align-items: baseline;
    gap: 9px;
}

.account-stats-trend-panel h3[b-73idkqpkuh],
.account-stats-trend-panel span[b-73idkqpkuh] {
    margin: 0;
}

.account-stats-trend-panel h3[b-73idkqpkuh] { font-size: .9rem; font-weight: 700; }
.account-stats-trend-panel span[b-73idkqpkuh] { color: var(--muted); font-size: .74rem; }

.account-stats-chart-layout[b-73idkqpkuh] {
    display: grid;
    min-width: 0;
}

.account-stats-chart-legend[b-73idkqpkuh] {
    display: flex;
    min-width: 0;
    min-height: 34px;
    padding: 0 10px 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 18px;
}

.account-stats-chart-legend span[b-73idkqpkuh] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.account-stats-chart-legend i[b-73idkqpkuh] {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 2px;
}

.account-stats-chart-legend .account-cost[b-73idkqpkuh] { background: #ff6d00; }
.account-stats-chart-legend .user-cost[b-73idkqpkuh] { background: #16883d; }
.account-stats-chart-legend .request-count[b-73idkqpkuh] { background: #e4112f; }

.account-stats-chart-empty[b-73idkqpkuh],
.account-stats-no-data[b-73idkqpkuh] {
    display: grid;
    min-height: 190px;
    place-items: center;
    align-content: center;
    gap: 8px;
    color: var(--muted);
    font-size: .82rem;
}

.account-stats-error[b-73idkqpkuh] {
    display: grid;
    min-height: 150px;
    padding: 18px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    color: var(--danger);
    background: rgba(197, 62, 62, .08);
    border: 1px solid rgba(197, 62, 62, .22);
    border-radius: 7px;
}

.account-stats-error > div[b-73idkqpkuh] { display: grid; gap: 3px; }
.account-stats-error strong[b-73idkqpkuh] { font-size: .86rem; }
.account-stats-error span[b-73idkqpkuh] { color: var(--muted); font-size: .78rem; }

@media (max-width: 960px) {
    .account-stats-primary-grid[b-73idkqpkuh] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .account-stats-detail-grid[b-73idkqpkuh] { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .account-stats-primary-grid[b-73idkqpkuh] { grid-template-columns: 1fr; }
    .account-stats-identity[b-73idkqpkuh] { align-items: flex-start; }
    .account-stats-status[b-73idkqpkuh] { flex: 0 0 auto; }
    .account-stats-error[b-73idkqpkuh] { grid-template-columns: auto minmax(0, 1fr); }
    .account-stats-error .button[b-73idkqpkuh] { grid-column: 1 / -1; }
    .account-stats-trend-panel > header[b-73idkqpkuh] { align-items: flex-start; flex-direction: column; }
    .account-stats-chart-legend[b-73idkqpkuh] { padding-inline: 0; justify-content: flex-start; gap: 6px 12px; }
}
/* /Components/AccountUsageRuntimeSettings.razor.rz.scp.css */
.usage-runtime-settings[b-knzvk363nh] { display:grid; gap:16px; }
.usage-runtime-settings > section[b-knzvk363nh] { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.usage-runtime-settings > section > header[b-knzvk363nh] { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid var(--line); }
.usage-runtime-settings h2[b-knzvk363nh] { margin:0; color:var(--text); font-size:.98rem; }
.usage-runtime-settings header p[b-knzvk363nh] { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.runtime-grid[b-knzvk363nh] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px 18px; padding:20px; }
.runtime-alert[b-knzvk363nh] { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid rgba(190,62,62,.25); border-radius:6px; color:var(--danger); background:rgba(190,62,62,.06); font-size:.76rem; }
@media (max-width:760px) { .usage-runtime-settings > section > header[b-knzvk363nh] { flex-direction:column; } .usage-runtime-settings > section > header .button[b-knzvk363nh] { width:100%; } .runtime-grid[b-knzvk363nh] { grid-template-columns:1fr; } }
/* /Components/AdminDashboardPanel.razor.rz.scp.css */
.admin-dashboard[b-caeiulyu9k] {
    display: grid;
    gap: 16px;
}

.dashboard-alert[b-caeiulyu9k] {
    margin: 0;
}

.admin-metrics-grid[b-caeiulyu9k] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.admin-metric-card[b-caeiulyu9k] {
    display: flex;
    min-width: 0;
    min-height: 96px;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.admin-metric-icon[b-caeiulyu9k] {
    display: grid;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 8px;
}

.admin-metric-icon.blue[b-caeiulyu9k] { color: #2563eb; background: #dbeafe; }
.admin-metric-icon.green[b-caeiulyu9k] { color: #059669; background: #d1fae5; }
.admin-metric-icon.indigo[b-caeiulyu9k] { color: #4f46e5; background: #e0e7ff; }
.admin-metric-icon.amber[b-caeiulyu9k] { color: #d97706; background: #fef3c7; }
.admin-metric-icon.cyan[b-caeiulyu9k] { color: #0891b2; background: #cffafe; }
.admin-metric-icon.orange[b-caeiulyu9k] { color: #ea580c; background: #ffedd5; }
.admin-metric-icon.violet[b-caeiulyu9k] { color: #7c3aed; background: #ede9fe; }
.admin-metric-icon.rose[b-caeiulyu9k] { color: #e11d48; background: #ffe4e6; }

.admin-metric-content[b-caeiulyu9k] {
    display: grid;
    min-width: 0;
    align-content: center;
}

.admin-metric-content > span[b-caeiulyu9k] {
    overflow: hidden;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-metric-content strong[b-caeiulyu9k] {
    overflow: hidden;
    margin-top: 1px;
    color: var(--ink);
    font-size: 1.2rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-metric-content strong em[b-caeiulyu9k] {
    color: var(--muted);
    font-size: .65rem;
    font-style: normal;
    font-weight: 500;
}

.admin-metric-content small[b-caeiulyu9k] {
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-metric-content small b[b-caeiulyu9k] {
    font-weight: 650;
}

.cost-line[b-caeiulyu9k] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.cost-line i[b-caeiulyu9k] {
    color: #a3aca8;
    font-style: normal;
}

.cost-line b:last-child[b-caeiulyu9k] {
    color: #8b9691;
}

.success-text[b-caeiulyu9k] { color: #059669 !important; }
.danger-text[b-caeiulyu9k] { color: #dc2626 !important; }
.account-cost[b-caeiulyu9k] { color: #f97316 !important; }
.violet-text[b-caeiulyu9k] { color: #7c3aed !important; }

.dashboard-card[b-caeiulyu9k] {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.dashboard-card-heading[b-caeiulyu9k] {
    display: flex;
    min-height: 50px;
    padding: 14px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dashboard-card-heading h2[b-caeiulyu9k] {
    margin: 0;
    color: var(--ink);
    font-size: .86rem;
    font-weight: 700;
}

.dashboard-filter-card[b-caeiulyu9k] {
    display: flex;
    min-height: 64px;
    padding: 12px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    /* 豁免 .dashboard-card 的 overflow:hidden：筛选行的 QuickDateRange 下拉菜单
       绝对定位于卡内，被裁剪时只剩几像素白边（2026-10-19 运营看板样式修复）。 */
    overflow: visible;
}

.dashboard-filter-group[b-caeiulyu9k] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
}

.primary-filter[b-caeiulyu9k] {
    flex: 1 1 auto;
    flex-wrap: wrap;
}

.dashboard-filter-group > .button[b-caeiulyu9k] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.filter-label[b-caeiulyu9k] {
    color: #4c5853;
    font-size: .78rem;
    font-weight: 650;
    white-space: nowrap;
}

/* 快捷时间范围 chips 与双日期时间输入已随统一日期组件 QuickDateRange 接入退役（产品升级 2026-10）。 */

.dashboard-chart-grid[b-caeiulyu9k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.dashboard-chart-card[b-caeiulyu9k] {
    min-height: 322px;
}

.model-distribution-card[b-caeiulyu9k] {
    overflow: visible;
}

.chart-heading[b-caeiulyu9k] {
    flex-wrap: wrap;
}

.distribution-layout[b-caeiulyu9k] {
    display: flex;
    min-width: 0;
    min-height: 240px;
    padding: 0 14px 14px;
    align-items: center;
    gap: 16px;
}

.distribution-chart[b-caeiulyu9k] {
    flex: 0 0 210px;
    width: 210px;
}

.model-distribution-layout[b-caeiulyu9k] {
    align-items: stretch;
    flex-direction: column;
}

.model-distribution-layout .model-distribution-chart[b-caeiulyu9k] {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex: 0 0 auto;
}

.model-distribution-chart[b-caeiulyu9k]  .dxc-arg-elements text,
.model-distribution-chart[b-caeiulyu9k]  .dxc-val-elements text {
    fill: var(--muted) !important;
}

.model-distribution-chart[b-caeiulyu9k]  .dxbl-chart-tooltip-content-container,
.model-distribution-chart[b-caeiulyu9k]  .dxbl-chart-tooltip-pointer {
    color: var(--ink);
    background: var(--surface);
    border-color: var(--line);
}

.compact-table-wrap[b-caeiulyu9k] {
    min-width: 0;
    max-height: 218px;
    flex: 1;
    overflow: auto;
}

.model-distribution-table-wrap[b-caeiulyu9k] {
    width: 100%;
    max-height: 230px;
}

.compact-dashboard-table[b-caeiulyu9k] {
    width: 100%;
    border-collapse: collapse;
    font-size: .66rem;
    font-variant-numeric: tabular-nums;
}

/* 行展开（2026-10-20 整合）：产品分布「按天明细」/ 上游厂商成本「模型序列毛利明细」。 */
.model-name-cell .detail-toggle[b-caeiulyu9k] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-right: 4px;
    padding: 0;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 4px;
    cursor: pointer;
    transition: transform .15s ease, background-color .15s ease;
}

.model-name-cell .detail-toggle:hover[b-caeiulyu9k] {
    color: var(--primary);
    background: var(--surface-hover);
}

tr.expanded .detail-toggle[b-caeiulyu9k] {
    color: var(--primary);
    transform: rotate(180deg);
}

.detail-row > td[b-caeiulyu9k] {
    padding: 0 14px 10px 30px;
    background: color-mix(in srgb, var(--surface-muted) 45%, var(--surface));
}

.detail-block h4[b-caeiulyu9k] {
    margin: 8px 0 6px;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
}

.nested-table th[b-caeiulyu9k],
.nested-table td[b-caeiulyu9k] {
    height: 30px;
    background: var(--surface);
}

.model-distribution-table[b-caeiulyu9k] {
    min-width: 680px;
}

.model-distribution-table th:first-child[b-caeiulyu9k],
.model-distribution-table td:first-child[b-caeiulyu9k] {
    min-width: 180px;
    max-width: 260px;
}

.model-distribution-table th:nth-child(4)[b-caeiulyu9k],
.model-distribution-table td:nth-child(4)[b-caeiulyu9k] {
    width: 64px;
}

.compact-dashboard-table th[b-caeiulyu9k],
.compact-dashboard-table td[b-caeiulyu9k] {
    max-width: 120px;
    padding: 6px 7px;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-bottom: 1px solid #edf1ef;
}

.compact-dashboard-table th:first-child[b-caeiulyu9k],
.compact-dashboard-table td:first-child[b-caeiulyu9k] {
    text-align: left;
}

.compact-dashboard-table th[b-caeiulyu9k] {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--muted);
    background: var(--surface);
    font-weight: 650;
}

.compact-dashboard-table td:first-child[b-caeiulyu9k] {
    color: var(--ink);
    font-weight: 600;
}

.model-name-cell[b-caeiulyu9k] {
    display: flex;
    min-width: 0;
    align-items: center;
}

.model-name-text[b-caeiulyu9k] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.model-share[b-caeiulyu9k] {
    color: var(--muted);
    font-weight: 700;
}

.model-distribution-tooltip[b-caeiulyu9k] {
    display: grid;
    min-width: 190px;
    max-width: 280px;
    gap: 8px;
    padding: 10px 12px;
    color: var(--ink);
    text-align: left;
}

.model-distribution-tooltip > strong[b-caeiulyu9k] {
    overflow-wrap: anywhere;
    font-size: .78rem;
    line-height: 1.35;
}

.model-distribution-tooltip dl[b-caeiulyu9k] {
    display: grid;
    gap: 4px;
    margin: 0;
}

.model-distribution-tooltip dl > div[b-caeiulyu9k] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
}

.model-distribution-tooltip dt[b-caeiulyu9k],
.model-distribution-tooltip dd[b-caeiulyu9k] {
    margin: 0;
    font-size: .72rem;
}

.model-distribution-tooltip dt[b-caeiulyu9k] {
    color: var(--muted);
}

.model-distribution-tooltip dd[b-caeiulyu9k] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.ranking-index[b-caeiulyu9k] {
    display: inline-block;
    min-width: 22px;
    color: var(--muted);
    font-weight: 700;
}

.clickable-row[b-caeiulyu9k] { cursor: pointer; }
.clickable-row:hover[b-caeiulyu9k] { background: #f5f8f6; }
.other-row[b-caeiulyu9k] { background: #f7f9f8; }

.model-expand-indicator[b-caeiulyu9k] {
    display: inline-block;
    width: 14px;
    color: #2563eb;
    font-size: .85rem;
    font-weight: 800;
}

.model-breakdown-row > td[b-caeiulyu9k] {
    padding: 0;
    background: var(--surface-soft);
}

.model-breakdown-state[b-caeiulyu9k] {
    padding: 10px 12px;
    color: var(--muted);
    text-align: center;
}

.model-breakdown-table[b-caeiulyu9k] {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    color: var(--muted);
}

.model-breakdown-table td[b-caeiulyu9k] {
    padding: 5px 7px;
    color: var(--muted);
    font-weight: 400;
    border-bottom-color: color-mix(in srgb, var(--line) 60%, transparent);
}

.model-breakdown-table td:first-child[b-caeiulyu9k] {
    padding-left: 26px;
    color: var(--muted);
    font-weight: 500;
}

.dashboard-empty[b-caeiulyu9k] {
    display: grid;
    min-height: 235px;
    place-items: center;
    color: var(--muted);
    font-size: .78rem;
}

.dashboard-user-trend[b-caeiulyu9k] {
    min-height: 340px;
    padding-bottom: 12px;
}


/* Match the readable typography hierarchy used by user management. */
.admin-dashboard[b-caeiulyu9k] { font-size: 1rem; }
.admin-metric-content > span[b-caeiulyu9k] { font-size: .86rem; }
.admin-metric-content strong em[b-caeiulyu9k],
.admin-metric-content small[b-caeiulyu9k] { font-size: .8rem; }
.dashboard-card-heading h2[b-caeiulyu9k] { font-size: 1rem; }
.dashboard-card-heading > span[b-caeiulyu9k] { font-size: .8rem; }
.filter-label[b-caeiulyu9k],
.compact-dashboard-table[b-caeiulyu9k] { font-size: .83rem; }
.compact-dashboard-table th[b-caeiulyu9k] { font-size: .76rem; }
.model-breakdown-state[b-caeiulyu9k],
.model-breakdown-table[b-caeiulyu9k] { font-size: .83rem; }
.dashboard-empty[b-caeiulyu9k] { font-size: .88rem; }
:deep(.dxbl-chart)[b-caeiulyu9k] { font-size: .8rem; }

@media (max-width: 1280px) {
    .admin-metrics-grid[b-caeiulyu9k] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .distribution-layout[b-caeiulyu9k] {
        align-items: stretch;
        flex-direction: column;
    }

    .distribution-chart[b-caeiulyu9k] {
        align-self: center;
    }

    .model-distribution-chart[b-caeiulyu9k] {
        width: 100%;
        max-width: 440px;
        min-width: 0;
        flex-basis: auto;
    }
}

@media (max-width: 980px) {
    .dashboard-chart-grid[b-caeiulyu9k] {
        grid-template-columns: 1fr;
    }

    .distribution-layout[b-caeiulyu9k] {
        align-items: center;
        flex-direction: row;
    }

    .model-distribution-layout[b-caeiulyu9k] {
        align-items: stretch;
        flex-direction: column;
    }

    .model-distribution-chart[b-caeiulyu9k] {
        flex: 0 1 400px;
    }
}

@media (max-width: 760px) {
    .admin-metrics-grid[b-caeiulyu9k] {
        grid-template-columns: 1fr;
    }

    .dashboard-filter-card[b-caeiulyu9k],
    .dashboard-filter-group[b-caeiulyu9k] {
        align-items: stretch;
        flex-direction: column;
    }

    .dashboard-filter-card[b-caeiulyu9k] {
        justify-content: flex-start;
    }

    .distribution-layout[b-caeiulyu9k] {
        align-items: stretch;
        flex-direction: column;
    }

    .model-distribution-chart[b-caeiulyu9k] {
        width: 100%;
        max-width: none;
        flex-basis: auto;
    }

    .compact-table-wrap[b-caeiulyu9k] {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .admin-metric-card[b-caeiulyu9k] {
        min-height: 88px;
    }

    .distribution-chart[b-caeiulyu9k] {
        width: 100%;
        flex-basis: auto;
    }
}
/* /Components/AdminSettingsNavigation.razor.rz.scp.css */
.settings-tabs[b-hdr6f2k2ij] {
    display: flex;
    overflow-x: auto;
    padding: 4px;
    gap: 3px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    scrollbar-width: thin;
}

.settings-tabs button[b-hdr6f2k2ij] {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 15px;
    border: 0;
    border-radius: 6px;
    color: var(--muted);
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
}

.settings-tabs button:hover[b-hdr6f2k2ij] {
    color: var(--text);
    background: var(--surface-hover);
}

.settings-tabs button.active[b-hdr6f2k2ij] {
    color: #fff;
    background: var(--primary);
    box-shadow: 0 1px 3px rgba(21, 91, 68, .22);
}
/* /Components/AdminUsageErrorTab.razor.rz.scp.css */
.admin-error-toolbar[b-k2nc0nu3k9] {
    min-width: 0;
    margin-bottom: 16px;
    padding: 18px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}

.admin-error-filters[b-k2nc0nu3k9] {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(240px, 2fr) repeat(2, minmax(150px, 1fr));
    gap: 13px;
}

.admin-error-filters .filter-field[b-k2nc0nu3k9] { min-width: 0; gap: 6px; }
.admin-error-filters .filter-field label[b-k2nc0nu3k9] { color: var(--muted); font-size: .68rem; font-weight: 700; }
.admin-error-filters input[b-k2nc0nu3k9],
.admin-error-filters select[b-k2nc0nu3k9] { width: 100%; min-width: 0; min-height: 36px; padding: 7px 10px; color: var(--ink); font-size: .75rem; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; outline: none; }
.admin-error-filters select[b-k2nc0nu3k9] { padding-right: 30px; }
.admin-error-filters input:focus[b-k2nc0nu3k9],
.admin-error-filters select:focus[b-k2nc0nu3k9] { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); }

.admin-error-actions[b-k2nc0nu3k9] {
    display: flex;
    margin-top: 16px;
    padding-top: 14px;
    align-items: center;
    /* 2026-10-15 用户需求：筛选按钮统一从左往右排（不再靠右）。 */
    justify-content: flex-start;
    gap: 10px;
    border-top: 1px solid var(--line);
}

.admin-error-actions .result-count[b-k2nc0nu3k9] { margin-right: auto; margin-left: 0; padding-bottom: 0; }
.admin-error-table[b-k2nc0nu3k9] { min-width: 1180px; }
.admin-error-table .clickable-row[b-k2nc0nu3k9] { cursor: pointer; }

.table-sort-button[b-k2nc0nu3k9] {
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 0;
    font: inherit;
    font-weight: 700;
    letter-spacing: 0;
}

.table-sort-button:hover[b-k2nc0nu3k9] { color: var(--ink); }
.table-sort-button:focus-visible[b-k2nc0nu3k9] { outline: 2px solid var(--focus); outline-offset: 2px; }

.error-message-cell[b-k2nc0nu3k9] {
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-error-detail-grid[b-k2nc0nu3k9] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 24px;
}

.admin-error-detail-grid > div[b-k2nc0nu3k9] { display: grid; min-width: 0; gap: 4px; }
.admin-error-detail-grid small[b-k2nc0nu3k9],
.admin-error-detail-section > small[b-k2nc0nu3k9] { color: var(--muted); font-size: .72rem; font-weight: 650; }
.admin-error-detail-grid strong[b-k2nc0nu3k9] { min-width: 0; color: var(--ink); font-size: .8rem; font-weight: 600; overflow-wrap: anywhere; }
.admin-error-detail-grid code[b-k2nc0nu3k9] { white-space: normal; overflow-wrap: anywhere; }
.admin-error-detail-section[b-k2nc0nu3k9] { margin-top: 18px; }
.admin-error-detail-section p[b-k2nc0nu3k9] { margin: 5px 0 0; color: var(--ink); font-size: .8rem; overflow-wrap: anywhere; }
.admin-error-detail-section pre[b-k2nc0nu3k9] { max-height: 40vh; margin: 6px 0 0; padding: 12px; overflow: auto; color: var(--ink); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 6px; font-size: .72rem; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 760px) {
    .admin-error-table[b-k2nc0nu3k9] { min-width: 0; }
}

@media (max-width: 850px) {
    .admin-error-filters[b-k2nc0nu3k9] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .admin-error-toolbar[b-k2nc0nu3k9] { padding: 14px; }
    .admin-error-filters[b-k2nc0nu3k9] { grid-template-columns: 1fr; }
    .admin-error-detail-grid[b-k2nc0nu3k9] { grid-template-columns: 1fr; }
    .admin-error-actions[b-k2nc0nu3k9] { flex-wrap: wrap; }
    .admin-error-actions .result-count[b-k2nc0nu3k9] { width: 100%; }
}
/* /Components/AdminUsagePanel.razor.rz.scp.css */
.admin-usage-tabs[b-qzbatxzl0c] {
    display: flex;
    min-height: 45px;
    overflow-x: auto;
    border-bottom: 1px solid var(--line);
}

.admin-usage-tabs button[b-qzbatxzl0c] {
    display: inline-flex;
    min-width: max-content;
    min-height: 44px;
    padding: 10px 15px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    font-size: .8rem;
    font-weight: 650;
    letter-spacing: 0;
}

.admin-usage-tabs button:hover[b-qzbatxzl0c] { color: var(--ink); }
.admin-usage-tabs button.active[b-qzbatxzl0c] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }
.admin-usage-tabs button:focus-visible[b-qzbatxzl0c] { outline: 2px solid var(--focus); outline-offset: -2px; }

.admin-usage-filter-card[b-qzbatxzl0c] {
    min-width: 0;
    margin: 16px 0;
    padding: 18px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}

/* 速率走势卡（2026-10-22）：壳复用 filter-card 同款令牌量值；
   卡头排印取模型监控 card-header 同档位（.78rem/750），深浅主题与 KPI 卡头一致。 */
.admin-usage-rate-card[b-qzbatxzl0c] {
    min-width: 0;
    margin: 16px 0;
    padding: 0 0 6px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}

.admin-usage-rate-card .rate-card-header[b-qzbatxzl0c] {
    display: flex;
    min-height: 44px;
    padding: 12px 16px 8px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.admin-usage-rate-card .rate-card-header h3[b-qzbatxzl0c] {
    margin: 0;
    color: var(--ink);
    font-size: .78rem;
    font-weight: 750;
}

.admin-usage-filter-grid[b-qzbatxzl0c] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    gap: 10px 18px;
}

/* 布局统一（2026-10-21 用户反馈）：label 左置/控件右置，行内排布（参考模型评测工作台）。 */
.admin-usage-filter-grid .filter-field[b-qzbatxzl0c] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.admin-usage-filter-grid .filter-field label[b-qzbatxzl0c] { color: var(--muted); font-size: .68rem; font-weight: 700; white-space: nowrap; flex: 0 0 auto; }
.admin-usage-filter-grid input[b-qzbatxzl0c],
.admin-usage-filter-grid select[b-qzbatxzl0c] {
    width: 180px;
    min-width: 0;
    min-height: 36px;
    padding: 7px 10px;
    color: var(--ink);
    font-size: .75rem;
    background: var(--surface);
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    outline: none;
}

.admin-usage-filter-grid .dxbl-combo-box[b-qzbatxzl0c] { width: 200px; min-width: 0; }
.admin-usage-filter-grid .quick-date-range[b-qzbatxzl0c] { font-size: .75rem; }
.admin-usage-filter-grid input:focus[b-qzbatxzl0c],
.admin-usage-filter-grid select:focus[b-qzbatxzl0c] { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); }

/* 筛选区内 DxSelectField/DxDateTimeField 封装（.form-field 表单口径）的对齐统一放在 app.css
   的筛选容器登记表（.admin-usage-filter-grid .form-field …），避免各页重复维护。 */

.admin-usage-filter-actions[b-qzbatxzl0c] {
    display: flex;
    margin-top: 16px;
    padding-top: 14px;
    align-items: center;
    /* 2026-10-15 用户需求：筛选按钮统一从左往右排（不再靠右）。 */
    justify-content: flex-start;
    gap: 8px;
    border-top: 1px solid var(--line);
}

.source-ip[b-qzbatxzl0c] {
    max-width: 100%;
    overflow-wrap: anywhere;
}

@media (max-width: 1080px) {
    .admin-usage-filter-grid .filter-field[b-qzbatxzl0c] { flex: 1 1 240px; }
    .admin-usage-filter-grid input[b-qzbatxzl0c],
    .admin-usage-filter-grid select[b-qzbatxzl0c] { width: 100%; }
}

/* 用量记录列多：表格按内容自适应宽度（列不挤压换行、行高不撑高），容器横向滚动。 */
#admin-usage-panel-usage .data-table[b-qzbatxzl0c] {
    width: max-content;
    min-width: 100%;
}

#admin-usage-panel-usage .data-table td[b-qzbatxzl0c] {
    white-space: nowrap;
}

@media (max-width: 700px) {
    .admin-usage-filter-card[b-qzbatxzl0c] { padding: 14px; }

    .admin-usage-filter-actions[b-qzbatxzl0c] { flex-wrap: wrap; }
    .admin-usage-filter-actions .button[b-qzbatxzl0c] { flex: 1 1 auto; }
}
/* /Components/AdminUsageRankingTab.razor.rz.scp.css */
.admin-ranking-toolbar[b-q93sz07dsq] {
    display: flex;
    min-height: 78px;
    margin-bottom: 16px;
    padding: 18px;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}

.admin-ranking-toolbar > p[b-q93sz07dsq] { margin: 0 0 9px; color: var(--muted); font-size: .75rem; }
.admin-ranking-toolbar > div[b-q93sz07dsq] { display: flex; align-items: end; gap: 14px; }
.admin-ranking-toolbar .result-count[b-q93sz07dsq] { margin-left: 0; padding-bottom: 9px; }
.admin-ranking-toolbar .filter-field[b-q93sz07dsq] { min-width: 0; gap: 6px; }
.admin-ranking-toolbar .filter-field label[b-q93sz07dsq] { color: var(--muted); font-size: .68rem; font-weight: 700; }
.admin-ranking-toolbar select[b-q93sz07dsq] { min-width: 120px; min-height: 36px; padding: 7px 30px 7px 10px; color: var(--ink); font-size: .75rem; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; outline: none; }
.admin-ranking-toolbar select:focus[b-q93sz07dsq] { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); }

.admin-ranking-table[b-q93sz07dsq] { min-width: 1050px; }
.admin-ranking-table .ranking-row[b-q93sz07dsq] { cursor: pointer; }
.admin-ranking-table .numeric-cell[b-q93sz07dsq] { text-align: right; font-variant-numeric: tabular-nums; }

.ranking-sort-button[b-q93sz07dsq] {
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 0;
    font: inherit;
    font-weight: 700;
    letter-spacing: 0;
}

.ranking-sort-button:hover[b-q93sz07dsq] { color: var(--ink); }
.ranking-sort-button:focus-visible[b-q93sz07dsq] { outline: 2px solid var(--focus); outline-offset: 2px; }

.rank-badge[b-q93sz07dsq] {
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.rank-badge.first[b-q93sz07dsq] { color: #8a5a00; background: #fff2bf; }
.rank-badge.second[b-q93sz07dsq] { color: #4f5965; background: #e8edf1; }
.rank-badge.third[b-q93sz07dsq] { color: #8b4b2c; background: #f8dfd0; }
.ranking-total[b-q93sz07dsq] { color: var(--ink); font-weight: 700; }
.ranking-cost[b-q93sz07dsq] { color: #087f5b; font-weight: 700; white-space: nowrap; }

@media (max-width: 760px) {
    .admin-ranking-table[b-q93sz07dsq] { min-width: 0; }
}

@media (max-width: 700px) {
    .admin-ranking-toolbar[b-q93sz07dsq] { padding: 14px; }
    .admin-ranking-toolbar[b-q93sz07dsq] { align-items: stretch; flex-direction: column; }
    .admin-ranking-toolbar > div[b-q93sz07dsq] { justify-content: space-between; }
}
/* /Components/AgreementDocumentsEditor.razor.rz.scp.css */
.agreement-documents[b-neynyoowd5] { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.agreement-documents > header[b-neynyoowd5] { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid var(--line); }
.agreement-documents h2[b-neynyoowd5] { margin:0; color:var(--text); font-size:.98rem; }
.agreement-documents > header p[b-neynyoowd5] { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.agreement-empty[b-neynyoowd5] { margin:0; padding:20px; color:var(--muted); font-size:.76rem; }
.document-list[b-neynyoowd5] { display:grid; gap:12px; padding:20px; }
.document-list article[b-neynyoowd5] { overflow:hidden; border:1px solid var(--line); border-radius:7px; }
.document-list article > header[b-neynyoowd5] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.document-list article > header > div[b-neynyoowd5] { display:flex; align-items:center; gap:10px; }
.document-list article > header > div > span[b-neynyoowd5] { display:grid; width:32px; height:32px; place-items:center; border-radius:6px; color:var(--primary); background:rgba(35,134,98,.1); }
.document-list article > header > div > div[b-neynyoowd5] { display:grid; gap:2px; }
.document-list article > header small[b-neynyoowd5] { color:var(--muted); font-size:.66rem; }
.document-grid[b-neynyoowd5] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:14px 17px; padding:15px; }
.document-grid[b-neynyoowd5]  input,.document-grid[b-neynyoowd5]  textarea { width:100%; }
.document-grid[b-neynyoowd5]  textarea { resize:vertical; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.74rem; line-height:1.55; }
@media(max-width:760px){.agreement-documents > header[b-neynyoowd5]{flex-direction:column}.agreement-documents > header .button[b-neynyoowd5]{width:100%}.document-grid[b-neynyoowd5]{grid-template-columns:1fr}}
/* /Components/AnnouncementBell.razor.rz.scp.css */
.announcement-bell-trigger[b-9cpng3xtdd] {
    position: relative;
    border: 0;
    cursor: pointer;
}

.announcement-bell-trigger.has-unread[b-9cpng3xtdd] {
    color: #2563eb;
}

.sr-only[b-9cpng3xtdd] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.announcement-unread-dot[b-9cpng3xtdd] {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 8px;
    height: 8px;
}

.announcement-unread-dot[b-9cpng3xtdd]::before,
.announcement-unread-dot i[b-9cpng3xtdd] {
    position: absolute;
    inset: 0;
    content: "";
    background: #ef4444;
    border-radius: 50%;
}

.announcement-unread-dot[b-9cpng3xtdd]::before {
    animation: announcement-ping-b-9cpng3xtdd 1.5s ease-out infinite;
}

.announcement-modal-summary[b-9cpng3xtdd] {
    display: flex;
    margin: -18px -18px 0;
    padding: 16px 18px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    background: linear-gradient(135deg, #f4f8ff, #f7f5ff);
    border-bottom: 1px solid var(--line);
    font-size: .78rem;
}

.announcement-modal-summary > div[b-9cpng3xtdd],
.announcement-detail-meta[b-9cpng3xtdd] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.announcement-modal-summary strong[b-9cpng3xtdd] { color: #2563eb; }

.announcement-modal-icon[b-9cpng3xtdd],
.announcement-popup-icon[b-9cpng3xtdd] {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, #3b82f6, #4f46e5);
    border-radius: 10px;
    box-shadow: 0 7px 16px rgba(59, 130, 246, .22);
}

.announcement-modal-list[b-9cpng3xtdd] {
    margin: 0 -18px -18px;
}

.announcement-list-row[b-9cpng3xtdd] {
    position: relative;
    display: grid;
    width: 100%;
    min-height: 72px;
    padding: 13px 18px;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    color: var(--text);
    text-align: left;
    background: var(--surface);
    border: 0;
    border-bottom: 1px solid var(--line);
    cursor: pointer;
}

.announcement-list-row:hover[b-9cpng3xtdd] { background: var(--surface-soft); }
.announcement-list-row.unread[b-9cpng3xtdd] { background: #f7faff; }
.announcement-list-row.unread[b-9cpng3xtdd]::before { position: absolute; inset: 0 auto 0 0; width: 3px; content: ""; background: linear-gradient(#3b82f6, #4f46e5); }

.announcement-list-state[b-9cpng3xtdd] {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    color: #94a3b8;
    background: #f1f5f9;
    border-radius: 10px;
}

.announcement-list-row.unread .announcement-list-state[b-9cpng3xtdd] { color: #fff; background: linear-gradient(135deg, #3b82f6, #4f46e5); }

.announcement-list-copy[b-9cpng3xtdd] { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 8px; }
.announcement-list-copy strong[b-9cpng3xtdd] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.announcement-list-copy small[b-9cpng3xtdd] { color: var(--muted); font-size: .7rem; }
.announcement-list-copy em[b-9cpng3xtdd] { display: inline-flex; grid-column: 2; grid-row: 2; align-items: center; gap: 4px; color: #2563eb; font-size: .67rem; font-style: normal; font-weight: 650; }
.announcement-list-copy em i[b-9cpng3xtdd] { width: 6px; height: 6px; background: #2563eb; border-radius: 50%; }

.announcement-detail-meta[b-9cpng3xtdd] {
    margin-bottom: 16px;
    color: var(--muted);
    font-size: .74rem;
}

.announcement-detail-meta > span[b-9cpng3xtdd] { display: inline-flex; align-items: center; gap: 5px; }
.announcement-detail-meta .unread[b-9cpng3xtdd] { color: #2563eb; }
.announcement-detail-meta .read[b-9cpng3xtdd] { color: #27805d; }

.announcement-markdown[b-9cpng3xtdd] {
    position: relative;
    min-height: 80px;
    padding-left: 20px;
    color: var(--text);
    overflow-wrap: anywhere;
}

.announcement-markdown[b-9cpng3xtdd]::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: "";
    background: linear-gradient(#3b82f6, #4f46e5, #9333ea);
    border-radius: 999px;
}

.announcement-popup-backdrop[b-9cpng3xtdd] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    padding: 24px 20px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: rgba(10, 15, 13, .68);
    backdrop-filter: blur(5px);
}

.announcement-popup[b-9cpng3xtdd] {
    display: flex;
    width: min(680px, 100%);
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    flex-direction: column;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 20px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .32);
}

.announcement-popup > header[b-9cpng3xtdd] {
    display: grid;
    padding: 24px 28px;
    flex: 0 0 auto;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px 12px;
    background: linear-gradient(135deg, #fff9ed, #fff5eb 55%, #fffbea);
    border-bottom: 1px solid #fde7bd;
}

.announcement-popup-icon[b-9cpng3xtdd] { grid-row: 1 / 4; background: linear-gradient(135deg, #f59e0b, #ea580c); }
.announcement-popup-unread[b-9cpng3xtdd] { display: inline-flex; width: max-content; padding: 4px 9px; align-items: center; gap: 5px; color: #fff; background: linear-gradient(90deg, #f59e0b, #ea580c); border-radius: 7px; font-size: .68rem; font-weight: 700; }
.announcement-popup-unread i[b-9cpng3xtdd] { width: 6px; height: 6px; background: #fff; border-radius: 50%; }
.announcement-popup-title-row[b-9cpng3xtdd] { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 12px; }
.announcement-popup-title-row h2[b-9cpng3xtdd] { min-width: 0; overflow: hidden; margin: 0; color: var(--text); font-size: 1.1rem; text-overflow: ellipsis; white-space: nowrap; }
.announcement-popup-read[b-9cpng3xtdd] { flex: 0 0 auto; white-space: nowrap; }
.announcement-popup header p[b-9cpng3xtdd] { display: flex; margin: 0; align-items: center; gap: 5px; color: var(--muted); font-size: .74rem; }
.announcement-popup-body[b-9cpng3xtdd] { min-height: 0; max-height: none; padding: 26px 28px; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; }
.announcement-popup-body .announcement-markdown[b-9cpng3xtdd]::before { background: linear-gradient(#f59e0b, #ea580c, #eab308); }
.announcement-popup footer[b-9cpng3xtdd] { display: flex; padding: 15px 28px; flex: 0 0 auto; justify-content: flex-end; background: var(--surface-soft); border-top: 1px solid var(--line); }

@keyframes announcement-ping-b-9cpng3xtdd {
    75%, 100% { opacity: 0; transform: scale(2); }
}

@media (max-width: 640px) {
    .announcement-modal-summary[b-9cpng3xtdd] { align-items: stretch; flex-direction: column; }
    .announcement-modal-summary .button[b-9cpng3xtdd] { width: 100%; }
    .announcement-popup-backdrop[b-9cpng3xtdd] { padding: 10px; }
    .announcement-popup[b-9cpng3xtdd] { max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); }
    .announcement-popup > header[b-9cpng3xtdd], .announcement-popup-body[b-9cpng3xtdd], .announcement-popup footer[b-9cpng3xtdd] { padding-left: 18px; padding-right: 18px; }
}
/* /Components/ApiEndpointList.razor.rz.scp.css */
.api-endpoint-list[b-tuwv2r80b1] { display: flex; flex-wrap: wrap; gap: 8px; }
.api-endpoint-chip[b-tuwv2r80b1] { display: flex; min-width: 0; padding: 6px 9px; align-items: center; gap: 6px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 7px; font-size: .68rem; }
.api-endpoint-chip strong[b-tuwv2r80b1] { color: var(--ink); font-size: .67rem; }
.default-badge[b-tuwv2r80b1] { padding: 1px 4px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, transparent); border-radius: 3px; font-size: .55rem; font-weight: 700; }
.endpoint-divider[b-tuwv2r80b1] { color: var(--line-strong, #cbd5e1); }
.endpoint-copy[b-tuwv2r80b1] { display: flex; min-width: 0; padding: 0; align-items: center; gap: 5px; color: var(--muted); background: transparent; border: 0; cursor: pointer; }
.endpoint-copy:hover[b-tuwv2r80b1] { color: var(--primary); }
.endpoint-copy code[b-tuwv2r80b1] { max-width: min(360px, 52vw); overflow: hidden; color: inherit; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.endpoint-speed[b-tuwv2r80b1] { display: inline-flex; color: var(--muted); }
.endpoint-speed:hover[b-tuwv2r80b1] { color: #d97706; }
@media (max-width: 640px) { .api-endpoint-chip[b-tuwv2r80b1] { width: 100%; }.endpoint-copy[b-tuwv2r80b1] { flex: 1; }.endpoint-copy code[b-tuwv2r80b1] { max-width: calc(100vw - 190px); } }
/* /Components/BetaPolicySettings.razor.rz.scp.css */
.beta-policy-card[b-o99235icbk] { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.beta-policy-card > header[b-o99235icbk] { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.beta-policy-card h2[b-o99235icbk] { margin: 0; color: var(--text); font-size: .98rem; }
.beta-policy-card > header p[b-o99235icbk] { margin: 5px 0 0; color: var(--muted); font-size: .76rem; }
.beta-alert[b-o99235icbk] { display: flex; align-items: center; gap: 8px; margin: 16px 20px 0; padding: 10px 12px; border: 1px solid rgba(190,62,62,.25); border-radius: 6px; color: var(--danger); background: rgba(190,62,62,.06); font-size: .76rem; }
.beta-rules[b-o99235icbk] { display: grid; gap: 12px; padding: 20px; }
.beta-rules article[b-o99235icbk] { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.beta-rules article > header[b-o99235icbk] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.beta-rules article > header div[b-o99235icbk] { display: grid; gap: 3px; }
.beta-rules code[b-o99235icbk] { color: var(--muted); font-size: .67rem; }
.action-badge[b-o99235icbk] { padding: 3px 8px; border-radius: 999px; color: var(--muted); background: var(--surface); font-size: .66rem; font-weight: 700; }
.action-badge.block[b-o99235icbk] { color: var(--danger); background: rgba(190,62,62,.1); }
.action-badge.filter[b-o99235icbk] { color: #97620d; background: rgba(209,144,23,.12); }
.action-badge.pass[b-o99235icbk] { color: var(--primary); background: rgba(35,134,98,.1); }
.beta-grid[b-o99235icbk] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 16px 18px; padding: 16px; }
.beta-grid[b-o99235icbk]  input, .beta-grid[b-o99235icbk]  select, .beta-grid[b-o99235icbk]  textarea { width: 100%; }
.beta-grid[b-o99235icbk]  textarea { resize: vertical; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; }
@media (max-width: 760px) { .beta-policy-card > header[b-o99235icbk] { flex-direction: column; } .beta-policy-card > header .button[b-o99235icbk] { width: 100%; } .beta-grid[b-o99235icbk] { grid-template-columns: 1fr; } }
/* /Components/ChannelPriceInput.razor.rz.scp.css */
.form-field[b-llhoqijeey] { display: grid; min-width: 0; gap: 5px; }
.form-field > label[b-llhoqijeey] { color: var(--ink); font-size: .72rem; font-weight: 650; }
.form-field input[b-llhoqijeey] { width: 100%; min-width: 0; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); outline: 0; }
.form-field input:focus[b-llhoqijeey] { border-color: var(--form-control-focus); box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
/* /Components/ChatAssistantContent.razor.rz.scp.css */
/* 助手消息（2026-10-20 对齐百炼体验中心）：模型名头部 / 深度思考折叠 / 操作与指标行。 */
.ba-head[b-j00d517mu7] { display: flex; align-items: center; gap: 8px; }
.ba-avatar[b-j00d517mu7] { display: grid; width: 26px; height: 26px; place-items: center; color: #fff; background: var(--primary, #1677ff); border-radius: 50%; font-size: .62rem; font-weight: 750; }
.ba-model[b-j00d517mu7] { color: var(--ink, #222); font-size: .88rem; font-weight: 700; }
.ba-time[b-j00d517mu7] { color: var(--muted, #8a8f8d); font-size: .72rem; }

.ba-body[b-j00d517mu7] { margin-top: 10px; }

.ba-reasoning[b-j00d517mu7] { margin: 0 0 12px; background: var(--surface-soft, #f7f8f8); border: 1px solid var(--line, #e3e7e5); border-radius: 10px; overflow: hidden; }
.ba-reasoning summary[b-j00d517mu7] { display: flex; align-items: center; gap: 7px; padding: 9px 12px; color: var(--ink, #333); font-size: .78rem; font-weight: 650; cursor: pointer; list-style: none; }
.ba-reasoning summary[b-j00d517mu7]::-webkit-details-marker { display: none; }
.ba-reasoning-check[b-j00d517mu7] { display: grid; width: 15px; height: 15px; place-items: center; color: #fff; background: #22a55e; border-radius: 50%; }
.ba-reasoning summary > :last-child[b-j00d517mu7] { margin-left: auto; color: var(--muted, #8a8f8d); }
.ba-reasoning pre[b-j00d517mu7] { margin: 0; padding: 2px 14px 12px; color: var(--muted, #6a706e); font-size: .76rem; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; }

.ba-foot[b-j00d517mu7] { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 10px; flex-wrap: wrap; }
.ba-actions[b-j00d517mu7] { display: inline-flex; gap: 4px; }
.ba-actions button[b-j00d517mu7] { display: grid; width: 26px; height: 26px; place-items: center; color: var(--muted, #8a8f8d); background: transparent; border: 0; border-radius: 6px; cursor: pointer; }
.ba-actions button:hover[b-j00d517mu7] { color: var(--primary, #1677ff); background: var(--surface-soft, #f2f4f3); }
.ba-actions button.picked[b-j00d517mu7] { color: var(--primary, #1677ff); background: var(--primary-soft, rgba(22, 119, 255, .1)); }
.ba-metrics[b-j00d517mu7] { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted, #8a8f8d); font-size: .68rem; }
.ba-metrics .ba-sep[b-j00d517mu7] { width: 1px; height: 10px; background: var(--line, #e3e7e5); }
/* /Components/ChatCategoryPanels.razor.rz.scp.css */
/* ---- 分类体验面板（2026-10-20 对齐百炼：欢迎语 + 中央操作框 + 结果区） ---- */
.cat-exp[b-fvds7rfj0k]{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:760px;margin:0 auto;padding:24px 16px;overflow:auto}
.cat-exp-welcome[b-fvds7rfj0k]{margin:18px 0 6px;color:var(--text);font-size:1.5rem;font-weight:750;text-align:center}
.cat-exp-welcome b[b-fvds7rfj0k]{color:var(--primary)}
.cat-exp-tabs[b-fvds7rfj0k]{display:flex;gap:4px;align-self:center}
/* 页签 2026-10-21 统一到全站下划线式（ops-tabs 基准）：胶囊式退役。 */
.cat-exp-tabs button[b-fvds7rfj0k]{min-height:32px;padding:5px 14px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;font:inherit;font-size:.78rem;cursor:pointer}
.cat-exp-tabs button.active[b-fvds7rfj0k]{color:var(--primary-strong);border-bottom-color:var(--primary-strong);font-weight:700}
.cat-exp-box[b-fvds7rfj0k]{display:flex;width:100%;flex-direction:column;gap:10px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 24px rgba(15,23,42,.06)}
.cat-exp-input[b-fvds7rfj0k]{width:100%;min-height:88px;padding:10px;color:var(--text);background:transparent;border:0;font:inherit;font-size:.86rem;resize:vertical;outline:0}
.cat-exp-drop[b-fvds7rfj0k]{display:grid;min-height:96px;place-items:center;background:var(--surface-soft);border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:.78rem;cursor:pointer}
.cat-exp-drop input[b-fvds7rfj0k]{display:none}
.cat-exp-drop:hover[b-fvds7rfj0k]{border-color:var(--primary)}
.cat-exp-actions[b-fvds7rfj0k]{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cat-exp-hint[b-fvds7rfj0k]{color:var(--muted);font-size:.68rem}
.cat-exp-send[b-fvds7rfj0k]{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 18px;color:#fff;background:var(--primary);border:0;border-radius:999px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.cat-exp-send:disabled[b-fvds7rfj0k]{opacity:.55;cursor:default}
.cat-exp-status[b-fvds7rfj0k]{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.74rem}
.cat-exp-status.error[b-fvds7rfj0k]{color:#b42318}
.cat-exp-image[b-fvds7rfj0k]{max-width:100%;border:1px solid var(--line);border-radius:12px}
.cat-exp-audio[b-fvds7rfj0k]{width:100%}
.cat-exp-vector[b-fvds7rfj0k]{padding:12px 14px;background:var(--surface-soft);border-radius:10px;color:var(--text);font-size:.72rem;overflow-wrap:anywhere}
/* /Components/ColumnSettingsMenu.razor.rz.scp.css */
.menu-anchor[b-kb9ku55wuw] { position: relative; }

.settings-menu[b-kb9ku55wuw] { display: grid; position: absolute; z-index: 30; top: calc(100% + 5px); right: 0; min-width: 184px; max-height: 330px; padding: 5px; overflow-y: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 34px rgba(0,0,0,.18); }

.settings-menu button[b-kb9ku55wuw] { display: flex; min-height: 34px; padding: 7px 9px; align-items: center; justify-content: space-between; gap: 14px; color: var(--ink); background: none; border: 0; border-radius: 6px; text-align: left; font-size: .69rem; }

.settings-menu button:hover[b-kb9ku55wuw] { background: var(--surface-muted); }
/* /Components/CustomEndpointSettings.razor.rz.scp.css */
.endpoint-settings[b-vd7hutp0eh] { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.endpoint-settings > header[b-vd7hutp0eh] { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid var(--line); }
.endpoint-settings h2[b-vd7hutp0eh] { margin:0; color:var(--text); font-size:.98rem; }
.endpoint-settings header p[b-vd7hutp0eh] { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.empty-copy[b-vd7hutp0eh] { margin:0; padding:20px; color:var(--muted); font-size:.76rem; }
.endpoint-list[b-vd7hutp0eh] { display:grid; gap:10px; padding:16px 20px 20px; }
.endpoint-list article[b-vd7hutp0eh] { display:flex; align-items:flex-start; gap:10px; padding:14px; border:1px solid var(--line); border-radius:7px; background:var(--surface-soft); }
.endpoint-grid[b-vd7hutp0eh] { display:grid; flex:1; min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:13px 16px; }
.endpoint-list[b-vd7hutp0eh]  input { width:100%; }
@media(max-width:760px){.endpoint-settings > header[b-vd7hutp0eh]{flex-direction:column}.endpoint-settings > header .button[b-vd7hutp0eh]{width:100%}.endpoint-list article[b-vd7hutp0eh]{flex-wrap:wrap}.endpoint-grid[b-vd7hutp0eh]{grid-template-columns:1fr}.endpoint-list article>.icon-button:last-child[b-vd7hutp0eh]{margin-left:auto}}
/* /Components/CustomNavigationSettings.razor.rz.scp.css */
.navigation-settings[b-tlxbt0bidz] { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--surface); box-shadow:0 1px 2px rgba(15,23,42,.03); }
.navigation-header[b-tlxbt0bidz] { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px; border-bottom:1px solid var(--line); background:linear-gradient(135deg,var(--surface),var(--surface-soft)); }
.navigation-header h2[b-tlxbt0bidz] { margin:2px 0 0; color:var(--text); font-size:1.02rem; }
.navigation-header p[b-tlxbt0bidz] { max-width:680px; margin:6px 0 0; color:var(--muted); font-size:.77rem; line-height:1.6; }
.eyebrow[b-tlxbt0bidz] { color:var(--primary); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.header-actions[b-tlxbt0bidz] { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.tree-toolbar[b-tlxbt0bidz] { display:flex; align-items:center; gap:18px; min-height:42px; padding:0 20px; border-bottom:1px solid var(--line); color:var(--muted); background:var(--surface); font-size:.7rem; }
.tree-toolbar span[b-tlxbt0bidz] { display:inline-flex; align-items:center; gap:6px; }
.tree-toolbar b[b-tlxbt0bidz] { color:var(--text); }
.visibility-dot[b-tlxbt0bidz] { width:7px; height:7px; border-radius:50%; background:#64748b; }
.visibility-dot.admin[b-tlxbt0bidz] { background:#8b5cf6; }
.menu-tree[b-tlxbt0bidz] { padding:12px; background:var(--surface-soft); }
.menu-node[b-tlxbt0bidz] { position:relative; margin-top:7px; margin-left:calc(var(--tree-depth) * 28px); border:1px solid var(--line); border-radius:8px; background:var(--surface); transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease; }
.menu-node:first-child[b-tlxbt0bidz] { margin-top:0; }
.menu-node:not([style*="--tree-depth:0"])[b-tlxbt0bidz]::before { content:""; position:absolute; top:-8px; bottom:50%; left:-16px; width:15px; border-left:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0 0 0 7px; pointer-events:none; }
.menu-node:hover[b-tlxbt0bidz],.menu-node.editing[b-tlxbt0bidz] { border-color:color-mix(in srgb,var(--primary) 42%,var(--line)); box-shadow:0 4px 14px rgba(15,23,42,.055); }
.menu-node.disabled-node[b-tlxbt0bidz] { opacity:.62; }
.menu-node.editing[b-tlxbt0bidz] { opacity:1; }
.menu-node-row[b-tlxbt0bidz] { display:flex; align-items:center; gap:8px; min-height:54px; padding:7px 10px; }
.tree-indent[b-tlxbt0bidz] { display:none; }
.tree-toggle[b-tlxbt0bidz],.tree-toggle-spacer[b-tlxbt0bidz] { display:grid; flex:0 0 26px; width:26px; height:26px; place-items:center; }
.tree-toggle[b-tlxbt0bidz] { border:0; border-radius:6px; color:var(--muted); background:transparent; cursor:pointer; }
.tree-toggle:hover[b-tlxbt0bidz] { color:var(--text); background:var(--surface-soft); }
.node-icon[b-tlxbt0bidz] { display:grid; flex:0 0 30px; width:30px; height:30px; place-items:center; border:1px solid var(--line); border-radius:7px; color:var(--primary); background:var(--surface-soft); }
.node-summary[b-tlxbt0bidz] { display:grid; flex:1; min-width:120px; gap:2px; padding:2px 4px; border:0; text-align:left; background:transparent; cursor:pointer; }
.node-title[b-tlxbt0bidz] { overflow:hidden; color:var(--text); font-size:.79rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.node-path[b-tlxbt0bidz] { overflow:hidden; color:var(--muted); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.kind-badge[b-tlxbt0bidz],.visibility-badge[b-tlxbt0bidz] { display:inline-flex; align-items:center; height:23px; padding:0 8px; border-radius:999px; font-size:.64rem; font-weight:750; white-space:nowrap; }
.kind-badge[b-tlxbt0bidz] { color:#475569; background:#e2e8f0; }
.kind-badge.section[b-tlxbt0bidz] { color:#1d4ed8; background:#dbeafe; }
.kind-badge.group[b-tlxbt0bidz] { color:#047857; background:#d1fae5; }
.visibility-badge[b-tlxbt0bidz] { color:#475569; border:1px solid var(--line); background:var(--surface-soft); }
.visibility-badge.admin[b-tlxbt0bidz] { color:#7c3aed; border-color:#ddd6fe; background:#f5f3ff; }
.enable-switch[b-tlxbt0bidz] { position:relative; display:inline-flex; flex:0 0 34px; width:34px; height:20px; cursor:pointer; }
.enable-switch input[b-tlxbt0bidz] { position:absolute; width:1px; height:1px; opacity:0; }
.enable-switch span[b-tlxbt0bidz] { width:34px; height:20px; border-radius:999px; background:#cbd5e1; transition:background .15s ease; }
.enable-switch span[b-tlxbt0bidz]::after { content:""; display:block; width:16px; height:16px; margin:2px; border-radius:50%; background:white; box-shadow:0 1px 3px rgba(15,23,42,.22); transition:transform .15s ease; }
.enable-switch input:checked + span[b-tlxbt0bidz] { background:var(--primary); }
.enable-switch input:checked + span[b-tlxbt0bidz]::after { transform:translateX(14px); }
.node-actions[b-tlxbt0bidz] { display:flex; align-items:center; gap:3px; padding-left:4px; border-left:1px solid var(--line); }
.node-actions .icon-button.active[b-tlxbt0bidz] { color:var(--primary); background:color-mix(in srgb,var(--primary) 10%,transparent); }
.node-actions .icon-button.danger:hover[b-tlxbt0bidz] { color:var(--danger); }
.node-editor[b-tlxbt0bidz] { padding:15px 16px 14px 70px; border-top:1px solid var(--line); background:color-mix(in srgb,var(--surface-soft) 72%,var(--surface)); }
.editor-grid[b-tlxbt0bidz] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 16px; }
.editor-grid[b-tlxbt0bidz]  input,.editor-grid[b-tlxbt0bidz]  select { width:100%; }
.editor-footer[b-tlxbt0bidz] { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; padding-top:12px; border-top:1px dashed var(--line); }
.exact-match[b-tlxbt0bidz],.container-hint[b-tlxbt0bidz] { display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:.7rem; }
.exact-match input[b-tlxbt0bidz] { width:15px; height:15px; }
.empty-tree[b-tlxbt0bidz] { display:grid; justify-items:center; gap:7px; padding:54px 20px; color:var(--muted); text-align:center; }
.empty-tree-icon[b-tlxbt0bidz] { display:grid; width:50px; height:50px; margin-bottom:4px; place-items:center; border-radius:14px; color:var(--primary); background:color-mix(in srgb,var(--primary) 10%,var(--surface)); }
.empty-tree strong[b-tlxbt0bidz] { color:var(--text); font-size:.85rem; }
.empty-tree p[b-tlxbt0bidz] { margin:0 0 8px; font-size:.72rem; }
@media(max-width:980px){.kind-badge[b-tlxbt0bidz]{display:none}.editor-grid[b-tlxbt0bidz]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.navigation-header[b-tlxbt0bidz]{flex-direction:column}.header-actions[b-tlxbt0bidz]{display:grid;width:100%;grid-template-columns:1fr 1fr}.tree-toolbar[b-tlxbt0bidz]{flex-wrap:wrap;gap:8px 14px;padding:9px 14px}.menu-tree[b-tlxbt0bidz]{padding:8px}.menu-node[b-tlxbt0bidz]{margin-left:calc(var(--tree-depth) * 14px)}.menu-node[b-tlxbt0bidz]::before{display:none}.menu-node-row[b-tlxbt0bidz]{flex-wrap:wrap}.node-summary[b-tlxbt0bidz]{min-width:calc(100% - 110px)}.visibility-badge[b-tlxbt0bidz]{display:none}.node-actions[b-tlxbt0bidz]{width:100%;justify-content:flex-end;padding-top:6px;border-top:1px solid var(--line);border-left:0}.node-editor[b-tlxbt0bidz]{padding:14px}.editor-grid[b-tlxbt0bidz]{grid-template-columns:1fr}.editor-footer[b-tlxbt0bidz]{align-items:flex-start;flex-direction:column}.editor-footer .button[b-tlxbt0bidz]{width:100%}}
/* /Components/DistributionLegend.razor.rz.scp.css */
.distribution-legend[b-ao1yay4a4g] {
    display: grid;
    gap: 5px;
    margin-top: -8px;
}

.distribution-legend > div[b-ao1yay4a4g] {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--muted);
    font-size: .68rem;
}

.distribution-legend span[b-ao1yay4a4g] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.distribution-legend strong[b-ao1yay4a4g] {
    flex: 0 0 auto;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    font-weight: 650;
}
/* /Components/EmailTemplateEditor.razor.rz.scp.css */
.email-template-card[b-ese4b38kn7] {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.email-template-card > header[b-ese4b38kn7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.email-template-card h2[b-ese4b38kn7] { margin: 0; color: var(--text); font-size: .98rem; }
.email-template-card > header p[b-ese4b38kn7] { margin: 5px 0 0; color: var(--muted); font-size: .76rem; }
.template-actions[b-ese4b38kn7] { display: flex; flex-wrap: wrap; gap: 7px; }
.template-alert[b-ese4b38kn7] { display: flex; align-items: center; gap: 8px; margin: 16px 20px 0; padding: 10px 12px; border: 1px solid rgba(190, 62, 62, .25); border-radius: 6px; color: var(--danger); background: rgba(190, 62, 62, .06); font-size: .76rem; }
.template-body[b-ese4b38kn7] { display: grid; gap: 18px; padding: 20px; }
.template-selectors[b-ese4b38kn7] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.template-selectors[b-ese4b38kn7]  select { width: 100%; }
.event-summary[b-ese4b38kn7] { padding: 13px 15px; border: 1px solid rgba(35, 134, 98, .2); border-radius: 7px; background: rgba(35, 134, 98, .06); }
.event-summary > div[b-ese4b38kn7] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.event-summary span[b-ese4b38kn7] { padding: 3px 7px; border-radius: 999px; color: var(--muted); background: var(--surface); font-size: .67rem; }
.event-summary span.transactional[b-ese4b38kn7] { color: #147453; background: rgba(35, 134, 98, .12); }
.event-summary span.optional[b-ese4b38kn7] { color: #97620d; background: rgba(209, 144, 23, .12); }
.event-summary p[b-ese4b38kn7] { margin: 7px 0 0; color: var(--muted); font-size: .72rem; }
.template-editor-grid[b-ese4b38kn7] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr); gap: 20px; }
.template-source[b-ese4b38kn7] { display: grid; align-content: start; gap: 17px; }
.template-source[b-ese4b38kn7]  input, .template-source[b-ese4b38kn7]  textarea { width: 100%; }
.template-source[b-ese4b38kn7]  textarea { min-height: 430px; resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .74rem; line-height: 1.55; }
.placeholder-box[b-ese4b38kn7] { padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); }
.placeholder-box > p[b-ese4b38kn7] { margin: 3px 0 10px; color: var(--muted); font-size: .7rem; }
.placeholder-box > div[b-ese4b38kn7] { display: flex; flex-wrap: wrap; gap: 6px; }
.placeholder-box button[b-ese4b38kn7] { padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--text); background: var(--surface); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .66rem; cursor: pointer; }
.template-preview[b-ese4b38kn7] { overflow: hidden; align-self: start; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); }
.template-preview > header[b-ese4b38kn7] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--surface); }
.template-preview > header div[b-ese4b38kn7] { display: grid; gap: 2px; }
.template-preview > header small[b-ese4b38kn7] { color: var(--muted); font-size: .68rem; }
.template-preview > header span[b-ese4b38kn7] { padding: 3px 7px; border-radius: 999px; color: var(--primary); background: rgba(35, 134, 98, .1); font-size: .66rem; }
.template-preview iframe[b-ese4b38kn7] { display: block; width: calc(100% - 20px); height: 570px; margin: 10px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.template-preview > p[b-ese4b38kn7] { margin: 0; padding: 0 12px 12px; color: var(--muted); font-size: .66rem; line-height: 1.5; }

@media (max-width: 1100px) { .template-editor-grid[b-ese4b38kn7] { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
    .email-template-card > header[b-ese4b38kn7] { flex-direction: column; }
    .template-actions[b-ese4b38kn7], .template-actions .button[b-ese4b38kn7] { width: 100%; }
    .template-selectors[b-ese4b38kn7] { grid-template-columns: 1fr; }
    .template-body[b-ese4b38kn7] { padding: 15px; }
}
/* /Components/Field.razor.rz.scp.css */
/* 2026-11-02 全站输入框横向布局（用户要求：文字在左、内容在右）。
   与弹窗行式栅格（app.css .modal-body > .form-field）同款模板：label 列 118–150px，
   控件列自适应；hint 行跨两列落在字段下方。 */
.settings-field[b-kza7q360xt] {
    display: grid;
    min-width: 0;
    align-content: start;
    grid-template-columns: minmax(118px, 150px) minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    row-gap: 7px;
}

.settings-field > .settings-field-label[b-kza7q360xt] {
    grid-column: 1;
    grid-row: 1;
}

.settings-field > .settings-field-control[b-kza7q360xt] {
    grid-column: 2;
}

.settings-field-full[b-kza7q360xt] {
    grid-column: 1 / -1;
}

.settings-field-label[b-kza7q360xt] {
    color: var(--text);
    font-size: .8rem;
    font-weight: 700;
}

.settings-field-control[b-kza7q360xt] {
    min-width: 0;
}

.settings-field-control[b-kza7q360xt]  input,
.settings-field-control[b-kza7q360xt]  select,
.settings-field-control[b-kza7q360xt]  textarea {
    width: 100%;
    min-width: 0;
    min-height: var(--form-control-height);
    padding: 7px 10px;
    color: var(--form-control-color);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
    font: inherit;
}

.settings-field-control[b-kza7q360xt]  textarea {
    line-height: 1.5;
    resize: vertical;
}

.settings-field-control[b-kza7q360xt]  input::placeholder,
.settings-field-control[b-kza7q360xt]  textarea::placeholder {
    color: var(--form-control-placeholder);
}

.settings-field-control[b-kza7q360xt]  input:focus,
.settings-field-control[b-kza7q360xt]  select:focus,
.settings-field-control[b-kza7q360xt]  textarea:focus {
    border-color: var(--form-control-focus);
    outline: 0;
    box-shadow: 0 0 0 3px var(--form-control-focus-ring);
}

.settings-field-hint[b-kza7q360xt] {
    margin: 0;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.55;
}
/* /Components/FilterInput.razor.rz.scp.css */
/* 2026-11-02 用户要求：输入框横向布局（label 左/控件右），与弹窗 .form-field 行式栅格同款模板。
   2026-11-09 全站统一：字号/描边/高度收敛到设计令牌，与 .app-filter-bar 完全同款。 */
.filter-input[b-npinccdh8h] { display: grid; grid-template-columns: minmax(84px, 132px) minmax(0, 1fr); align-items: center; column-gap: 10px; row-gap: 0; color: var(--muted); font-size: .7rem; }
.filter-input > span[b-npinccdh8h] { grid-column: 1; grid-row: 1; color: var(--muted); font-size: .7rem; font-weight: 700; white-space: nowrap; }
.filter-input input[b-npinccdh8h] { grid-column: 2; width: 100%; min-width: 0; height: 36px; padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); font: inherit; font-size: .78rem; box-sizing: border-box; }
.filter-input input:focus[b-npinccdh8h] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
/* /Components/GatewayAdvancedSettings.razor.rz.scp.css */
.gateway-advanced-settings[b-hsnaahzlur] { display:grid; gap:16px; }
.gateway-advanced-settings > section[b-hsnaahzlur] { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.gateway-advanced-settings > section > header[b-hsnaahzlur] { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid var(--line); }
.gateway-advanced-settings h2[b-hsnaahzlur] { margin:0; color:var(--text); font-size:.98rem; }
.gateway-advanced-settings header p[b-hsnaahzlur] { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.advanced-grid[b-hsnaahzlur],.scheduler-weights[b-hsnaahzlur],.fast-grid[b-hsnaahzlur] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px 18px; padding:20px; }
.advanced-grid[b-hsnaahzlur]  input,.advanced-grid[b-hsnaahzlur]  select,.advanced-grid[b-hsnaahzlur]  textarea,.scheduler-weights[b-hsnaahzlur]  input,.fast-grid[b-hsnaahzlur]  input,.fast-grid[b-hsnaahzlur]  select,.fast-grid[b-hsnaahzlur]  textarea { width:100%; }
.advanced-grid[b-hsnaahzlur]  textarea,.fast-grid[b-hsnaahzlur]  textarea { resize:vertical; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.74rem; }
.thresholds[b-hsnaahzlur] { padding:0 20px 20px; }
.thresholds h3[b-hsnaahzlur] { margin:0; color:var(--text); font-size:.82rem; }
.thresholds > p[b-hsnaahzlur] { margin:4px 0 12px; color:var(--muted); font-size:.69rem; }
.thresholds > div[b-hsnaahzlur] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.scheduler-weights[b-hsnaahzlur] { padding-top:0; }
.advanced-empty[b-hsnaahzlur] { margin:0; padding:20px; color:var(--muted); font-size:.76rem; }
.fast-rules[b-hsnaahzlur] { display:grid; gap:12px; padding:20px; }
.fast-rules article[b-hsnaahzlur] { overflow:hidden; border:1px solid var(--line); border-radius:7px; }
.fast-rules article > header[b-hsnaahzlur] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 13px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.fast-grid[b-hsnaahzlur] { padding:15px; }
@media(max-width:760px){.gateway-advanced-settings > section > header[b-hsnaahzlur]{flex-direction:column}.gateway-advanced-settings > section > header .button[b-hsnaahzlur]{width:100%}.advanced-grid[b-hsnaahzlur],.scheduler-weights[b-hsnaahzlur],.fast-grid[b-hsnaahzlur],.thresholds>div[b-hsnaahzlur]{grid-template-columns:1fr}}
/* /Components/MetricToggle.razor.rz.scp.css */
.metric-toggle[b-nlwrsgryq9] {
    display: inline-flex;
    padding: 2px;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.metric-toggle button[b-nlwrsgryq9] {
    min-width: 48px;
    padding: 4px 8px;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 4px;
    font-size: .68rem;
    font-weight: 650;
}

.metric-toggle button.active[b-nlwrsgryq9] {
    color: #087f5b;
    background: var(--surface);
    box-shadow: 0 1px 3px rgba(20, 36, 29, .08);
}
/* /Components/ModalityIndicator.razor.rz.scp.css */
.modality-indicator[b-jch033vgc7] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    white-space: nowrap;
}

.modality-label[b-jch033vgc7] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border-radius: 4px;
    background: var(--surface-soft);
    color: var(--ink);
    font-size: 12px;
    line-height: 1.2;
}

.modality-strip[b-jch033vgc7] {
    display: inline-flex;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}

.modality-icon[b-jch033vgc7] {
    display: inline-grid;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 6px;
}

.modality-indicator.compact[b-jch033vgc7] { gap: 5px; }
.modality-indicator.compact .modality-strip[b-jch033vgc7] { gap: 2px; }
.modality-indicator.compact .modality-icon[b-jch033vgc7] { flex-basis: 18px; width: 18px; height: 18px; }
.modality-icon.active[b-jch033vgc7] { color: #1677ff; background: #e8f3ff; }
.modality-icon.image.active[b-jch033vgc7] { color: #25805d; background: #e8f5ee; }
.modality-icon.audio.active[b-jch033vgc7] { color: #8b5cf6; background: #f1edff; }
.modality-icon.video.active[b-jch033vgc7] { color: #64748b; background: #eef1f4; }
.modality-icon.inactive[b-jch033vgc7] { color: #c7ccd1; background: transparent; }
/* /Components/ModelEvaluationReportCharts.razor.rz.scp.css */
.report-charts-section .section-header[b-ie9muoo6q6] { padding-bottom: 14px; }

.report-chart-grid[b-ie9muoo6q6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
    padding: 0 24px 24px;
}

.report-chart-card[b-ie9muoo6q6] {
    display: grid;
    gap: 10px;
    align-content: start;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface);
}

.report-chart-card header[b-ie9muoo6q6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.report-chart-card header strong[b-ie9muoo6q6] { color: var(--ink); font-size: .88rem; }
.report-chart-card header span[b-ie9muoo6q6] { color: var(--muted); font-size: .74rem; }

.report-chart-foot[b-ie9muoo6q6] {
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: .72rem;
}

.report-comparison-grid[b-ie9muoo6q6] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 0 24px 24px;
}

.report-comparison-charts .report-chart-card[b-ie9muoo6q6] { min-width: 0; }

/* 环形图中心成功率文字：叠加层定位在 DxPieChart 之上（图例在下方时饼心约在 44% 高度）。 */
.report-donut-plot[b-ie9muoo6q6] { position: relative; }

.report-donut-value[b-ie9muoo6q6] {
    position: absolute;
    top: 42%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--ink);
    font-size: 24px;
    line-height: 1;
    font-weight: 650;
}

.report-donut-label[b-ie9muoo6q6] {
    position: absolute;
    top: 56%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--muted);
    font-size: 11px;
    line-height: 1;
}

.report-chart-tooltip[b-ie9muoo6q6] {
    color: var(--ink);
    font-size: .74rem;
    white-space: nowrap;
}

/* DevExpress 图表与项目主题桥接：轴文字与 tooltip 映射到 CSS 变量。 */
[b-ie9muoo6q6] .dxc-arg-elements text,
[b-ie9muoo6q6] .dxc-val-elements text {
    fill: var(--muted) !important;
    font-size: .68rem !important;
}

[b-ie9muoo6q6] .dxbl-chart-tooltip-content-container,
[b-ie9muoo6q6] .dxbl-chart-tooltip-pointer {
    color: var(--ink);
    background: var(--surface);
    border-color: var(--line);
}

[b-ie9muoo6q6] .dxbl-legend-item text {
    fill: var(--muted) !important;
    font-size: .72rem !important;
}

@media (max-width: 960px) {
    .report-chart-grid[b-ie9muoo6q6], .report-comparison-grid[b-ie9muoo6q6] { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .report-chart-grid[b-ie9muoo6q6], .report-comparison-grid[b-ie9muoo6q6] { padding: 0 16px 18px; }
}
/* /Components/ModelEvaluationSequencePicker.razor.rz.scp.css */
/* 2026-10-22 二次定稿：已选模型由待评测列表承载，顶部只留「添加对比模型」按钮（附已选计数）。
   2026-10-23 逐页 review：按钮改用全站 .button.secondary.compact，本文件不再自带按钮样式。
   仅引用既有令牌（--line/--primary/--muted 等）与既有间距量，无新量值。 */
.evaluation-model-compact[b-wqm0fabslw] { position: relative; z-index: 5; display: flex; align-items: center; gap: 10px; min-width: 0; }
.evaluation-model-compact label[b-wqm0fabslw] { color: var(--muted); font-size: 12px; white-space: nowrap; }

/* AppModal 盖章的「选择对比模型」弹窗：宽 860 上限，内部表格区独立滚动（样式全局承载：
   modal-body 不带 scoped 属性，规则须放全局 evaluation-workspace.css）。 */

.evaluation-model-picker-header[b-wqm0fabslw] { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.evaluation-model-picker-header h2[b-wqm0fabslw] { margin: 0; font-size: 15px; line-height: 1.4; }
.evaluation-selected-chips[b-wqm0fabslw] { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 12px; }
.evaluation-selection-toolbar[b-wqm0fabslw] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.evaluation-selection-toolbar .ev-sequence-search[b-wqm0fabslw] { flex: 1 1 260px; min-width: 0; }
.evaluation-selection-note[b-wqm0fabslw] { color: var(--muted); font-size: 12px; white-space: nowrap; }
.evaluation-selection-empty[b-wqm0fabslw] { padding: 28px 12px; text-align: center; color: var(--muted); font-size: 13px; }
.ev-sequence-pagination[b-wqm0fabslw] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; font-size: 12px; color: var(--muted); }
/* 探活失败行禁选（2026-10-22 定稿）：整体淡显 + 勾选框禁用，探活原因在「不可用」悬浮说明。 */
.evaluation-selection-table tr.unselectable td[b-wqm0fabslw] { opacity: .55; }
@media (max-width: 700px) {
    .evaluation-model-picker-header[b-wqm0fabslw] { align-items: flex-start; }
    .evaluation-selection-toolbar[b-wqm0fabslw] { flex-wrap: wrap; }
    .evaluation-selection-note[b-wqm0fabslw] { white-space: normal; }
    .evaluation-model-compact[b-wqm0fabslw] { align-items: flex-start; }
}
/* /Components/ModelPlazaPricingTable.razor.rz.scp.css */
.plaza-pricing-table[b-fxnin4xnvy] {
    --paid-title: color-mix(in srgb, var(--plaza-accent) 86%, #111827);
    --paid-bg: color-mix(in srgb, var(--plaza-accent) 7%, transparent);
    --paid-hover: color-mix(in srgb, var(--plaza-accent) 13%, transparent);
    overflow-x: auto;
}

.plaza-pricing-table table[b-fxnin4xnvy] {
    width: 100%;
    min-width: 860px;
    table-layout: fixed;
    border-collapse: collapse;
    color: var(--ink);
    font-size: .83rem;
    font-variant-numeric: tabular-nums;
}

.model-column[b-fxnin4xnvy] { width: 22%; }
.price-column[b-fxnin4xnvy] { width: 10%; }
.cache-column[b-fxnin4xnvy] { width: 14%; }
.rate-column[b-fxnin4xnvy] { width: 10%; }

th[b-fxnin4xnvy],
td[b-fxnin4xnvy] {
    vertical-align: middle;
}

thead th[b-fxnin4xnvy] {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.pricing-heading-row th[b-fxnin4xnvy] {
    padding-top: 10px;
}

.pricing-heading-row span[b-fxnin4xnvy],
.pricing-heading-row small[b-fxnin4xnvy] {
    display: inline-block;
}

.pricing-heading-row small[b-fxnin4xnvy] {
    margin-left: 5px;
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.model-heading[b-fxnin4xnvy] {
    padding: 10px 16px 10px 20px;
    border-right: 1px solid var(--line);
    text-align: left;
}

.paid-heading[b-fxnin4xnvy] {
    color: var(--paid-title);
    background: var(--paid-bg);
    text-align: center;
}

.paid-heading[b-fxnin4xnvy]::after,
.official-heading[b-fxnin4xnvy]::after {
    display: block;
    height: 1px;
    margin-top: 8px;
    background: color-mix(in srgb, var(--paid-title) 25%, transparent);
    content: "";
}

.official-heading[b-fxnin4xnvy] {
    border-left: 1px solid var(--line);
    color: color-mix(in srgb, var(--muted) 76%, transparent);
    text-align: center;
}

.official-heading[b-fxnin4xnvy]::after {
    background: var(--line);
}

.rate-heading[b-fxnin4xnvy] {
    padding: 10px 20px 10px 12px;
    border-left: 1px solid var(--line);
    text-align: right;
}

.pricing-subheading-row[b-fxnin4xnvy] {
    border-bottom: 1px solid var(--line);
}

.pricing-subheading-row th[b-fxnin4xnvy] {
    padding: 7px 12px;
    text-align: left;
}

.paid-cell[b-fxnin4xnvy] {
    background: var(--paid-bg);
}

.official-first[b-fxnin4xnvy] {
    border-left: 1px solid var(--line);
}

tbody tr[b-fxnin4xnvy] {
    border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    transition: background-color 140ms ease;
}

tbody tr:last-child[b-fxnin4xnvy] {
    border-bottom: 0;
}

tbody tr:hover[b-fxnin4xnvy] {
    background: var(--surface-hover);
}

tbody tr:hover .paid-cell[b-fxnin4xnvy] {
    background: var(--paid-hover);
}

tbody td[b-fxnin4xnvy] {
    padding: 10px 12px;
}

.model-cell[b-fxnin4xnvy] {
    padding-left: 20px;
    padding-right: 16px;
    border-right: 1px solid var(--line);
}

.model-identity[b-fxnin4xnvy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.model-identity strong[b-fxnin4xnvy] {
    overflow-wrap: anywhere;
    font-weight: 650;
}

.model-platform[b-fxnin4xnvy],
.billing-mode[b-fxnin4xnvy] {
    display: inline-flex;
    align-items: center;
    min-height: 19px;
    padding: 1px 6px;
    border-radius: 5px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: .64rem;
    font-weight: 650;
}

.model-platform.anthropic[b-fxnin4xnvy] { color: #b45309; background: #fff7ed; }
.model-platform.openai[b-fxnin4xnvy] { color: #047857; background: #ecfdf5; }
.model-platform.gemini[b-fxnin4xnvy] { color: #1d4ed8; background: #eff6ff; }
.model-platform.antigravity[b-fxnin4xnvy] { color: #6d28d9; background: #f5f3ff; }
.model-platform.grok[b-fxnin4xnvy] { color: #334155; background: #f1f5f9; }
.model-platform.composite[b-fxnin4xnvy] { color: #0e7490; background: #ecfeff; }

.numeric-cell[b-fxnin4xnvy],
.cache-cell[b-fxnin4xnvy],
.request-price-cell[b-fxnin4xnvy],
.rate-cell[b-fxnin4xnvy] {
    font-family: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
}

.numeric-cell[b-fxnin4xnvy] {
    font-size: .76rem;
    font-weight: 650;
}

/* 数字列右对齐（2026-10-26 全站定稿）：th/td 的 text-align 由 app.css 全局
   table th/td.numeric-cell 承载；这里把档位/缓存等多行「标签+数值」flex 行
   改为右端收拢，保证各行数值同样贴右（标签紧贴数值左侧）。 */
td.numeric-cell .tier-price[b-fxnin4xnvy],
td.numeric-cell > div[b-fxnin4xnvy],
td.numeric-cell .request-tiers[b-fxnin4xnvy] {
    justify-content: flex-end;
}

.tier-price[b-fxnin4xnvy],
.cache-cell > div[b-fxnin4xnvy] {
    display: flex;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
    line-height: 1.7;
}

.tier-price small[b-fxnin4xnvy],
.cache-cell small[b-fxnin4xnvy] {
    color: var(--muted);
    font-family: Inter, "Segoe UI", sans-serif;
    font-size: .66rem;
    font-weight: 500;
    white-space: nowrap;
}

.official-cell[b-fxnin4xnvy],
.official-first[b-fxnin4xnvy] {
    color: var(--muted);
    font-size: .73rem;
}

.one-hour[b-fxnin4xnvy] {
    color: var(--muted);
    font-family: Inter, "Segoe UI", sans-serif;
    font-size: .64rem;
    white-space: nowrap;
}

.request-price-cell strong[b-fxnin4xnvy] {
    font-size: .78rem;
}

.request-price-cell em[b-fxnin4xnvy],
.request-tiers em[b-fxnin4xnvy] {
    margin-left: 4px;
    color: var(--muted);
    font-family: Inter, "Segoe UI", sans-serif;
    font-size: .68rem;
    font-style: normal;
}

.request-tiers[b-fxnin4xnvy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.request-tiers > span[b-fxnin4xnvy] {
    display: inline-flex;
    align-items: baseline;
    padding: 2px 7px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--ink) 6%, transparent);
    font-size: .74rem;
}

.request-tiers small[b-fxnin4xnvy] {
    margin-right: 5px;
    color: var(--muted);
    font-family: Inter, "Segoe UI", sans-serif;
    font-size: .65rem;
}

.empty-price[b-fxnin4xnvy] {
    color: var(--muted);
}

.rate-cell[b-fxnin4xnvy] {
    padding-right: 20px;
    border-left: 1px solid var(--line);
    text-align: right;
    white-space: nowrap;
}

.rate-cell s[b-fxnin4xnvy] {
    margin-right: 5px;
    color: var(--muted);
}

.rate-cell strong[b-fxnin4xnvy] {
    font-size: .75rem;
}

.rate-cell .custom-rate[b-fxnin4xnvy] {
    color: var(--primary);
}

@media (max-width: 900px) {
    .plaza-pricing-table table[b-fxnin4xnvy] {
        min-width: 800px;
    }
}
/* /Components/ModelProductTab.razor.rz.scp.css */
/* 模型产品专属样式：上游序列摘要按钮、上游序列池限流覆盖单元格。
   全站共享的 .status-badge.ok/.muted 缺口在 app.css 补齐（见同名规则）。 */

/* ---- 产品列表：上游模型序列摘要按钮（参考上游管理 API-Key 列，2026-10-21）+ 调度档位 chips ---- */
.sequence-summary[b-o3ounmaxb0] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 0;
    color: var(--ink);
    background: transparent;
    border: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.sequence-summary:hover code[b-o3ounmaxb0],
.sequence-summary:hover small[b-o3ounmaxb0] { color: var(--primary); text-decoration: underline; }

.sequence-summary small[b-o3ounmaxb0] { color: var(--muted); font-size: .7rem; white-space: nowrap; }

.schedule-tiers[b-o3ounmaxb0] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

.schedule-tier-chip[b-o3ounmaxb0] {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: var(--radius-full, 999px);
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    white-space: nowrap;
    color: var(--success);
    background: color-mix(in srgb, var(--success) 12%, transparent);
}

.schedule-tier-chip.fallback[b-o3ounmaxb0] {
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warning) 45%, transparent);
}

.tier-arrow[b-o3ounmaxb0] { color: var(--muted); font-size: .7rem; }

/* 调度策略摘要列（产品升级 2026-10 需求 #6）：后端拼装的紧凑串「P1 seq-x(50%)→P2 seq-y(兜底)」，
   限宽折叠完整内容走 title。 */
.schedule-summary[b-o3ounmaxb0] {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    color: var(--text-secondary, inherit);
}

/* 创建态「从上游模型序列带入」行（需求 #16）：字段内嵌表格下拉。 */
.source-sequence-picker[b-o3ounmaxb0] {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}

/* 表格下拉需要越过基础配置区边界展开，避免被 ModalSection 的折叠容器裁切。 */
[b-o3ounmaxb0] .vendor-editor-stack .modal-section-primary,
[b-o3ounmaxb0] .vendor-editor-stack .modal-section-primary > .modal-section-body { overflow: visible; }

/* 二值设置与其他表单字段同一行：说明放在标签问号，右侧只保留紧凑开关。 */
.product-plaza-toggle[b-o3ounmaxb0] {
    width: max-content;
    min-height: 36px;
    padding: 7px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 4px;
}
.product-plaza-toggle span[b-o3ounmaxb0] { color: var(--muted); font-size: .76rem; }

.source-sequence-trigger[b-o3ounmaxb0] {
    display: flex;
    min-width: 0;
    width: auto;
    flex: 1 1 auto;
    min-height: 40px;
    padding: 0 0 0 11px;
    align-items: center;
    justify-content: space-between;
    gap: 0;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 4px;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.source-sequence-trigger:hover:not(:disabled)[b-o3ounmaxb0],
.source-sequence-trigger:focus-visible[b-o3ounmaxb0] {
    border-color: var(--accent, #4f7cff);
    outline: 0;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #4f7cff) 14%, transparent);
}

.source-sequence-trigger:disabled[b-o3ounmaxb0] { cursor: not-allowed; opacity: .65; }
.source-sequence-trigger-value[b-o3ounmaxb0] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.source-sequence-trigger-icon[b-o3ounmaxb0] {
    display: grid;
    width: 34px;
    height: 38px;
    flex: 0 0 34px;
    place-items: center;
    color: var(--muted);
    border-left: 1px solid var(--line);
}
.source-sequence-clear[b-o3ounmaxb0] { flex: 0 0 auto; margin-left: -2px; }

.source-sequence-menu[b-o3ounmaxb0] {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: grid;
    /* 2026-11-01 用户反馈「下拉显示不全」：固定 52vh/390px 与弹窗实际可用空间脱钩——
       字段不在 modal-body 顶部或视口偏矮时，菜单底边被 modal-body 裁切。改为由 JS 按
       触发器到滚动区底部的实际距离注入 --source-sequence-menu-max（见
       paragateway.js sequencePickerFitsBelow），这里只保留绝对上限。 */
    max-height: var(--source-sequence-menu-max, min(390px, 60vh));
    min-width: 560px;
    padding: 10px;
    gap: 9px;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .18);
}

.source-sequence-search[b-o3ounmaxb0] { margin: 0; }
/* app.css 的 .form-field input 全局规则会给搜索内层 input 叠 40px 高 + 双边框，
   顶出 38px 的 .search-box 容器（2026-11-01 用户反馈：样式不对 + 显示不全）——回落到
   .search-box 自身的无边框内层输入标准。 */
[b-o3ounmaxb0] .source-sequence-search input {
    height: 100%;
    padding: 0 0 0 8px;
    background: transparent;
    border: 0;
    border-radius: 0;
}

    [b-o3ounmaxb0] .source-sequence-search input:focus {
        border: 0;
        box-shadow: none;
    }
.source-sequence-table-scroll[b-o3ounmaxb0] { min-height: 0; overflow: auto; border: 1px solid var(--line); border-radius: 6px; }
.source-sequence-table[b-o3ounmaxb0] { width: 100%; min-width: 520px; border-collapse: collapse; color: var(--ink); font-size: .78rem; }
.source-sequence-table th[b-o3ounmaxb0],
.source-sequence-table td[b-o3ounmaxb0] { height: 42px; padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; white-space: nowrap; }
.source-sequence-table th[b-o3ounmaxb0] { position: sticky; top: 0; z-index: 1; color: var(--muted); background: var(--surface-muted); font-size: .7rem; font-weight: 700; }
.source-sequence-table tbody tr[b-o3ounmaxb0] { cursor: pointer; }
.source-sequence-table tbody tr:hover[b-o3ounmaxb0],
.source-sequence-table tbody tr:focus-visible[b-o3ounmaxb0] { background: color-mix(in srgb, var(--accent, #4f7cff) 9%, transparent); outline: 0; }
.source-sequence-table tbody tr:last-child td[b-o3ounmaxb0] { border-bottom: 0; }
.source-sequence-empty[b-o3ounmaxb0] { padding: 22px 10px !important; color: var(--muted); text-align: center !important; }

/* 列表选择弹窗中当前选中行高亮。 */
[b-o3ounmaxb0] .row-selected {
    background: var(--bg-accent, rgba(59, 130, 246, 0.08));
}

.seq-chip[b-o3ounmaxb0] {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: var(--radius-full, 999px);
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    white-space: nowrap;
}

.seq-chip.ok[b-o3ounmaxb0] {
    color: var(--success);
    background: color-mix(in srgb, var(--success) 12%, transparent);
}

.seq-chip.muted[b-o3ounmaxb0] {
    color: var(--text-muted, #8a8f98);
    background: color-mix(in srgb, var(--text-muted, #8a8f98) 12%, transparent);
}

.seq-chip.fallback[b-o3ounmaxb0] {
    color: var(--warning);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warning) 45%, transparent);
}

/* 需求 #8 可用性联动：探活失败序列的「N 不可用」chip（2026-10-15）。 */
.seq-chip.unavailable[b-o3ounmaxb0] {
    color: var(--danger, #dc2626);
    background: color-mix(in srgb, var(--danger, #dc2626) 12%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--danger, #dc2626) 45%, transparent);
}

@media (max-width: 680px) {
    .source-sequence-menu[b-o3ounmaxb0] { min-width: 0; max-height: var(--source-sequence-menu-max, min(360px, 56vh)); }
}

/* ---- 上游序列池：独立字段列（优先级 → 并发 → RPM → TPM） ---- */
.pool-sequence-table[b-o3ounmaxb0] { min-width: 1120px; }
.pool-sequence-table .schedule-column[b-o3ounmaxb0] { min-width: 110px; text-align: center; }
.pool-sequence-table .limit-value[b-o3ounmaxb0] {
    display: inline-block;
    min-width: 72px;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.pool-sequence-table .limit-value.inherited[b-o3ounmaxb0] {
    color: var(--muted);
}

.pool-sequence-table .limit-value.overridden[b-o3ounmaxb0] {
    font-weight: 700;
}
/* /Components/NotificationSettings.razor.rz.scp.css */
.notification-card[b-rqweant213],
.notify-email-list[b-rqweant213] {
    display: grid;
    gap: 1rem;
}

.notification-card > header h2[b-rqweant213] {
    margin: 0;
    color: var(--text);
    font-size: .98rem;
}

.notify-email-row[b-rqweant213] {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto auto;
    align-items: center;
    gap: .7rem;
    padding: .7rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface-soft);
}

.notify-enabled[b-rqweant213] {
    display: flex;
    align-items: center;
    gap: .35rem;
    color: var(--muted);
    font-size: .68rem;
}

.notify-enabled input[b-rqweant213] { width: 17px; height: 17px; accent-color: var(--primary); }
.notify-email-row > input[b-rqweant213] { width: 100%; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }
.notify-email-row > input:focus[b-rqweant213] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.verified-badge[b-rqweant213] { padding: .2rem .45rem; color: #047857; background: #d1fae5; border-radius: 999px; font-size: .6rem; white-space: nowrap; }
.add-email[b-rqweant213] { width: fit-content; }

@media (max-width: 640px) {
    .notify-email-row[b-rqweant213] { grid-template-columns: auto 1fr auto; }
    .verified-badge[b-rqweant213] { grid-column: 2; width: fit-content; }
}
/* /Components/PlatformQuotaMatrix.razor.rz.scp.css */
.quota-section[b-2cfpo4qf5c] {
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.quota-heading h3[b-2cfpo4qf5c] { margin: 0; font-size: .9rem; }
.quota-heading p[b-2cfpo4qf5c] { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.quota-table-wrap[b-2cfpo4qf5c] { overflow-x: auto; }
.quota-table[b-2cfpo4qf5c] { width: 100%; min-width: 560px; border-collapse: collapse; }
.quota-table th[b-2cfpo4qf5c],
.quota-table td[b-2cfpo4qf5c] { padding: .5rem; text-align: left; border-bottom: 1px solid var(--line); }
.quota-table th[b-2cfpo4qf5c] { color: var(--muted); font-size: .65rem; font-weight: 700; }
.quota-table code[b-2cfpo4qf5c] { color: var(--ink); font-size: .7rem; }
.quota-table input[b-2cfpo4qf5c] { width: 100%; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }
.quota-table input:focus[b-2cfpo4qf5c] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
/* /Components/QuickDateRange.razor.rz.scp.css */
.quick-date-range[b-cw3alvsxw7] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
    color: var(--ink, #272727);
    font-size: 14px;
}

.quick-date-label[b-cw3alvsxw7] { color: var(--muted, #666); white-space: nowrap; }

.quick-date-select-wrap[b-cw3alvsxw7] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 190px;
    max-width: 100%;
    min-height: 40px;
    padding: 0 10px;
    color: var(--ink, #272727);
    background: var(--surface, #fff);
    border: 1px solid var(--line, #d7dce2);
    border-radius: 6px;
}

.quick-date-select-wrap:focus-within[b-cw3alvsxw7] { border-color: var(--primary, #1677ff); }
.quick-date-select-wrap > .lucide-icon[b-cw3alvsxw7] { flex: 0 0 auto; color: var(--muted, #666); }

.quick-date-select[b-cw3alvsxw7] {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 7px 0;
    color: inherit;
    background: transparent;
    border: 0;
    font: inherit;
    cursor: pointer;
    outline: 0;
    text-align: left;
}

.quick-date-select > span[b-cw3alvsxw7] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-date-select[b-cw3alvsxw7]  svg { flex: 0 0 auto; color: var(--muted, #666); }

/* 点外部关闭：透明蒙层垫在菜单下（z 39 < 菜单 40）。 */
.quick-date-backdrop[b-cw3alvsxw7] {
    position: fixed;
    z-index: 39;
    inset: 0;
    background: transparent;
}

.quick-date-menu[b-cw3alvsxw7] {
    position: absolute;
    z-index: 40;
    top: calc(100% + 6px);
    left: 0;
    display: grid;
    /* minmax(0,1fr)：隐式 auto 轨道会按 chips 的 max-content 撑到容器外（实测 441px>320px），
       显式单轨钉住容器宽，chips 才能正常换行。 */
    grid-template-columns: minmax(0, 1fr);
    width: max(100%, 360px);
    padding: 10px;
    gap: 9px;
    color: var(--ink, #272727);
    background: var(--surface, #fff);
    border: 1px solid var(--line, #d7dce2);
    border-radius: 8px;
    box-shadow: var(--popover-shadow, 0 14px 38px rgba(18, 28, 24, .14));
}

.quick-date-tabs[b-cw3alvsxw7] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--line, #d7dce2);
}

.quick-date-tabs button[b-cw3alvsxw7] {
    min-height: 34px;
    padding: 0 10px;
    color: var(--muted, #666);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.quick-date-tabs button.active[b-cw3alvsxw7] {
    color: var(--primary-strong, #1677ff);
    border-bottom-color: var(--primary-strong, #1677ff);
}

.quick-date-tabs button:focus-visible[b-cw3alvsxw7] {
    outline: 2px solid var(--primary, #1677ff);
    outline-offset: -2px;
    border-radius: 4px;
}

.quick-date-chips[b-cw3alvsxw7] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.quick-date-chip[b-cw3alvsxw7] {
    min-height: 34px;
    padding: 0 12px;
    color: var(--ink, #272727);
    background: var(--surface, #fff);
    border: 1px solid var(--line, #d7dce2);
    border-radius: 6px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.quick-date-chip:hover[b-cw3alvsxw7] { color: var(--primary, #1677ff); border-color: var(--primary, #1677ff); }
.quick-date-chip:focus-visible[b-cw3alvsxw7] { outline: 2px solid var(--primary, #1677ff); outline-offset: 1px; }

.quick-date-chip.selected[b-cw3alvsxw7],
.quick-date-chip.selected:hover[b-cw3alvsxw7] {
    color: #fff;
    background: var(--primary, #1677ff);
    border-color: var(--primary, #1677ff);
}

.quick-date-custom[b-cw3alvsxw7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding-top: 9px;
    border-top: 1px dashed var(--line, #d7dce2);
}

.quick-date-date-field[b-cw3alvsxw7] {
    display: flex;
    flex: 1 1 150px;
    width: auto;
    min-width: 0;
    max-width: 100%;
    min-height: 36px;
    padding: 0 8px;
    background: var(--surface, #fff);
    border: 1px solid var(--line, #d7dce2);
    border-radius: 6px;
}

.quick-date-date-field input[b-cw3alvsxw7] {
    width: 100%;
    min-width: 0;
    padding: 0;
    color: var(--ink, #333);
    background: transparent;
    border: 0;
    font: inherit;
    outline: 0;
}

.quick-date-date-field input[b-cw3alvsxw7]::-webkit-calendar-picker-indicator { opacity: .55; }
.quick-date-arrow[b-cw3alvsxw7] { color: #a6abb2; font-size: 18px; line-height: 1; }
.quick-date-apply[b-cw3alvsxw7] { min-height: 36px; padding: 7px 14px; border-radius: 5px; }

.sr-only[b-cw3alvsxw7] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 760px) {
    .quick-date-menu[b-cw3alvsxw7] { width: min(92vw, 360px); }
    .quick-date-date-field[b-cw3alvsxw7] { flex: 1 1 100%; }
}
/* /Components/RateTrendChart.razor.rz.scp.css */
/* 速率走势图体（RateTrendChart）作用域样式：自 AdminOps.razor.css 走势卡同名规则原量搬移
   （Blazor CSS isolation 下共享组件拿不到 AdminOps 的作用域样式，跨页必须自带同款）。
   取值全部为既有令牌/既有量——图表六色经 OpsChartPalette ↔ --chart-* 一一对应，无新增量值。 */
.ops-trendbody[b-vm64dii8vn] { padding: 8px 12px 10px; }
.ops-trend-plot[b-vm64dii8vn] { min-width: 0; }

.ops-chart-legend[b-vm64dii8vn] {
    display: flex;
    min-width: 0;
    min-height: 34px;
    padding: 0 10px 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 18px;
    color: var(--ink);
    font-size: .76rem;
}

.ops-chart-legend span[b-vm64dii8vn] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.ops-chart-legend i[b-vm64dii8vn] {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 2px;
}

/* 蓝柱=量（RPM）· 橙线=TPM，与走势卡 combo 双色同一对令牌。 */
.ops-chart-legend .combo-bar[b-vm64dii8vn] { background: var(--chart-volume); }
.ops-chart-legend .combo-line[b-vm64dii8vn] { background: var(--chart-quality); }

/* 图表悬停提示：深浅主题走令牌（与 AdminOps 走势卡 tooltip 同款）。 */
.ops-chart-tooltip[b-vm64dii8vn] { padding: 3px 4px; color: var(--ink); font-size: .72rem; }
/* /Components/SecurityAdvancedSettings.razor.rz.scp.css */
.security-advanced-card[b-gxnsh1bpq5] {
    display: grid;
    gap: 1.1rem;
}

.security-advanced-card > header h2[b-gxnsh1bpq5] {
    margin: 0;
    color: var(--text);
    font-size: .98rem;
}

.security-provider-block[b-gxnsh1bpq5] {
    display: grid;
    gap: .9rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.security-provider-block:first-of-type[b-gxnsh1bpq5] {
    padding-top: 0;
    border-top: 0;
}

.security-provider-grid[b-gxnsh1bpq5] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
}

.security-mode-card[b-gxnsh1bpq5] {
    display: grid;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface-soft);
}

.security-mode-card h3[b-gxnsh1bpq5] {
    margin: 0;
    font-size: .95rem;
}

@media (max-width: 760px) {
    .security-provider-grid[b-gxnsh1bpq5] {
        grid-template-columns: 1fr;
    }
}
/* /Components/SecuritySettings.razor.rz.scp.css */
.security-card[b-4q8u3lqqvq] {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(20, 35, 29, .03);
}

.security-card-header[b-4q8u3lqqvq] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--line);
}

.security-card-header h2[b-4q8u3lqqvq] {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
}

.security-card-header p[b-4q8u3lqqvq] {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .78rem;
}

.security-card-body[b-4q8u3lqqvq] {
    padding: 22px 24px;
}

.security-stack[b-4q8u3lqqvq] {
    display: grid;
    gap: 22px;
}

.security-toggle-row[b-4q8u3lqqvq],
.security-status-row[b-4q8u3lqqvq],
.notify-email-row[b-4q8u3lqqvq],
.passkey-row[b-4q8u3lqqvq] {
    display: flex;
    align-items: center;
}

.security-toggle-row[b-4q8u3lqqvq] {
    justify-content: space-between;
    gap: 16px;
}

.security-toggle-row > label:first-child[b-4q8u3lqqvq],
.field-label[b-4q8u3lqqvq] {
    color: var(--ink);
    font-size: .79rem;
    font-weight: 680;
}

.switch-control[b-4q8u3lqqvq],
.mini-switch[b-4q8u3lqqvq] {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    cursor: pointer;
}

.switch-control[b-4q8u3lqqvq] {
    width: 44px;
    height: 24px;
}

.mini-switch[b-4q8u3lqqvq] {
    width: 36px;
    height: 20px;
}

.switch-control input[b-4q8u3lqqvq],
.mini-switch input[b-4q8u3lqqvq] {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
}

.switch-control span[b-4q8u3lqqvq],
.mini-switch span[b-4q8u3lqqvq] {
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--muted) 34%, var(--surface-soft));
    border-radius: 999px;
    transition: background .15s ease;
}

.switch-control span[b-4q8u3lqqvq]::after,
.mini-switch span[b-4q8u3lqqvq]::after {
    position: absolute;
    content: "";
    background: #fff;
    border: 1px solid rgba(36, 52, 46, .16);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(20, 30, 26, .2);
    transition: transform .15s ease;
}

.switch-control span[b-4q8u3lqqvq]::after {
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
}

.mini-switch span[b-4q8u3lqqvq]::after {
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
}

.switch-control input:checked + span[b-4q8u3lqqvq],
.mini-switch input:checked + span[b-4q8u3lqqvq] {
    background: var(--primary);
}

.switch-control input:checked + span[b-4q8u3lqqvq]::after { transform: translateX(20px); }
.mini-switch input:checked + span[b-4q8u3lqqvq]::after { transform: translateX(16px); }

.switch-control input:focus-visible + span[b-4q8u3lqqvq],
.mini-switch input:focus-visible + span[b-4q8u3lqqvq] {
    outline: 3px solid color-mix(in srgb, var(--primary) 25%, transparent);
    outline-offset: 2px;
}

.form-field small[b-4q8u3lqqvq] {
    margin-left: 7px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 500;
}

.money-input-row[b-4q8u3lqqvq],
.notify-email-add-row[b-4q8u3lqqvq],
.input-action-row[b-4q8u3lqqvq],
.secret-copy-row[b-4q8u3lqqvq] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
}

.money-input-row > span[b-4q8u3lqqvq] {
    color: var(--muted);
    font-size: 1rem;
}

.money-input-row input[b-4q8u3lqqvq],
.notify-email-add-row input[b-4q8u3lqqvq],
.compact-code-input[b-4q8u3lqqvq],
.input-action-row input[b-4q8u3lqqvq],
.passkey-add-form input[b-4q8u3lqqvq],
.delete-passkey-form input[b-4q8u3lqqvq],
.otp-code-input[b-4q8u3lqqvq] {
    width: 100%;
    min-width: 0;
    height: var(--form-control-height);
    padding: 7px 10px;
    color: var(--form-control-color);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
}

.money-input-row input:focus[b-4q8u3lqqvq],
.notify-email-add-row input:focus[b-4q8u3lqqvq],
.compact-code-input:focus[b-4q8u3lqqvq],
.input-action-row input:focus[b-4q8u3lqqvq],
.passkey-add-form input:focus[b-4q8u3lqqvq],
.delete-passkey-form input:focus[b-4q8u3lqqvq],
.otp-code-input:focus[b-4q8u3lqqvq] {
    border-color: var(--form-control-focus);
    outline: 0;
    box-shadow: 0 0 0 3px var(--form-control-focus-ring);
}

.notify-email-section[b-4q8u3lqqvq] {
    display: grid;
    gap: 10px;
}

.warning-hint[b-4q8u3lqqvq],
.warning-text[b-4q8u3lqqvq] {
    color: #a06b13;
}

.warning-hint[b-4q8u3lqqvq] {
    margin: -5px 0 1px;
    font-size: .69rem;
}

.notify-email-list[b-4q8u3lqqvq] {
    display: grid;
    gap: 8px;
}

.notify-email-row[b-4q8u3lqqvq] {
    min-height: 46px;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    background: var(--surface-soft);
    border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
    border-radius: 6px;
}

.notify-email-row.pending[b-4q8u3lqqvq] {
    background: color-mix(in srgb, #fff3cf 42%, var(--surface));
    border-color: color-mix(in srgb, #d9a938 42%, var(--line));
}

.notify-email-main[b-4q8u3lqqvq],
.notify-email-actions[b-4q8u3lqqvq] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}

.notify-email-actions[b-4q8u3lqqvq] {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.notify-address[b-4q8u3lqqvq] {
    min-width: 0;
    overflow: hidden;
    font-size: .77rem;
    text-overflow: ellipsis;
}

.compact-code-input[b-4q8u3lqqvq] {
    width: 90px;
    height: 31px;
    padding: 4px 8px;
    font-size: .74rem;
}

.text-button[b-4q8u3lqqvq] {
    min-height: 28px;
    padding: 3px 5px;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 4px;
    font-size: .7rem;
    font-weight: 650;
}

.text-button:hover:not(:disabled)[b-4q8u3lqqvq] { color: var(--ink); background: var(--surface-hover); }
.primary-text[b-4q8u3lqqvq] { color: var(--primary); }
.danger-text[b-4q8u3lqqvq] { color: var(--danger); }
.muted[b-4q8u3lqqvq] { color: var(--muted); }
.countdown[b-4q8u3lqqvq] { color: var(--muted); font-size: .67rem; }

.notify-email-add-row[b-4q8u3lqqvq] {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 2px;
}

.security-loading[b-4q8u3lqqvq] {
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--muted);
    font-size: .77rem;
}

.security-status-row[b-4q8u3lqqvq] {
    min-height: 64px;
    gap: 14px;
}

.security-status-row.with-action .security-status-copy[b-4q8u3lqqvq] {
    min-width: 0;
    flex: 1 1 auto;
}

.security-status-row strong[b-4q8u3lqqvq] {
    display: block;
    font-size: .86rem;
}

.security-status-row p[b-4q8u3lqqvq] {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: .73rem;
}

.security-status-icon[b-4q8u3lqqvq] {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
}

.security-status-icon.neutral[b-4q8u3lqqvq] { color: var(--muted); background: var(--surface-soft); }
.security-status-icon.success[b-4q8u3lqqvq] { color: #25825d; background: #e8f6ef; }

.danger-outline[b-4q8u3lqqvq] {
    color: var(--danger);
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--danger) 56%, var(--line));
}

.danger-outline:hover:not(:disabled)[b-4q8u3lqqvq],
.ghost-danger:hover:not(:disabled)[b-4q8u3lqqvq] {
    color: #fff;
    background: var(--danger);
    border-color: var(--danger);
}

.passkey-add-form[b-4q8u3lqqvq] {
    display: grid;
    gap: 15px;
    padding: 16px;
    background: color-mix(in srgb, var(--surface-soft) 72%, var(--surface));
    border: 1px solid var(--line);
    border-radius: 6px;
}

.two-column-form[b-4q8u3lqqvq] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.passkey-add-form .form-field[b-4q8u3lqqvq],
.delete-passkey-form .form-field[b-4q8u3lqqvq] {
    margin: 0;
}

.form-actions[b-4q8u3lqqvq],
.modal-action-row[b-4q8u3lqqvq] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.security-empty[b-4q8u3lqqvq] {
    padding: 27px 16px;
    color: var(--muted);
    text-align: center;
    border: 1px dashed var(--line);
    border-radius: 6px;
    font-size: .77rem;
}

.passkey-list[b-4q8u3lqqvq] {
    display: grid;
}

.passkey-row[b-4q8u3lqqvq] {
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.passkey-row:first-child[b-4q8u3lqqvq] { padding-top: 0; }
.passkey-row:last-child[b-4q8u3lqqvq] { padding-bottom: 0; border-bottom: 0; }

.passkey-icon[b-4q8u3lqqvq] {
    display: grid;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    place-items: center;
    color: var(--primary);
    background: var(--primary-soft);
    border-radius: 10px;
}

.passkey-main[b-4q8u3lqqvq] {
    min-width: 0;
    flex: 1 1 auto;
}

.passkey-title[b-4q8u3lqqvq] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

.passkey-title strong[b-4q8u3lqqvq] {
    overflow: hidden;
    font-size: .81rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.passkey-main p[b-4q8u3lqqvq] {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: .68rem;
}

.passkey-actions[b-4q8u3lqqvq] {
    display: flex;
    gap: 7px;
}

.ghost-danger[b-4q8u3lqqvq] {
    color: var(--danger);
    background: transparent;
    border-color: transparent;
}

.modal-intro[b-4q8u3lqqvq] {
    margin: 0 0 20px;
    color: var(--muted);
    font-size: .8rem;
}

.modal-intro.centered[b-4q8u3lqqvq] { text-align: center; }

.totp-modal[b-4q8u3lqqvq] {
    display: grid;
    gap: 15px;
}

.totp-modal .form-field[b-4q8u3lqqvq] {
    margin: 0;
}

.input-action-row[b-4q8u3lqqvq] {
    grid-template-columns: minmax(0, 1fr) auto;
}

.totp-qr[b-4q8u3lqqvq] {
    display: flex;
    justify-content: center;
}

.totp-qr img[b-4q8u3lqqvq] {
    width: 214px;
    height: 214px;
    padding: 10px;
    background: #fff;
    border: 1px solid #dfe5e1;
    border-radius: 10px;
}

.manual-entry-label[b-4q8u3lqqvq] {
    margin: 0;
    color: var(--muted);
    text-align: center;
    font-size: .73rem;
}

.secret-copy-row[b-4q8u3lqqvq] {
    grid-template-columns: minmax(0, 1fr) auto;
    width: min(100%, 350px);
    margin: 0 auto;
    padding: 7px 7px 7px 12px;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
}

.secret-copy-row code[b-4q8u3lqqvq] {
    min-width: 0;
    overflow: auto;
    color: var(--ink);
    font-size: .76rem;
}

.otp-field[b-4q8u3lqqvq] {
    justify-items: center;
}

.otp-code-input[b-4q8u3lqqvq] {
    width: min(100%, 260px);
    height: 54px;
    padding-left: 28px;
    text-align: center;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 1.35rem;
    font-weight: 720;
    letter-spacing: .55em;
}

.danger-modal-icon[b-4q8u3lqqvq] {
    display: grid;
    width: 48px;
    height: 48px;
    margin: 0 auto;
    place-items: center;
    color: var(--danger);
    background: color-mix(in srgb, var(--danger) 12%, var(--surface));
    border-radius: 50%;
}

.delete-passkey-form[b-4q8u3lqqvq] {
    display: grid;
    gap: 18px;
}

.delete-passkey-form > p[b-4q8u3lqqvq] {
    margin: 0;
    color: var(--muted);
    font-size: .8rem;
}

.muted-text[b-4q8u3lqqvq],
.warning-text[b-4q8u3lqqvq] {
    margin: 0;
    font-size: .78rem;
}

@media (max-width: 680px) {
    .security-card-header[b-4q8u3lqqvq],
    .security-card-body[b-4q8u3lqqvq] {
        padding-right: 18px;
        padding-left: 18px;
    }

    .passkey-header[b-4q8u3lqqvq],
    .security-status-row.with-action[b-4q8u3lqqvq],
    .notify-email-row[b-4q8u3lqqvq],
    .passkey-row[b-4q8u3lqqvq] {
        align-items: stretch;
        flex-direction: column;
    }

    .passkey-header .button[b-4q8u3lqqvq],
    .security-status-row.with-action .button[b-4q8u3lqqvq],
    .passkey-actions .button[b-4q8u3lqqvq] {
        width: 100%;
    }

    .two-column-form[b-4q8u3lqqvq] {
        grid-template-columns: 1fr;
    }

    .notify-email-actions[b-4q8u3lqqvq] {
        justify-content: flex-start;
    }

    .money-input-row[b-4q8u3lqqvq] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .money-input-row .button[b-4q8u3lqqvq] {
        grid-column: 1 / -1;
        width: 100%;
    }

    .input-action-row[b-4q8u3lqqvq],
    .notify-email-add-row[b-4q8u3lqqvq] {
        grid-template-columns: 1fr;
    }

    .input-action-row .button[b-4q8u3lqqvq],
    .notify-email-add-row .button[b-4q8u3lqqvq] {
        width: 100%;
    }
}
/* /Components/Shared/CodexManifestGroupEditor.razor.rz.scp.css */
.manifest-editor[b-7gx5d4sd35] { border: 1px solid var(--line); color: var(--ink); border-radius: 10px; padding: 16px; margin-block: 16px; }
.manifest-editor p[b-7gx5d4sd35] { font-size: 13px; line-height: 1.6; color: var(--muted); }
.manifest-toggle[b-7gx5d4sd35] { display: flex; gap: 8px; align-items: center; margin-block: 12px; }
.manifest-add[b-7gx5d4sd35], .manifest-sources li[b-7gx5d4sd35], .manifest-sources li > div[b-7gx5d4sd35] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.manifest-add select[b-7gx5d4sd35] { min-width: 0; flex: 1 1 190px; max-width: 100%; padding: 8px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; }
.manifest-sources[b-7gx5d4sd35] { padding-left: 0; list-style: none; }
.manifest-sources li[b-7gx5d4sd35] { justify-content: space-between; padding-block: 8px; border-bottom: 1px solid var(--line); }
.manifest-sources li > span[b-7gx5d4sd35] { overflow-wrap: anywhere; flex: 1 1 180px; }
/* /Components/SupportedModelChip.razor.rz.scp.css */
.supported-model-host[b-onhzvz1y0n] {
    position: relative;
    display: inline-flex;
    max-width: 100%;
}

.supported-model-chip[b-onhzvz1y0n] {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    gap: .3rem;
    padding: .24rem .48rem;
    color: #40514a;
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.25;
    background: #f4f7f5;
    border: 1px solid #dae2de;
    border-radius: .36rem;
}

.supported-model-chip > span[b-onhzvz1y0n] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.supported-model-chip:hover[b-onhzvz1y0n],
.supported-model-chip:focus-visible[b-onhzvz1y0n] {
    background: #edf5f1;
    border-color: #bcd3c9;
    outline: none;
}

.platform-anthropic .supported-model-chip[b-onhzvz1y0n] { color: #8a521f; background: #fff8ef; border-color: #efcfac; }
.platform-openai .supported-model-chip[b-onhzvz1y0n] { color: #17634a; background: #eef9f4; border-color: #b9ddcf; }
.platform-gemini .supported-model-chip[b-onhzvz1y0n] { color: #245d9a; background: #f0f7ff; border-color: #bdd6f0; }
.platform-antigravity .supported-model-chip[b-onhzvz1y0n] { color: #74439a; background: #faf4ff; border-color: #dcc4ec; }
.platform-grok .supported-model-chip[b-onhzvz1y0n] { color: #42484a; background: #f4f5f5; border-color: #d1d5d6; }
.platform-composite .supported-model-chip[b-onhzvz1y0n] { color: #16697a; background: #effbfc; border-color: #b8dde3; }

.supported-model-popover[b-onhzvz1y0n] {
    position: absolute;
    right: 0;
    top: calc(100% + .45rem);
    z-index: 80;
    display: none;
    width: min(21rem, calc(100vw - 2.5rem));
    overflow: hidden;
    color: var(--ink);
    text-align: left;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: .55rem;
    box-shadow: var(--popover-shadow);
    pointer-events: none;
}

.supported-model-host:hover .supported-model-popover[b-onhzvz1y0n],
.supported-model-host:focus-within .supported-model-popover[b-onhzvz1y0n] {
    display: block;
}

.pricing-popover-header[b-onhzvz1y0n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .62rem .75rem;
    background: var(--surface-soft);
    border-bottom: 1px solid var(--line);
}

.pricing-popover-header strong[b-onhzvz1y0n] {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pricing-popover-header > span[b-onhzvz1y0n] {
    flex: 0 0 auto;
    padding: .1rem .35rem;
    color: var(--muted);
    font-size: .61rem;
    font-weight: 700;
    text-transform: uppercase;
    background: color-mix(in srgb, var(--surface) 80%, transparent);
    border-radius: .24rem;
}

.pricing-popover-body[b-onhzvz1y0n] {
    display: grid;
    gap: .42rem;
    padding: .72rem .78rem;
}

.pricing-row[b-onhzvz1y0n] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    color: var(--muted);
    font-size: .71rem;
}

.pricing-row strong[b-onhzvz1y0n] {
    color: var(--ink);
    font-size: .71rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.pricing-row small[b-onhzvz1y0n] {
    color: var(--muted);
    font-size: .62rem;
    font-weight: 500;
}

.pricing-empty[b-onhzvz1y0n] {
    color: var(--muted);
    font-size: .73rem;
}

.pricing-intervals[b-onhzvz1y0n] {
    display: grid;
    gap: .35rem;
    margin-top: .15rem;
    padding-top: .55rem;
    border-top: 1px solid var(--line);
}

.pricing-intervals > strong[b-onhzvz1y0n] {
    color: var(--muted);
    font-size: .69rem;
}

.interval-row[b-onhzvz1y0n] {
    font-size: .67rem;
}
/* /Components/ToggleField.razor.rz.scp.css */
.settings-toggle-field[b-6sumvnkoxf] {
    display: flex;
    min-width: 0;
    min-height: 66px;
    align-items: flex-start;
    gap: 12px;
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface);
    cursor: pointer;
}

.settings-toggle-control[b-6sumvnkoxf] {
    display: flex;
    flex: 0 0 auto;
    padding-top: 2px;
}

.settings-toggle-control[b-6sumvnkoxf]  input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--primary);
}

.settings-toggle-copy[b-6sumvnkoxf] {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.settings-toggle-copy strong[b-6sumvnkoxf] {
    color: var(--text);
    font-size: .8rem;
    line-height: 1.35;
}

.settings-toggle-copy small[b-6sumvnkoxf] {
    color: var(--muted);
    font-size: .71rem;
    line-height: 1.5;
}
/* /Components/UpstreamModelSequenceTab.razor.rz.scp.css */
.model-sequence-panel[b-6b4pbc2i30] { width: 100%; }
/* ---- 上游厂商序列 / 模型序列扩展列 ---- */
.vendor-sequence-table th:first-child[b-6b4pbc2i30], .vendor-sequence-table td:first-child[b-6b4pbc2i30] { min-width: 44px; width: 44px; padding: 4px 6px; text-align: center; }
.vendor-row[b-6b4pbc2i30] { cursor: pointer; }
.vendor-row.expanded[b-6b4pbc2i30] { background: color-mix(in srgb, var(--surface-muted) 70%, transparent); }
.vendor-sequence-no[b-6b4pbc2i30] { color: var(--muted); font-size: .74rem; }
.vendor-keys-row > td[b-6b4pbc2i30] { padding: 0 !important; background: color-mix(in srgb, var(--surface-muted) 45%, var(--surface)); }
.vendor-keys-table[b-6b4pbc2i30] { width: 100%; border-collapse: collapse; font-size: .78rem; }
.vendor-keys-table th[b-6b4pbc2i30] { height: 36px; padding: 6px 14px; color: var(--muted); background: transparent; font-size: .72rem; }
.vendor-keys-table td[b-6b4pbc2i30] { height: 40px; padding: 6px 14px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.vendor-keys-table tr:last-child td[b-6b4pbc2i30] { border-bottom: 0; }
.vendor-keys-empty[b-6b4pbc2i30] { padding: 14px; color: var(--muted); font-size: .8rem; }
.sequence-no[b-6b4pbc2i30] { color: var(--muted); font-size: .72rem; }
.vendor-cell[b-6b4pbc2i30] { display: grid; min-width: 150px; gap: 3px; }
.vendor-cell code[b-6b4pbc2i30] { color: var(--muted); font-size: .72rem; }
.pricing-cell[b-6b4pbc2i30] { display: grid; min-width: 200px; gap: 3px; }
.pricing-summary[b-6b4pbc2i30] { font-variant-numeric: tabular-nums; }
.sequence-editor-grid[b-6b4pbc2i30], .vendor-editor-grid[b-6b4pbc2i30] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* 模型目录拉取的行内 loading 层（2026-10-20 用户反馈）：盖在下拉上方阻断交互；
   spinner 复用全局 .spinner（border-top = var(--primary)，默认蓝色 accent），文字同色。 */
.sequence-model-combo-shell[b-6b4pbc2i30] { position: relative; }
.combo-loading-layer[b-6b4pbc2i30] {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    color: var(--primary);
    background: color-mix(in srgb, var(--surface) 85%, transparent);
    font-size: .8rem;
    font-weight: 600;
    cursor: progress;
}
@media (max-width: 760px) {
    .sequence-editor-grid[b-6b4pbc2i30], .vendor-editor-grid[b-6b4pbc2i30] { grid-template-columns: 1fr; }
}
.model-sequence-toolbar[b-6b4pbc2i30] { display: flex; min-height: 64px; padding: 12px 14px; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px 10px 0 0; }
.model-sequence-search[b-6b4pbc2i30] { width: min(100%, 300px); height: 38px; }
.model-sequence-vendor-filter[b-6b4pbc2i30] { display: flex; min-height: 38px; align-items: center; gap: 7px; color: var(--muted); font-size: .78rem; }
.model-sequence-vendor-filter span[b-6b4pbc2i30] { white-space: nowrap; }
.model-sequence-vendor-filter select[b-6b4pbc2i30] { min-width: 170px; min-height: 38px; padding: 7px 28px 7px 10px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; font-size: .8rem; }
.model-sequence-toolbar .account-result-count[b-6b4pbc2i30] { margin-left: auto; padding: 4px 8px; color: var(--muted); background: var(--surface-muted); border-radius: 999px; font-size: .8rem; white-space: nowrap; }
.model-sequence-actions[b-6b4pbc2i30] { display: flex; align-items: center; gap: 8px; }
.model-sequence-warning[b-6b4pbc2i30] { margin: 10px 0 0; border-radius: 8px; }
.model-sequence-table-shell[b-6b4pbc2i30] { overflow: visible; background: var(--surface); border: 1px solid var(--line); border-top: 0; }
.model-sequence-table-shell .accounts-table-scroll[b-6b4pbc2i30] { width: 100%; overflow-x: auto; overflow-y: visible; }
.model-sequence-table[b-6b4pbc2i30] { width: 100%; min-width: 900px; border-collapse: collapse; color: var(--ink); font-size: .83rem; }
.model-sequence-table th[b-6b4pbc2i30], .model-sequence-table td[b-6b4pbc2i30] { height: 48px; min-width: 110px; padding: 9px 11px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; white-space: nowrap; }
.model-sequence-table th[b-6b4pbc2i30] { height: 43px; color: var(--muted); background: var(--surface-muted); font-size: .76rem; font-weight: 700; }
.model-sequence-table th:first-child[b-6b4pbc2i30], .model-sequence-table td:first-child[b-6b4pbc2i30] { min-width: 150px; }
.model-sequence-table tbody tr:hover[b-6b4pbc2i30] { background: color-mix(in srgb, var(--surface-muted) 60%, transparent); }
.model-sequence-table tbody tr:last-child td[b-6b4pbc2i30] { border-bottom: 0; }
.model-sequence-name[b-6b4pbc2i30] { display: grid; min-width: 240px; gap: 3px; }
.model-sequence-name strong[b-6b4pbc2i30] { overflow: hidden; text-overflow: ellipsis; }
.model-sequence-name code[b-6b4pbc2i30] { overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; }
.model-sequence-name small[b-6b4pbc2i30], .model-sequence-action-hint[b-6b4pbc2i30] { color: var(--muted); font-size: .72rem; }
.model-sequence-billing[b-6b4pbc2i30] { color: var(--ink); font-variant-numeric: tabular-nums; }
.model-sequence-action-hint[b-6b4pbc2i30] { white-space: nowrap; }
.capacity-cell[b-6b4pbc2i30] { display: grid; min-width: 130px; gap: 3px; }
.capacity-cell small[b-6b4pbc2i30] { color: var(--muted); font-size: .8rem; }
.status-badge[b-6b4pbc2i30] { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: .8rem; font-weight: 720; }
.status-badge.success[b-6b4pbc2i30] { color: var(--primary); background: var(--primary-soft); }
.status-badge.warning[b-6b4pbc2i30] { color: #b06d18; background: rgba(196,126,27,.13); }
.schedule-switch[b-6b4pbc2i30] { display: block; position: relative; width: 38px; height: 22px; margin: 0 auto; padding: 0; appearance: none; overflow: hidden; background: var(--line); border: 0; border-radius: 999px; box-sizing: border-box; line-height: 0; cursor: pointer; transition: background-color .18s ease; }
.schedule-switch[b-6b4pbc2i30]::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; content: ""; background: var(--surface); border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.25); transform: translateX(0); transition: transform .18s ease; }
.schedule-switch.on[b-6b4pbc2i30] { background: var(--primary); }
.schedule-switch.on[b-6b4pbc2i30]::after { transform: translateX(16px); }
.schedule-switch:disabled[b-6b4pbc2i30] { opacity: .55; }
@media (max-width: 760px) {
    .model-sequence-toolbar[b-6b4pbc2i30] { display: grid; grid-template-columns: 1fr auto; align-items: stretch; padding: 12px; }
    .model-sequence-search[b-6b4pbc2i30] { grid-column: 1 / -1; }
    .model-sequence-search[b-6b4pbc2i30], .model-sequence-vendor-filter[b-6b4pbc2i30], .model-sequence-vendor-filter select[b-6b4pbc2i30] { width: 100%; min-width: 0; }
    .model-sequence-vendor-filter[b-6b4pbc2i30] { display: grid; grid-template-columns: 1fr; align-items: stretch; gap: 5px; }
    .model-sequence-toolbar .account-result-count[b-6b4pbc2i30] { align-self: center; margin-left: 0; width: fit-content; }
    .model-sequence-actions[b-6b4pbc2i30] { justify-content: flex-end; }
    .model-sequence-actions .button[b-6b4pbc2i30] { min-width: 100px; }
    .model-sequence-table[b-6b4pbc2i30] { min-width: 920px; }
}
@media (max-width: 520px) {
    .model-sequence-toolbar[b-6b4pbc2i30] { grid-template-columns: 1fr; }
    .model-sequence-actions[b-6b4pbc2i30] { display: grid; grid-template-columns: 1fr 42px; }
    .model-sequence-actions .button[b-6b4pbc2i30], .model-sequence-actions .icon-button[b-6b4pbc2i30] { width: 100%; justify-content: center; }
    .model-sequence-table[b-6b4pbc2i30] { min-width: 860px; }
}

/* 「启用」开关列（2026-10-28 对齐 Providers 基准）：84px 窄列，列头/开关单元格居中。
   这里再压一层 .model-sequence-table 限定的同款规则，盖过本表 td 的 min-width:110px。 */
.model-sequence-table .schedule-column[b-6b4pbc2i30] { width: 84px; min-width: 84px; text-align: center !important; }

/* ---- 上游厂商选择弹窗（2026-11-10）----
   触发器与标准表单控件同高；弹窗内表格统一复用 AppGrid/DxGrid，外部分页沿用全站口径。 */
.vendor-select-trigger[b-6b4pbc2i30] {
    display: inline-flex;
    width: 100%;
    min-height: var(--form-control-height);
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 12px;
    color: var(--form-control-color);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.vendor-select-trigger:hover[b-6b4pbc2i30] { border-color: var(--form-control-focus); }
.vendor-select-trigger:focus-visible[b-6b4pbc2i30] { outline: 2px solid var(--form-control-focus); outline-offset: 2px; }
.vendor-select-trigger:disabled[b-6b4pbc2i30] { opacity: .6; cursor: not-allowed; }
.vendor-select-placeholder[b-6b4pbc2i30] { color: var(--form-control-placeholder); }

.readonly-form-control[b-6b4pbc2i30] {
    display: flex;
    min-height: var(--form-control-height);
    align-items: center;
    padding: 8px 12px;
    color: var(--muted);
    background: var(--surface-muted);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
}
.vendor-picker-body[b-6b4pbc2i30] { display: grid; gap: 12px; }
.vendor-picker-toolbar[b-6b4pbc2i30] { display: grid; grid-template-columns: auto minmax(240px, 1fr) auto; align-items: center; gap: 10px; }
.vendor-picker-toolbar label[b-6b4pbc2i30] { color: var(--muted); font-size: var(--management-list-header-font); font-weight: 700; }
.vendor-picker-count[b-6b4pbc2i30] { color: var(--muted); font-size: var(--management-list-pagination-font); white-space: nowrap; }
.vendor-picker-search[b-6b4pbc2i30] {
    width: 100%;
    min-height: var(--form-control-height);
    padding: 8px 10px;
    color: var(--form-control-color);
    background: var(--form-control-bg);
    border: 1px solid var(--form-control-border);
    border-radius: var(--form-control-radius);
    font: inherit;
}
.vendor-picker-search:focus[b-6b4pbc2i30] { border-color: var(--form-control-focus); outline: 2px solid var(--form-control-focus-ring); }
.vendor-picker-grid[b-6b4pbc2i30] { min-height: 280px; }
.vendor-picker-select[b-6b4pbc2i30] { min-height: 36px; }
.vendor-picker-empty[b-6b4pbc2i30] { padding: 14px; color: var(--muted); text-align: center; }
@media (max-width: 760px) {
    .vendor-picker-toolbar[b-6b4pbc2i30] { grid-template-columns: 1fr; align-items: stretch; }
}
/* /Components/UpstreamVendorSequenceTab.razor.rz.scp.css */
.vendor-key-summary[b-jjp0sqh1ak] {
    display: inline-flex;
    max-width: 220px;
    min-height: 30px;
    align-items: center;
    gap: 7px;
    padding: 4px 0;
    color: var(--ink);
    background: transparent;
    border: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.vendor-key-summary:hover:not(:disabled) span[b-jjp0sqh1ak] {
    color: var(--primary);
    text-decoration: underline;
}

.vendor-key-summary small[b-jjp0sqh1ak] {
    color: var(--muted);
    font-size: .74rem;
    white-space: nowrap;
}

/* 无 Key 厂商的行内新增入口：主色 + plus 图标（hover 下划线由 .vendor-key-summary:hover span 承接），
   取值沿用同单元格既有量（gap 7px / 字号继承 .83rem）。 */
.vendor-key-add[b-jjp0sqh1ak] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--primary);
    font-weight: 600;
    white-space: nowrap;
}

.vendor-key-summary:disabled[b-jjp0sqh1ak] {
    cursor: not-allowed;
    opacity: .65;
}

/* 「启用」开关列（2026-10-28 对齐 Providers 基准）：84px 窄列，列头/开关单元格居中。
   这里再压一层 .model-sequence-table 限定的同款规则，盖过本表 td 的 min-width:110px。 */
.model-sequence-table .schedule-column[b-jjp0sqh1ak] { width: 84px; min-width: 84px; text-align: center !important; }
/* /Components/UsageDistributionBarChart.razor.rz.scp.css */
.usage-distribution-chart[b-kvhm4yqafn],
.usage-distribution-empty[b-kvhm4yqafn] {
    width: 100%;
    height: 282px;
    min-width: 0;
}

.usage-distribution-empty[b-kvhm4yqafn] {
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: .8rem;
}

.usage-distribution-chart[b-kvhm4yqafn]  .dxc-arg-elements text,
.usage-distribution-chart[b-kvhm4yqafn]  .dxc-val-elements text {
    fill: var(--muted) !important;
    font-size: .72rem !important;
}

.usage-distribution-chart[b-kvhm4yqafn]  .dxbl-chart-tooltip-content-container,
.usage-distribution-chart[b-kvhm4yqafn]  .dxbl-chart-tooltip-pointer {
    color: var(--ink);
    background: var(--surface);
    border-color: var(--line);
}

.usage-distribution-tooltip[b-kvhm4yqafn] {
    display: grid;
    min-width: 180px;
    max-width: min(320px, 70vw);
    gap: 8px;
}

.usage-distribution-tooltip strong[b-kvhm4yqafn] {
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: .76rem;
}

.usage-distribution-tooltip dl[b-kvhm4yqafn] {
    display: grid;
    gap: 4px;
    margin: 0;
}

.usage-distribution-tooltip dl > div[b-kvhm4yqafn] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.usage-distribution-tooltip dt[b-kvhm4yqafn] {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 500;
}

.usage-distribution-tooltip dd[b-kvhm4yqafn] {
    margin: 0;
    color: var(--ink);
    font-size: .7rem;
    font-variant-numeric: tabular-nums;
    font-weight: 650;
}

@media (max-width: 560px) {
    .usage-distribution-chart[b-kvhm4yqafn],
    .usage-distribution-empty[b-kvhm4yqafn] {
        height: 264px;
    }
}
/* /Components/UsagePagination.razor.rz.scp.css */
.usage-pagination[b-4o3zceqptg] {
    display: flex;
    min-height: 46px;
    padding: 8px 2px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--muted);
    font-size: .72rem;
}

.page-size[b-4o3zceqptg],
.page-buttons[b-4o3zceqptg] { display: flex; align-items: center; gap: 7px; }
.page-size select[b-4o3zceqptg] { min-height: 32px; padding: 4px 26px 4px 8px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; font-size: .72rem; }
.page-number[b-4o3zceqptg] { min-width: 31px; height: 31px; padding: 0 7px; color: var(--muted); background: transparent; border: 1px solid transparent; border-radius: 6px; font-size: .72rem; }
.page-number:hover[b-4o3zceqptg] { background: var(--surface-soft); }
.page-number.active[b-4o3zceqptg] { color: #087f5b; background: #e7f6f0; border-color: #b9e2d2; font-weight: 700; }

@media (max-width: 620px) {
    .usage-pagination[b-4o3zceqptg] { flex-wrap: wrap; }
    .usage-pagination > span[b-4o3zceqptg] { order: -1; width: 100%; text-align: center; }
}
/* /Components/UseApiKeyModal.razor.rz.scp.css */
.use-key-layout[b-jszkpxkgxc] { display: grid; gap: 15px; }
.use-key-description[b-jszkpxkgxc] { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.55; }
/* 将导入动作放在配置方式切换下，用户可按客户端选择路径。 */
.setup-methods[b-jszkpxkgxc] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.setup-methods button[b-jszkpxkgxc] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.use-key-step[b-jszkpxkgxc] { display: grid; gap: 9px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; }
.use-key-step-head[b-jszkpxkgxc] { display: flex; align-items: flex-start; gap: 10px; }
.use-key-step-head strong[b-jszkpxkgxc] { font-size: .78rem; }
.use-key-step-head small[b-jszkpxkgxc] { display: block; color: var(--muted); font-size: .68rem; margin-top: 2px; line-height: 1.5; }
.use-key-step-no[b-jszkpxkgxc] { display: grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: .72rem; font-weight: 700; }
.use-key-step .tool-meta[b-jszkpxkgxc] { margin-left: 2px; }
/* 默认模型行（2026-10-14 用户需求）：标签 + 下拉 + 说明一行排布。 */
.use-key-model-row[b-jszkpxkgxc] { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.use-key-model-row label[b-jszkpxkgxc] { flex: none; font-size: .7rem; font-weight: 700; color: var(--ink); }
.use-key-model-row select[b-jszkpxkgxc] { min-width: 200px; max-width: 100%; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); font: inherit; font-size: .68rem; }
.use-key-model-row select:focus[b-jszkpxkgxc] { border-color: var(--primary); outline: none; }
.use-key-model-row small[b-jszkpxkgxc] { color: var(--muted); font-size: .64rem; line-height: 1.5; }
/* 安装命令卡的官方按钮行（本地下载 / 官方说明）。 */
.client-tool-actions[b-jszkpxkgxc] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.os-segmented[b-jszkpxkgxc] { margin-top: 2px; }
/* 手动配置折叠：新用户走三步引导，明细默认收起（无工具卡的客户端显示「查看配置明细」）。 */
.use-key-advanced[b-jszkpxkgxc] { border: 1px dashed var(--line); border-radius: 6px; }
.use-key-advanced > summary[b-jszkpxkgxc] { display: flex; align-items: center; gap: 7px; padding: 9px 13px; color: var(--muted); font-size: .72rem; font-weight: 600; cursor: pointer; list-style: none; }
.use-key-advanced > summary[b-jszkpxkgxc]::before { content: "▸ "; transition: transform .15s; }
.use-key-advanced[open] > summary[b-jszkpxkgxc]::before { transform: rotate(90deg); }
.use-key-advanced[open] > summary[b-jszkpxkgxc] { border-bottom: 1px dashed var(--line); }
.use-key-advanced .config-files[b-jszkpxkgxc] { padding: 12px 13px; }
.advanced-script[b-jszkpxkgxc] { display: grid; gap: 9px; padding: 11px 13px 13px; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.advanced-script p[b-jszkpxkgxc] { margin: 0; }
.import-preview[b-jszkpxkgxc] { max-width: 520px; margin: 4px 0 0; }
.import-preview img[b-jszkpxkgxc] { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 7px; }
.import-preview figcaption[b-jszkpxkgxc] { margin-top: 5px; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.config-tabs[b-jszkpxkgxc] { display: flex; overflow-x: auto; gap: 18px; border-bottom: 1px solid var(--line); }
.config-tabs button[b-jszkpxkgxc] { display: inline-flex; min-width: max-content; padding: 9px 2px; align-items: center; gap: 6px; color: var(--muted); background: transparent; border: 0; border-bottom: 2px solid transparent; font: inherit; font-size: .7rem; font-weight: 700; cursor: pointer; }
.config-tabs button.active[b-jszkpxkgxc] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }
.shell-tabs[b-jszkpxkgxc] { gap: 13px; }
.shell-tabs button[b-jszkpxkgxc] { padding-block: 7px; font-size: .66rem; }
.auth-mode-card[b-jszkpxkgxc] { display: grid; padding: 12px; gap: 10px; border: 1px solid var(--line); border-radius: 8px; }
.auth-mode-card > div:first-child[b-jszkpxkgxc] { display: grid; gap: 3px; }.auth-mode-card strong[b-jszkpxkgxc] { font-size: .7rem; }.auth-mode-card small[b-jszkpxkgxc] { color: var(--muted); font-size: .62rem; }
.segmented[b-jszkpxkgxc] { display: grid; grid-template-columns: repeat(2, 1fr); padding: 3px; background: var(--surface-soft); border-radius: 7px; }
.segmented button[b-jszkpxkgxc] { padding: 7px; color: var(--muted); background: transparent; border: 0; border-radius: 5px; font: inherit; font-size: .66rem; font-weight: 700; cursor: pointer; }.segmented button.active[b-jszkpxkgxc] { color: var(--primary); background: var(--surface); box-shadow: 0 1px 3px rgb(15 23 42 / 10%); }
.restart-note[b-jszkpxkgxc] { display: flex; padding: 8px 10px; align-items: flex-start; gap: 7px; color: #92400e; background: #fffbeb; border-left: 2px solid #f59e0b; font-size: .62rem; line-height: 1.5; }
.config-files[b-jszkpxkgxc] { display: grid; gap: 13px; }.config-file[b-jszkpxkgxc] { min-width: 0; }.config-file > header[b-jszkpxkgxc] { display: flex; padding: 8px 11px; align-items: center; justify-content: space-between; gap: 10px; color: #cbd5e1; background: #1f2937; border-bottom: 1px solid #374151; border-radius: 8px 8px 0 0; }.config-file header code[b-jszkpxkgxc] { min-width: 0; overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }.config-file header button[b-jszkpxkgxc] { display: inline-flex; padding: 4px 7px; align-items: center; gap: 5px; color: #e5e7eb; background: #374151; border: 0; border-radius: 5px; font: inherit; font-size: .6rem; cursor: pointer; }.config-file pre[b-jszkpxkgxc] { max-height: 360px; margin: 0; padding: 13px; overflow: auto; color: #e5e7eb; background: #111827; border-radius: 0 0 8px 8px; font-size: .65rem; line-height: 1.55; white-space: pre; }.config-hint[b-jszkpxkgxc] { display: flex; margin: 0 0 5px; align-items: center; gap: 5px; color: #b45309; font-size: .61rem; }
@media (max-width: 640px) { .config-tabs[b-jszkpxkgxc] { gap: 12px; }.config-file pre[b-jszkpxkgxc] { font-size: .58rem; } }
/* /Components/UserAttributesConfigModal.razor.rz.scp.css */
.attribute-config-header[b-g3q3z8qwed] {
    display: flex;
    margin-bottom: 14px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.attribute-config-header p[b-g3q3z8qwed] {
    margin: 0;
    color: var(--muted);
}

.attribute-definition-list[b-g3q3z8qwed] {
    display: grid;
    max-height: 440px;
    gap: 8px;
    overflow-y: auto;
}

.attribute-definition-row[b-g3q3z8qwed] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 11px 12px;
    align-items: center;
    gap: 10px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.drag-handle[b-g3q3z8qwed] {
    display: inline-flex;
    color: var(--muted);
}

.attribute-definition-info[b-g3q3z8qwed] {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.attribute-definition-info > div[b-g3q3z8qwed] {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.attribute-definition-info code[b-g3q3z8qwed] {
    padding: 2px 5px;
    color: var(--muted);
    background: var(--surface-muted);
    border-radius: 5px;
    font-size: .67rem;
}

.attribute-definition-info small[b-g3q3z8qwed] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
    color: var(--muted);
}

.attribute-definition-info small > span:last-child[b-g3q3z8qwed] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.attribute-type[b-g3q3z8qwed] {
    flex: 0 0 auto;
    padding: 2px 5px;
    background: var(--surface-muted);
    border-radius: 5px;
}

.attribute-definition-actions[b-g3q3z8qwed] {
    display: flex;
    gap: 3px;
}

.attribute-form-grid[b-g3q3z8qwed] {
    align-items: start;
}

.attribute-options-editor[b-g3q3z8qwed] {
    display: grid;
    gap: 8px;
    padding: 10px;
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.attribute-options-heading[b-g3q3z8qwed] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.attribute-option-row[b-g3q3z8qwed] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
}

.attribute-option-row input[b-g3q3z8qwed] {
    min-width: 0;
}

@media (max-width: 620px) {
    .attribute-config-header[b-g3q3z8qwed] {
        align-items: stretch;
        flex-direction: column;
    }

    .attribute-option-row[b-g3q3z8qwed] {
        grid-template-columns: 1fr auto;
    }

    .attribute-option-row input:nth-child(2)[b-g3q3z8qwed] {
        grid-column: 1;
    }
}
/* /Components/UserDashboardPanel.razor.rz.scp.css */
.user-dashboard[b-x9j354txiv] {
    display: grid;
    gap: 16px;
}

.dashboard-alert[b-x9j354txiv] {
    margin: 0;
}

.dashboard-stat-grid[b-x9j354txiv] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.dashboard-stat-card[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    min-height: 96px;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.dashboard-stat-icon[b-x9j354txiv] {
    display: grid;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 8px;
}

.dashboard-stat-icon.emerald[b-x9j354txiv] { color: #059669; background: #d1fae5; }
.dashboard-stat-icon.blue[b-x9j354txiv] { color: #2563eb; background: #dbeafe; }
.dashboard-stat-icon.green[b-x9j354txiv] { color: #16a34a; background: #dcfce7; }
.dashboard-stat-icon.purple[b-x9j354txiv] { color: #7c3aed; background: #ede9fe; }
.dashboard-stat-icon.amber[b-x9j354txiv] { color: #d97706; background: #fef3c7; }
.dashboard-stat-icon.indigo[b-x9j354txiv] { color: #4f46e5; background: #e0e7ff; }
.dashboard-stat-icon.violet[b-x9j354txiv] { color: #7c3aed; background: #f3e8ff; }
.dashboard-stat-icon.rose[b-x9j354txiv] { color: #e11d48; background: #ffe4e6; }

.dashboard-stat-copy[b-x9j354txiv] {
    display: grid;
    min-width: 0;
    align-content: center;
}

.dashboard-stat-copy > span[b-x9j354txiv] {
    overflow: hidden;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-stat-copy > strong[b-x9j354txiv] {
    overflow: hidden;
    margin-top: 1px;
    color: var(--ink);
    font-size: 1.2rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-stat-copy > small[b-x9j354txiv] {
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.performance-copy strong em[b-x9j354txiv] {
    color: var(--muted);
    font-size: .64rem;
    font-style: normal;
    font-weight: 500;
}

.performance-copy small b[b-x9j354txiv] {
    color: #7c3aed;
    font-weight: 700;
}

.cost-pair[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 4px;
    font-style: normal;
}

.cost-pair b[b-x9j354txiv] {
    color: #7c3aed;
    font-style: normal;
    font-weight: 700;
}

.cost-pair i[b-x9j354txiv] {
    color: #a3aca8;
    font-style: normal;
    font-weight: 400;
}

.cost-pair em[b-x9j354txiv] {
    color: #89938e;
    font-size: .76rem;
    font-style: normal;
    font-weight: 500;
}

.success-text[b-x9j354txiv] { color: #059669 !important; }
.danger-text[b-x9j354txiv] { color: #dc2626 !important; }
.emerald-text[b-x9j354txiv] { color: #059669 !important; }

.dashboard-card[b-x9j354txiv] {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.dashboard-card-heading[b-x9j354txiv] {
    display: flex;
    min-height: 50px;
    padding: 14px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dashboard-card-heading.bordered[b-x9j354txiv] {
    border-bottom: 1px solid var(--line);
}

.dashboard-card-heading h2[b-x9j354txiv] {
    margin: 0;
    color: var(--ink);
    font-size: .86rem;
    font-weight: 700;
}

.dashboard-card-heading > span[b-x9j354txiv] {
    color: var(--muted);
    font-size: .7rem;
}

.platform-breakdown-card[b-x9j354txiv] {
    padding-bottom: 14px;
}

.platform-card-grid[b-x9j354txiv] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 0 14px;
}

.platform-card[b-x9j354txiv] {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 7px;
}

.platform-card.other[b-x9j354txiv] {
    background: #f7f9f8;
    border-style: dashed;
}

.platform-card header[b-x9j354txiv],
.platform-card dl > div[b-x9j354txiv],
.quota-line[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.platform-card header strong[b-x9j354txiv] {
    overflow: hidden;
    color: var(--ink);
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.platform-card header b[b-x9j354txiv] {
    color: #7c3aed;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: .74rem;
    font-weight: 650;
    white-space: nowrap;
}

.platform-card dl[b-x9j354txiv] {
    display: grid;
    gap: 4px;
    margin: 9px 0 0;
    font-size: .68rem;
}

.platform-card dt[b-x9j354txiv] {
    color: var(--muted);
    font-weight: 500;
}

.platform-card dd[b-x9j354txiv] {
    margin: 0;
    color: var(--ink);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.quota-section[b-x9j354txiv] {
    display: grid;
    gap: 7px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--line);
}

.quota-title[b-x9j354txiv] {
    color: #99a39e;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.quota-window[b-x9j354txiv] {
    display: grid;
    gap: 3px;
}

.quota-line[b-x9j354txiv] {
    color: var(--muted);
    font-size: .64rem;
}

.quota-line b[b-x9j354txiv] {
    color: var(--ink);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: .61rem;
    font-weight: 550;
}

.quota-track[b-x9j354txiv] {
    height: 6px;
    overflow: hidden;
    background: #e8edea;
    border-radius: 999px;
}

.quota-track span[b-x9j354txiv] {
    display: block;
    height: 100%;
    border-radius: inherit;
    transition: width .2s ease;
}

.quota-track span.success[b-x9j354txiv] { background: #22c55e; }
.quota-track span.warning[b-x9j354txiv] { background: #f59e0b; }
.quota-track span.danger[b-x9j354txiv] { background: #ef4444; }

.quota-window small[b-x9j354txiv] {
    color: #98a29d;
    font-size: .57rem;
}

.dashboard-filter-card[b-x9j354txiv] {
    display: flex;
    min-height: 66px;
    padding: 13px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.dashboard-filter-group[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
}

.filter-label[b-x9j354txiv] {
    color: #4c5853;
    font-size: .78rem;
    font-weight: 650;
    white-space: nowrap;
}

.dashboard-refresh-button[b-x9j354txiv] {
    flex: 0 0 auto;
    min-width: 76px;
    white-space: nowrap;
}

.granularity-filter select[b-x9j354txiv] {
    min-width: 112px;
    min-height: 36px;
    padding: 6px 30px 6px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid #cad3ce;
    border-radius: 5px;
    font-size: .78rem;
}

.dashboard-chart-grid[b-x9j354txiv] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.dashboard-chart-card[b-x9j354txiv] {
    min-height: 322px;
}

.model-distribution-card[b-x9j354txiv] {
    overflow: visible;
}

.distribution-layout[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    min-height: 240px;
    padding: 0 14px 14px;
    align-items: center;
    gap: 16px;
}

.distribution-chart[b-x9j354txiv] {
    flex: 0 0 210px;
    width: 210px;
}

.model-distribution-layout[b-x9j354txiv] {
    align-items: stretch;
    flex-direction: column;
}

.model-distribution-layout .model-distribution-chart[b-x9j354txiv] {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex: 0 0 auto;
}

.model-distribution-chart[b-x9j354txiv]  .dxc-arg-elements text,
.model-distribution-chart[b-x9j354txiv]  .dxc-val-elements text {
    fill: var(--muted) !important;
}

.model-distribution-chart[b-x9j354txiv]  .dxbl-chart-tooltip-content-container,
.model-distribution-chart[b-x9j354txiv]  .dxbl-chart-tooltip-pointer {
    color: var(--ink);
    background: var(--surface);
    border-color: var(--line);
}

.trend-chart-layout[b-x9j354txiv] {
    display: grid;
    min-width: 0;
    padding: 0 10px 10px;
}

.trend-chart-legend[b-x9j354txiv] {
    display: flex;
    min-height: 34px;
    padding: 0 10px 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 18px;
    color: var(--ink);
    font-size: .76rem;
}

.trend-chart-legend span[b-x9j354txiv] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.trend-chart-legend i[b-x9j354txiv] {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 2px;
}

.trend-chart-legend .input[b-x9j354txiv] { background: #ff6d00; }
.trend-chart-legend .output[b-x9j354txiv] { background: #16883d; }
.trend-chart-legend .cache-creation[b-x9j354txiv] { background: #e4112f; }
.trend-chart-legend .cache-read[b-x9j354txiv] { background: #ff9800; }
.trend-chart-legend .cache-hit-rate[b-x9j354txiv] { background: #0b76ce; }

.compact-table-wrap[b-x9j354txiv] {
    min-width: 0;
    max-height: 218px;
    flex: 1;
    overflow: auto;
}

.model-distribution-table-wrap[b-x9j354txiv] {
    width: 100%;
    max-height: 230px;
}

.compact-dashboard-table[b-x9j354txiv] {
    width: 100%;
    border-collapse: collapse;
    font-size: .66rem;
    font-variant-numeric: tabular-nums;
}

.model-distribution-table[b-x9j354txiv] {
    min-width: 580px;
}

.model-distribution-table th:first-child[b-x9j354txiv],
.model-distribution-table td:first-child[b-x9j354txiv] {
    min-width: 180px;
    max-width: 260px;
}

.model-distribution-table th:nth-child(4)[b-x9j354txiv],
.model-distribution-table td:nth-child(4)[b-x9j354txiv] {
    width: 64px;
}

.compact-dashboard-table th[b-x9j354txiv],
.compact-dashboard-table td[b-x9j354txiv] {
    max-width: 120px;
    padding: 6px 7px;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-bottom: 1px solid var(--line);
}

.compact-dashboard-table th:first-child[b-x9j354txiv],
.compact-dashboard-table td:first-child[b-x9j354txiv] {
    text-align: left;
}

.compact-dashboard-table th[b-x9j354txiv] {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--muted);
    background: var(--surface);
    font-weight: 650;
}

.compact-dashboard-table td:first-child[b-x9j354txiv] {
    color: var(--ink);
    font-weight: 600;
}

.model-share[b-x9j354txiv] {
    color: var(--muted);
    font-weight: 700;
}

.model-distribution-tooltip[b-x9j354txiv] {
    display: grid;
    min-width: 190px;
    max-width: 280px;
    gap: 8px;
    padding: 10px 12px;
    color: var(--ink);
    text-align: left;
}

.model-distribution-tooltip > strong[b-x9j354txiv] {
    overflow-wrap: anywhere;
    font-size: .78rem;
    line-height: 1.35;
}

.model-distribution-tooltip dl[b-x9j354txiv] {
    display: grid;
    gap: 4px;
    margin: 0;
}

.model-distribution-tooltip dl > div[b-x9j354txiv] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
}

.model-distribution-tooltip dt[b-x9j354txiv],
.model-distribution-tooltip dd[b-x9j354txiv] {
    margin: 0;
    font-size: .72rem;
}

.model-distribution-tooltip dt[b-x9j354txiv] {
    color: var(--muted);
}

.model-distribution-tooltip dd[b-x9j354txiv] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.dashboard-loading[b-x9j354txiv],
.dashboard-empty[b-x9j354txiv] {
    display: flex;
    min-height: 235px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--muted);
    font-size: .76rem;
}

.dashboard-bottom-grid[b-x9j354txiv] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(270px, 1fr);
    align-items: start;
    gap: 16px;
}

.range-badge[b-x9j354txiv] {
    padding: 4px 8px;
    color: #64706a !important;
    background: #eef2f0;
    border-radius: 999px;
    font-size: .62rem !important;
    font-weight: 650;
}

.recent-usage-body[b-x9j354txiv] {
    padding: 14px;
}

.recent-usage-body .dashboard-loading[b-x9j354txiv],
.recent-usage-body .dashboard-empty[b-x9j354txiv] {
    min-height: 230px;
}

.recent-usage-list[b-x9j354txiv] {
    display: grid;
    gap: 8px;
}

.recent-usage-row[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    min-height: 62px;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: #f6f8f7;
    border-radius: 8px;
    transition: background .15s ease;
}

.recent-usage-row:hover[b-x9j354txiv] {
    background: #edf2ef;
}

.usage-row-icon[b-x9j354txiv] {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    color: #2563eb;
    background: #dbeafe;
    border-radius: 8px;
}

.usage-row-main[b-x9j354txiv],
.usage-row-cost[b-x9j354txiv] {
    display: grid;
    min-width: 0;
}

.usage-row-main[b-x9j354txiv] {
    flex: 1;
}

.usage-row-main strong[b-x9j354txiv],
.usage-row-main small[b-x9j354txiv] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.usage-row-main strong[b-x9j354txiv] {
    color: var(--ink);
    font-size: .76rem;
}

.usage-row-main small[b-x9j354txiv],
.usage-row-cost small[b-x9j354txiv] {
    color: var(--muted);
    font-size: .64rem;
}

.usage-row-cost[b-x9j354txiv] {
    justify-items: end;
    font-variant-numeric: tabular-nums;
}

.usage-row-cost strong[b-x9j354txiv] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: .72rem;
}

.usage-row-cost strong b[b-x9j354txiv] { color: #059669; }
.usage-row-cost strong i[b-x9j354txiv] { color: #a3aca8; font-style: normal; }
.usage-row-cost strong span[b-x9j354txiv] { color: #89938e; font-weight: 500; }

.view-all-link[b-x9j354txiv] {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #087455;
    font-size: .72rem;
    font-weight: 650;
    text-decoration: none;
}

.view-all-link:hover[b-x9j354txiv] {
    color: #065f46;
}

.quick-action-list[b-x9j354txiv] {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.quick-action[b-x9j354txiv] {
    display: flex;
    min-width: 0;
    min-height: 66px;
    padding: 10px 12px;
    align-items: center;
    gap: 11px;
    color: var(--ink);
    text-decoration: none;
    background: #f6f8f7;
    border-radius: 8px;
    transition: background .15s ease, transform .15s ease;
}

.quick-action:hover[b-x9j354txiv] {
    color: var(--ink);
    background: #edf2ef;
}

.quick-action:hover .quick-action-icon[b-x9j354txiv] {
    transform: scale(1.04);
}

.quick-action > span:nth-child(2)[b-x9j354txiv] {
    display: grid;
    min-width: 0;
    flex: 1;
}

.quick-action strong[b-x9j354txiv],
.quick-action small[b-x9j354txiv] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.quick-action strong[b-x9j354txiv] { font-size: .75rem; }
.quick-action small[b-x9j354txiv] { color: var(--muted); font-size: .65rem; }

.quick-action-icon[b-x9j354txiv] {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 8px;
    transition: transform .15s ease;
}

.quick-action-icon.blue[b-x9j354txiv] { color: #2563eb; background: #dbeafe; }
.quick-action-icon.emerald[b-x9j354txiv] { color: #059669; background: #d1fae5; }
.quick-action-icon.sky[b-x9j354txiv] { color: #0284c7; background: #e0f2fe; }
.quick-action-icon.amber[b-x9j354txiv] { color: #d97706; background: #fef3c7; }

/* Keep both administrator and regular-user dashboards on the user-management type scale. */
.user-dashboard[b-x9j354txiv] { font-size: 1rem; }
.dashboard-stat-copy > span[b-x9j354txiv] { font-size: .86rem; }
.dashboard-stat-copy > small[b-x9j354txiv],
.performance-copy strong em[b-x9j354txiv] { font-size: .8rem; }
.dashboard-card-heading h2[b-x9j354txiv] { font-size: 1rem; }
.dashboard-card-heading > span[b-x9j354txiv] { font-size: .8rem; }
.platform-card header strong[b-x9j354txiv] { font-size: .88rem; }
.platform-card header b[b-x9j354txiv] { font-size: .82rem; }
.platform-card dl[b-x9j354txiv] { font-size: .8rem; }
.quota-title[b-x9j354txiv] { font-size: .75rem; }
.quota-line[b-x9j354txiv] { font-size: .78rem; }
.quota-line b[b-x9j354txiv] { font-size: .76rem; }
.quota-window small[b-x9j354txiv] { font-size: .75rem; }
.filter-label[b-x9j354txiv],
.granularity-filter select[b-x9j354txiv] { font-size: .85rem; }
.compact-dashboard-table[b-x9j354txiv] { font-size: .83rem; }
.compact-dashboard-table th[b-x9j354txiv] { font-size: .76rem; }
.dashboard-loading[b-x9j354txiv],
.dashboard-empty[b-x9j354txiv] { font-size: .88rem; }
.range-badge[b-x9j354txiv] { font-size: .78rem !important; }
.usage-row-main strong[b-x9j354txiv] { font-size: .86rem; }
.usage-row-main small[b-x9j354txiv],
.usage-row-cost small[b-x9j354txiv] { font-size: .78rem; }
.usage-row-cost strong[b-x9j354txiv],
.view-all-link[b-x9j354txiv] { font-size: .82rem; }
.quick-action strong[b-x9j354txiv] { font-size: .86rem; }
.quick-action small[b-x9j354txiv] { font-size: .78rem; }
:deep(.dxbl-chart)[b-x9j354txiv] { font-size: .8rem; }

@media (max-width: 1180px) {
    .dashboard-stat-grid[b-x9j354txiv],
    .platform-card-grid[b-x9j354txiv] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-chart-grid[b-x9j354txiv] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 880px) {
    .dashboard-bottom-grid[b-x9j354txiv] {
        grid-template-columns: 1fr;
    }

    .dashboard-filter-card[b-x9j354txiv] {
        align-items: stretch;
        flex-direction: column;
    }

    .granularity-filter[b-x9j354txiv] {
        justify-content: space-between;
    }
}

@media (max-width: 680px) {
    .dashboard-stat-grid[b-x9j354txiv],
    .platform-card-grid[b-x9j354txiv] {
        grid-template-columns: 1fr;
    }

    .dashboard-filter-group:first-child[b-x9j354txiv] {
        align-items: stretch;
        flex-direction: column;
    }


    .dashboard-filter-group:first-child .button[b-x9j354txiv] {
        width: 100%;
    }

    .distribution-layout[b-x9j354txiv] {
        align-items: stretch;
        flex-direction: column;
    }

    .distribution-chart[b-x9j354txiv] {
        width: min(240px, 100%);
        margin: 0 auto;
        flex-basis: auto;
    }

    .model-distribution-chart[b-x9j354txiv] {
        width: 100%;
        max-width: none;
        margin: 0;
        flex-basis: auto;
    }

    .compact-table-wrap[b-x9j354txiv] {
        width: 100%;
    }

    .trend-chart-legend[b-x9j354txiv] {
        padding-inline: 4px;
        justify-content: flex-start;
        gap: 6px 12px;
    }

    .recent-usage-row[b-x9j354txiv] {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .usage-row-main[b-x9j354txiv] {
        width: calc(100% - 52px);
        flex: none;
    }

    .usage-row-cost[b-x9j354txiv] {
        width: 100%;
        padding-left: 50px;
        justify-items: start;
    }
}
/* /Components/UserDefaultsSettings.razor.rz.scp.css */
.user-defaults-card[b-0wv0l57gbe],
.auth-source-list[b-0wv0l57gbe],
.auth-source-body[b-0wv0l57gbe],
.defaults-subsection[b-0wv0l57gbe],
.quota-section[b-0wv0l57gbe] {
    display: grid;
    gap: 1rem;
}

.user-defaults-card > header h2[b-0wv0l57gbe] {
    margin: 0;
    color: var(--text);
    font-size: .98rem;
}

.defaults-subsection[b-0wv0l57gbe],
.quota-section[b-0wv0l57gbe] {
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.defaults-subsection.compact[b-0wv0l57gbe] {
    padding-top: .8rem;
}

.subsection-heading[b-0wv0l57gbe],
.auth-source-heading[b-0wv0l57gbe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.subsection-heading h3[b-0wv0l57gbe],
.auth-source-heading h3[b-0wv0l57gbe],
.quota-heading h3[b-0wv0l57gbe] {
    margin: 0;
    font-size: .9rem;
}

.subsection-heading p[b-0wv0l57gbe],
.auth-source-heading p[b-0wv0l57gbe],
.quota-heading p[b-0wv0l57gbe] {
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}

.auth-source-card[b-0wv0l57gbe] {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.auth-source-body[b-0wv0l57gbe] {
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.inline-switch[b-0wv0l57gbe] {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--muted);
    font-size: .72rem;
    white-space: nowrap;
}

.inline-switch input[b-0wv0l57gbe] {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
}

@media (max-width: 760px) {
    .subsection-heading[b-0wv0l57gbe],
    .auth-source-heading[b-0wv0l57gbe] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/UserUsagePanel.razor.rz.scp.css */
.user-usage-page[b-iprfuh8zka] {
    display: grid;
    gap: 24px;
}

.usage-card[b-iprfuh8zka],
.usage-stat-card[b-iprfuh8zka] {
    min-width: 0;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
}

.usage-stats-grid[b-iprfuh8zka] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.usage-stat-card[b-iprfuh8zka] {
    display: flex;
    min-height: 96px;
    padding: 16px;
    align-items: center;
    gap: 12px;
}

.usage-stat-icon[b-iprfuh8zka] {
    display: grid;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 8px;
}

.usage-stat-icon.blue[b-iprfuh8zka] { color: #2563eb; background: #dbeafe; }
.usage-stat-icon.amber[b-iprfuh8zka] { color: #d97706; background: #fef3c7; }
.usage-stat-icon.green[b-iprfuh8zka] { color: #059669; background: #d1fae5; }
.usage-stat-icon.violet[b-iprfuh8zka] { color: #7c3aed; background: #ede9fe; }

.usage-stat-card > div[b-iprfuh8zka] {
    display: grid;
    min-width: 0;
}

.usage-stat-card small[b-iprfuh8zka] {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 650;
}

.usage-stat-card strong[b-iprfuh8zka] {
    overflow: hidden;
    color: var(--ink);
    font-size: 1.2rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.usage-stat-card span:not(.usage-stat-icon)[b-iprfuh8zka] {
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.usage-stat-card .cost-value[b-iprfuh8zka] { color: #059669; }

.date-filter-card[b-iprfuh8zka] {
    display: flex;
    min-height: 66px;
    padding: 13px 16px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.date-filter-group[b-iprfuh8zka] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
}

.filter-caption[b-iprfuh8zka] {
    color: #4c5853;
    font-size: .78rem;
    font-weight: 650;
    white-space: nowrap;
}

.granularity-group select[b-iprfuh8zka] {
    min-width: 112px;
    min-height: 36px;
    padding: 6px 30px 6px 10px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.usage-chart-grid[b-iprfuh8zka] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.chart-card[b-iprfuh8zka] {
    min-height: 355px;
    padding: 14px 16px 16px;
    overflow: hidden;
}

.distribution-bar-card[b-iprfuh8zka] {
    overflow: visible;
}

.chart-heading[b-iprfuh8zka] {
    display: flex;
    min-height: 34px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.chart-heading h2[b-iprfuh8zka] {
    margin: 0;
    color: var(--ink);
    font-size: .88rem;
    font-weight: 700;
}

.chart-empty[b-iprfuh8zka] {
    display: grid;
    min-height: 280px;
    place-items: center;
    color: var(--muted);
    font-size: .8rem;
}

.trend-card[b-iprfuh8zka] { min-height: 355px; }

.usage-trend-layout[b-iprfuh8zka] {
    display: grid;
    min-width: 0;
}

.usage-trend-legend[b-iprfuh8zka] {
    display: flex;
    min-height: 34px;
    padding: 0 8px 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 18px;
    color: var(--ink);
    font-size: .76rem;
}

.usage-trend-legend span[b-iprfuh8zka] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.usage-trend-legend i[b-iprfuh8zka] {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 2px;
}

.usage-trend-legend .input[b-iprfuh8zka] { background: #ff6d00; }
.usage-trend-legend .output[b-iprfuh8zka] { background: #16883d; }
.usage-trend-legend .cache-creation[b-iprfuh8zka] { background: #e4112f; }
.usage-trend-legend .cache-read[b-iprfuh8zka] { background: #ff9800; }

.usage-filter-card[b-iprfuh8zka] {
    display: flex;
    padding: 18px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.usage-filter-grid[b-iprfuh8zka] {
    display: grid;
    min-width: 0;
    flex: 1;
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: 13px;
}

.error-filter-grid[b-iprfuh8zka] { grid-template-columns: repeat(2, minmax(170px, 1fr)); }

.usage-filter-field[b-iprfuh8zka] {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.usage-filter-field label[b-iprfuh8zka] {
    color: #46524d;
    font-size: .72rem;
    font-weight: 650;
}

.usage-filter-field select[b-iprfuh8zka],
.usage-filter-field input[b-iprfuh8zka] {
    width: 100%;
    min-width: 0;
    min-height: 36px;
    padding: 7px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: .78rem;
}

.usage-filter-actions[b-iprfuh8zka] {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    align-items: center;
    /* 2026-10-15 用户需求：筛选按钮统一从左往右排（不再靠右）。 */
    justify-content: flex-start;
    gap: 9px;
}

.column-menu-host[b-iprfuh8zka] { position: relative; }

.column-menu[b-iprfuh8zka] {
    position: absolute;
    z-index: 40;
    top: calc(100% + 6px);
    right: 0;
    display: grid;
    width: 190px;
    max-height: 320px;
    padding: 5px;
    overflow: auto;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 7px;
    box-shadow: 0 14px 34px rgba(20, 36, 29, .15);
}

.column-menu button[b-iprfuh8zka] {
    display: flex;
    width: 100%;
    min-height: 34px;
    padding: 7px 9px;
    align-items: center;
    justify-content: space-between;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-radius: 5px;
    font-size: .76rem;
    text-align: left;
}

.column-menu button:hover[b-iprfuh8zka] { background: var(--surface-soft); }

.usage-tabs[b-iprfuh8zka] {
    display: flex;
    gap: 4px;
    margin-top: -8px;
    border-bottom: 1px solid var(--line);
}

.usage-tabs button[b-iprfuh8zka] {
    position: relative;
    padding: 10px 15px;
    color: var(--muted);
    background: transparent;
    border: 0;
    font-size: .8rem;
    font-weight: 650;
}

.usage-tabs button.active[b-iprfuh8zka] { color: var(--primary-strong); }
.usage-tabs button.active[b-iprfuh8zka]::after { position: absolute; right: 8px; bottom: -1px; left: 8px; height: 2px; content: ""; background: var(--primary-strong); }

.usage-table-card[b-iprfuh8zka] { overflow: hidden; }
.usage-table-wrap[b-iprfuh8zka] { width: 100%; overflow: auto; }

/* 列多：表格按内容自适应宽度（列不挤压换行、行高不撑高），容器横向滚动。 */
.usage-detail-table[b-iprfuh8zka] {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: .75rem;
}

.usage-detail-table th[b-iprfuh8zka] {
    padding: 11px 12px;
    color: #56635d;
    background: #f7f9f8;
    border-bottom: 1px solid var(--line);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .01em;
    text-align: left;
    white-space: nowrap;
}

.usage-detail-table td[b-iprfuh8zka] {
    padding: 11px 12px;
    color: var(--ink);
    border-bottom: 1px solid var(--line-soft, #edf0ee);
    vertical-align: middle;
    white-space: nowrap;
}

/* 长文本列保持省略号截断（不撑宽表格也不换行撑高）。 */
.usage-detail-table .user-agent-cell[b-iprfuh8zka],
.usage-detail-table .message-cell[b-iprfuh8zka] {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.usage-detail-table .endpoint-cell[b-iprfuh8zka] {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.usage-detail-table tbody tr:last-child td[b-iprfuh8zka] { border-bottom: 0; }
.usage-detail-table tbody tr:hover[b-iprfuh8zka] { background: var(--surface-hover); }
.usage-detail-table .clickable-row[b-iprfuh8zka] { cursor: pointer; }

.sort-button[b-iprfuh8zka] {
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    font: inherit;
    font-weight: 700;
}

.primary-cell[b-iprfuh8zka],
.model-name[b-iprfuh8zka] {
    display: block;
    color: var(--ink);
    font-weight: 650;
}

.usage-detail-table td > small[b-iprfuh8zka],
.endpoint-cell small[b-iprfuh8zka],
.latency-cell small[b-iprfuh8zka] {
    display: block;
    color: var(--muted);
    font-size: .66rem;
}

.endpoint-cell b[b-iprfuh8zka] { color: #748079; }
.cache-1h-hint[b-iprfuh8zka] { margin-left: 4px; color: var(--muted); font-size: .66rem; }
.usage-detail-table code[b-iprfuh8zka] { color: #53625b; font-size: .7rem; }

.tag[b-iprfuh8zka],
.mini-badge[b-iprfuh8zka],
.status-code[b-iprfuh8zka] {
    display: inline-flex;
    padding: 2px 7px;
    align-items: center;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
}

.tag.indigo[b-iprfuh8zka] { color: #4338ca; background: #e0e7ff; }
.tag.violet[b-iprfuh8zka] { color: #7c3aed; background: #ede9fe; }
.tag.rose[b-iprfuh8zka] { color: #be123c; background: #ffe4e6; }
.tag.blue[b-iprfuh8zka] { color: #1d4ed8; background: #dbeafe; }
.tag.green[b-iprfuh8zka] { color: #047857; background: #d1fae5; }
.tag.amber[b-iprfuh8zka], .mini-badge.amber[b-iprfuh8zka] { color: #b45309; background: #fef3c7; }
.tag.gray[b-iprfuh8zka] { color: #4b5563; background: #f1f3f2; }
.tag.danger[b-iprfuh8zka], .mini-badge.danger[b-iprfuh8zka], .status-code.danger[b-iprfuh8zka] { color: #b91c1c; background: #fee2e2; }
.status-code.warning[b-iprfuh8zka] { color: #b45309; background: #fef3c7; }
.status-code.neutral[b-iprfuh8zka] { color: #4b5563; background: #f1f3f2; }
.mini-badge[b-iprfuh8zka] { margin-left: 5px; padding: 1px 5px; border-radius: 4px; }

.actual-cost[b-iprfuh8zka] { color: #059669; font-weight: 700; white-space: nowrap; }
.latency-cell[b-iprfuh8zka] { white-space: nowrap; }
.user-agent-cell[b-iprfuh8zka], .message-cell[b-iprfuh8zka] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.error-detail-grid[b-iprfuh8zka] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 24px;
}

.error-detail-grid > div[b-iprfuh8zka] { display: grid; gap: 4px; }
.error-detail-grid small[b-iprfuh8zka],
.error-detail-section > small[b-iprfuh8zka] { color: var(--muted); font-size: .72rem; font-weight: 650; }
.error-detail-grid strong[b-iprfuh8zka] { color: var(--ink); font-size: .8rem; font-weight: 600; word-break: break-all; }
.error-detail-section[b-iprfuh8zka] { margin-top: 18px; }
.error-detail-section p[b-iprfuh8zka] { margin: 5px 0 0; color: var(--ink); font-size: .8rem; word-break: break-all; }
.error-detail-section pre[b-iprfuh8zka] { max-height: 40vh; margin: 6px 0 0; padding: 12px; overflow: auto; color: var(--ink); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; font-size: .72rem; white-space: pre-wrap; word-break: break-all; }

@media (max-width: 1180px) {
    .usage-stats-grid[b-iprfuh8zka] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .usage-filter-card[b-iprfuh8zka] { align-items: stretch; flex-direction: column; }
    .usage-filter-actions[b-iprfuh8zka] { justify-content: flex-start; }
}

@media (max-width: 850px) {
    .usage-chart-grid[b-iprfuh8zka] { grid-template-columns: 1fr; }
    .date-filter-card[b-iprfuh8zka] { align-items: stretch; flex-direction: column; }
    .usage-filter-grid[b-iprfuh8zka], .error-filter-grid[b-iprfuh8zka] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .usage-stats-grid[b-iprfuh8zka] { grid-template-columns: 1fr; }
    .usage-filter-grid[b-iprfuh8zka], .error-filter-grid[b-iprfuh8zka] { grid-template-columns: 1fr; }
    .usage-filter-actions .button[b-iprfuh8zka] { flex: 1 1 auto; }
    .error-detail-grid[b-iprfuh8zka] { grid-template-columns: 1fr; }
    .usage-trend-legend[b-iprfuh8zka] { padding-inline: 0; justify-content: flex-start; gap: 6px 12px; }
}
/* /Components/WebSearchSettings.razor.rz.scp.css */
.web-search-card[b-zmylbgme90] { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.web-search-card > header[b-zmylbgme90] { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; border-bottom:1px solid var(--line); }
.web-search-card h2[b-zmylbgme90] { margin:0; color:var(--text); font-size:.98rem; }
.web-search-card > header p[b-zmylbgme90] { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.web-search-actions[b-zmylbgme90] { display:flex; flex-wrap:wrap; gap:7px; }
.web-search-alert[b-zmylbgme90] { display:flex; align-items:center; gap:8px; margin:16px 20px 0; padding:10px 12px; border:1px solid rgba(190,62,62,.25); border-radius:6px; color:var(--danger); background:rgba(190,62,62,.06); font-size:.76rem; }
.web-search-body[b-zmylbgme90] { display:grid; gap:16px; padding:20px; }
.web-search-empty[b-zmylbgme90] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px; border:1px dashed var(--line); border-radius:7px; color:var(--muted); font-size:.76rem; }
.provider-list[b-zmylbgme90] { display:grid; gap:12px; }
.provider-list article[b-zmylbgme90] { overflow:hidden; border:1px solid var(--line); border-radius:7px; }
.provider-list article > header[b-zmylbgme90] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.provider-list article > header div[b-zmylbgme90] { display:grid; gap:3px; }
.provider-list article > header span[b-zmylbgme90] { color:var(--muted); font-size:.68rem; }
.provider-grid[b-zmylbgme90] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px 18px; padding:16px; }
.provider-grid[b-zmylbgme90]  input, .provider-grid[b-zmylbgme90]  select { width:100%; }
.provider-list article > footer[b-zmylbgme90] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; border-top:1px solid var(--line); background:var(--surface-soft); }
.provider-list article > footer div[b-zmylbgme90] { display:flex; gap:8px; color:var(--muted); font-size:.7rem; }
.provider-list article > footer strong[b-zmylbgme90] { color:var(--text); }
.search-test[b-zmylbgme90] { display:grid; gap:12px; padding:16px; border:1px solid var(--line); border-radius:7px; background:var(--surface-soft); }
.search-test > header[b-zmylbgme90] { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.search-test > header div[b-zmylbgme90] { display:grid; gap:3px; }
.search-test > header span[b-zmylbgme90] { color:var(--muted); font-size:.68rem; }
.search-test > input[b-zmylbgme90] { width:100%; height:var(--form-control-height); padding:7px 10px; color:var(--form-control-color); background:var(--form-control-bg); border:1px solid var(--form-control-border); border-radius:var(--form-control-radius); }
.search-test > input:focus[b-zmylbgme90] { border-color:var(--form-control-focus); outline:0; box-shadow:0 0 0 3px var(--form-control-focus-ring); }
.search-results[b-zmylbgme90] { display:grid; gap:7px; }
.search-results > p[b-zmylbgme90] { margin:0; color:var(--muted); font-size:.7rem; }
.search-results a[b-zmylbgme90] { display:grid; gap:3px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; color:var(--text); background:var(--surface); text-decoration:none; }
.search-results a:hover[b-zmylbgme90] { border-color:var(--primary); }
.search-results a span[b-zmylbgme90] { color:var(--muted); font-size:.72rem; line-height:1.45; }
.search-results a small[b-zmylbgme90] { overflow:hidden; color:var(--primary); font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:760px) { .web-search-card > header[b-zmylbgme90], .search-test > header[b-zmylbgme90], .provider-list article > footer[b-zmylbgme90], .web-search-empty[b-zmylbgme90] { flex-direction:column; align-items:stretch; } .web-search-actions[b-zmylbgme90],.web-search-actions .button[b-zmylbgme90],.web-search-card > header .button[b-zmylbgme90],.search-test > header .button[b-zmylbgme90] { width:100%; } .provider-grid[b-zmylbgme90] { grid-template-columns:1fr; } }
/* /Layout/AuthLayout.razor.rz.scp.css */
.auth-layout[b-v675gdh6tk] {
    min-height: 100vh;
    background: var(--canvas);
}
/* /Layout/BareLayout.razor.rz.scp.css */
.bare-layout[b-q63yw22u64] {
    min-height: 100vh;
    background: var(--canvas);
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-bnhc460qp5] {
    min-height: 100vh;
}

.app-sidebar[b-bnhc460qp5] {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: 256px;
    overflow: hidden;
    background: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
    transition: width .22s ease, transform .22s ease;
}

.app-sidebar.collapsed[b-bnhc460qp5] {
    width: 72px;
}

.app-main[b-bnhc460qp5] {
    min-width: 0;
    min-height: 100vh;
    margin-left: 256px;
    transition: margin-left .22s ease;
}

.app-main.sidebar-is-collapsed[b-bnhc460qp5] {
    margin-left: 72px;
}

.app-topbar[b-bnhc460qp5] {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    min-width: 0;
    height: 64px;
    padding: 0 24px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: var(--topbar-bg);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(15, 23, 20, .03);
    backdrop-filter: blur(14px);
}

.topbar-left[b-bnhc460qp5],
.topbar-actions[b-bnhc460qp5] {
    display: flex;
    min-width: 0;
    align-items: center;
}

.topbar-left[b-bnhc460qp5] { gap: 10px; }
.topbar-actions[b-bnhc460qp5] { margin-left: auto; gap: 8px; }

.topbar-docs-link[b-bnhc460qp5] {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 6px;
    padding: 0 9px;
    border-radius: 8px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
}

.topbar-docs-link:hover[b-bnhc460qp5] {
    color: var(--ink);
    background: var(--sidebar-hover);
}

.docs-shell-brand[b-bnhc460qp5],
.docs-shell-console-link[b-bnhc460qp5] { display: none; }

.docs-shell .app-main[b-bnhc460qp5] {
    margin-left: 0;
}

.docs-shell .docs-shell-brand[b-bnhc460qp5] {
    display: inline-flex;
    align-items: center;
    color: var(--ink);
    font-size: .95rem;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}

.docs-shell .docs-shell-console-link[b-bnhc460qp5] {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 6px;
    padding: 0 9px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
}

.docs-shell .docs-shell-console-link:hover[b-bnhc460qp5] {
    color: var(--ink);
    background: var(--sidebar-hover);
}

.docs-shell .topbar-docs-link[b-bnhc460qp5] { display: none; }
.docs-shell .mobile-menu[b-bnhc460qp5] { display: none; }

.topbar-context[b-bnhc460qp5] {
    display: grid;
    min-width: 0;
    gap: 1px;
}

.topbar-context h1[b-bnhc460qp5] {
    overflow: hidden;
    margin: 0;
    color: var(--ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-context p[b-bnhc460qp5] {
    overflow: hidden;
    margin: 0;
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mobile-menu[b-bnhc460qp5] { display: none; }

.topbar-icon-link[b-bnhc460qp5] {
    display: inline-flex;
    min-height: 36px;
    padding: 0 10px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
}

.topbar-icon-link[b-bnhc460qp5] { width: 36px; padding: 0; }

.topbar-icon-link:hover[b-bnhc460qp5] {
    color: var(--ink);
    background: var(--sidebar-hover);
}

.balance-summary[b-bnhc460qp5] {
    position: relative;
    display: flex;
    min-height: 36px;
    padding: 0 11px;
    align-items: center;
    gap: 7px;
    color: var(--primary);
    background: var(--primary-soft);
    border-radius: 10px;
    outline: none;
}

.balance-summary > strong[b-bnhc460qp5] {
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
}

.frozen-badge[b-bnhc460qp5] {
    padding: 2px 6px;
    color: #946514;
    background: #fff0c2;
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 650;
}

.balance-popover[b-bnhc460qp5] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 55;
    display: none;
    width: 220px;
    padding: 11px 12px;
    gap: 8px;
    color: var(--muted);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--popover-shadow);
    font-size: .72rem;
}

.balance-popover span[b-bnhc460qp5] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.balance-popover span:last-child[b-bnhc460qp5] {
    padding-top: 7px;
    color: var(--ink);
    border-top: 1px solid var(--line);
}

.balance-popover strong[b-bnhc460qp5] { color: var(--ink); font-variant-numeric: tabular-nums; }
.balance-summary:hover .balance-popover[b-bnhc460qp5],
.balance-summary:focus .balance-popover[b-bnhc460qp5],
.balance-summary:focus-within .balance-popover[b-bnhc460qp5] { display: grid; }

.account-menu-wrap[b-bnhc460qp5] { position: relative; }

.account-trigger[b-bnhc460qp5] {
    display: flex;
    min-height: 42px;
    max-width: 250px;
    padding: 4px 7px;
    align-items: center;
    gap: 9px;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-radius: 8px;
}

.account-trigger:hover[b-bnhc460qp5],
.account-trigger:focus-visible[b-bnhc460qp5] { background: var(--sidebar-hover); }

.avatar[b-bnhc460qp5] {
    display: grid;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    place-items: center;
    color: #fff;
    font-size: .68rem;
    font-weight: 750;
    background: linear-gradient(135deg, var(--avatar-start), var(--avatar-end));
    border-radius: 50%;
}

.account-copy[b-bnhc460qp5] {
    display: grid;
    min-width: 0;
    text-align: left;
}

.account-copy strong[b-bnhc460qp5],
.account-copy small[b-bnhc460qp5] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-copy strong[b-bnhc460qp5] { font-size: .76rem; }
.account-copy small[b-bnhc460qp5] { color: var(--muted); font-size: .63rem; }

.account-dropdown[b-bnhc460qp5] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 60;
    width: 228px;
    padding: 6px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 9px;
    box-shadow: var(--popover-shadow);
}

.account-dropdown-summary[b-bnhc460qp5] {
    display: grid;
    padding: 8px 10px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--line);
}

.account-dropdown-summary strong[b-bnhc460qp5] { color: var(--ink); font-size: .78rem; }
.account-dropdown-summary span[b-bnhc460qp5] { overflow: hidden; color: var(--muted); font-size: .68rem; text-overflow: ellipsis; }

.account-dropdown button[b-bnhc460qp5] {
    display: flex;
    width: 100%;
    padding: 9px 10px;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    font-size: .78rem;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 6px;
}

.account-dropdown button:hover[b-bnhc460qp5],
.account-dropdown button:focus-visible[b-bnhc460qp5] { background: var(--sidebar-hover); }
.account-dropdown .danger-text[b-bnhc460qp5] { color: var(--danger); }

.page-content[b-bnhc460qp5] {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 24px 32px 36px;
}

/* 全幅工作台页面（如体验中心）：内容区贴边零内边距，页面自身管理滚动。
 * 放这里而非页面 scoped CSS，是因为 scoped CSS 无法上溯布局层元素。
 * 2026-10-14 用户定稿：体验中心保留控制台左侧导航与顶栏（不再独立成屏），
 * 仅零内边距让聊天工作区铺满内容区。 */
.page-content:has(> .model-chat-page)[b-bnhc460qp5] {
    padding: 0;
}

/* 模型监控一屏仪表盘：内容区只留 10px 呼吸边，页面级不出滚动条（2026-10-20）。 */
.page-content:has(> .ops-dashboard)[b-bnhc460qp5] {
    padding: 10px 14px;
}

.sidebar-scrim[b-bnhc460qp5] { display: none; }

@media (max-width: 1040px) {
    .account-copy[b-bnhc460qp5] { display: none; }
}

@media (max-width: 860px) {
    .app-sidebar[b-bnhc460qp5],
    .app-sidebar.collapsed[b-bnhc460qp5] {
        width: 256px;
        transform: translateX(-100%);
    }

    .app-sidebar.open[b-bnhc460qp5] { transform: translateX(0); }

    .app-main[b-bnhc460qp5],
    .app-main.sidebar-is-collapsed[b-bnhc460qp5] { margin-left: 0; }

    .app-topbar[b-bnhc460qp5] { padding: 0 14px; }
    .mobile-menu[b-bnhc460qp5] { display: inline-grid; }

    .docs-shell .docs-shell-console-link[b-bnhc460qp5] {
        width: 36px;
        padding: 0;
        justify-content: center;
    }

    .docs-shell .docs-shell-console-link span[b-bnhc460qp5] { display: none; }
    .docs-shell .topbar-context[b-bnhc460qp5] { max-width: 90px; }
    .docs-shell .topbar-context h1[b-bnhc460qp5] { font-size: .9rem; }

    .sidebar-scrim[b-bnhc460qp5] {
        position: fixed;
        inset: 0;
        z-index: 35;
        display: block;
        background: rgba(10, 15, 13, .5);
        border: 0;
    }

    .page-content[b-bnhc460qp5] { padding: 20px 16px 28px; }
}

@media (max-width: 620px) {
    .topbar-context p[b-bnhc460qp5],
    .balance-summary[b-bnhc460qp5] { display: none; }

    .app-topbar[b-bnhc460qp5] { gap: 8px; }
    .topbar-actions[b-bnhc460qp5] { gap: 3px; }
    .account-trigger[b-bnhc460qp5] { padding: 4px; }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.nav-shell[b-sur8hum3gy] {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 0;
    flex-direction: column;
    color: var(--sidebar-text);
    font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
}

.nav-group-toggle[b-sur8hum3gy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    padding: 6px 11px;
    border: 0;
    background: transparent;
    color: var(--sidebar-text);
    font: inherit;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 650;
    letter-spacing: .01em;
    cursor: pointer;
}
.nav-group-toggle:hover[b-sur8hum3gy] { color: var(--ink); background: var(--sidebar-hover); }
.nav-section-label[b-sur8hum3gy] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.nav-subgroup[b-sur8hum3gy] {
    display: grid;
    gap: 2px;
}

.nav-group-button[b-sur8hum3gy] {
    color: var(--sidebar-text);
    font-family: inherit;
    font-weight: 650;
}

.nav-group-button[aria-expanded="true"][b-sur8hum3gy] {
    color: var(--ink);
}

.brand-row[b-sur8hum3gy] {
    display: flex;
    flex: 0 0 64px;
    height: 64px;
    padding: 0 17px;
    align-items: center;
    border-bottom: 1px solid var(--sidebar-border);
}

.brand[b-sur8hum3gy] {
    display: flex;
    position: relative;
    min-width: 0;
    align-items: center;
    gap: 11px;
    color: var(--ink);
}

.brand-logo-link[b-sur8hum3gy] {
    display: flex;
    flex: 0 0 36px;
    text-decoration: none;
}

.brand-logo-link[b-sur8hum3gy]  .brand-logo {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    filter: drop-shadow(0 4px 10px rgba(39, 121, 88, .16));
}

.brand-logo-image[b-sur8hum3gy] {
    display: block;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    object-fit: contain;
    border-radius: 9px;
    filter: drop-shadow(0 4px 10px rgba(39, 121, 88, .16));
}

.brand-copy[b-sur8hum3gy] {
    display: flex;
    position: relative;
    min-width: 0;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.brand-title[b-sur8hum3gy] {
    color: var(--ink);
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: -.015em;
    text-decoration: none;
}

.side-nav[b-sur8hum3gy] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px 10px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--sidebar-border) transparent;
}

.sidebar-section[b-sur8hum3gy] {
    display: grid;
    gap: 3px;
}

.sidebar-section + .sidebar-section[b-sur8hum3gy] {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--sidebar-border);
}

.nav-section-title[b-sur8hum3gy] {
    display: flex;
    min-height: 24px;
    padding: 2px 11px 5px;
    align-items: center;
    color: var(--sidebar-muted);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.side-nav[b-sur8hum3gy]  a,
.nav-group-button[b-sur8hum3gy],
.sidebar-control[b-sur8hum3gy] {
    display: flex;
    width: 100%;
    min-height: 39px;
    padding: 7px 10px;
    align-items: center;
    gap: 11px;
    color: var(--sidebar-text);
    font-family: inherit;
    font-size: .84rem;
    font-weight: 560;
    text-align: left;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: 8px;
    transition: color .14s ease, background-color .14s ease;
}

.side-nav[b-sur8hum3gy]  a:hover,
.nav-group-button:hover[b-sur8hum3gy],
.sidebar-control:hover[b-sur8hum3gy] {
    color: var(--ink);
    background: var(--sidebar-hover);
}

.side-nav[b-sur8hum3gy]  a.active,
.nav-group-button.group-active[b-sur8hum3gy] {
    color: var(--primary-strong);
    background: var(--sidebar-active);
    font-weight: 650;
}

.side-nav[b-sur8hum3gy]  a.active {
    box-shadow: inset 3px 0 var(--primary);
}

.side-nav[b-sur8hum3gy]  .lucide-icon,
.nav-group-button[b-sur8hum3gy]  .lucide-icon,
.sidebar-control[b-sur8hum3gy]  .lucide-icon {
    flex: 0 0 19px;
    width: 19px;
    height: 19px;
}

.nav-label-copy[b-sur8hum3gy] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-section .nav-label-copy[b-sur8hum3gy],
.personal-section .nav-label-copy[b-sur8hum3gy],
.user-section .nav-label-copy[b-sur8hum3gy] {
    font-family: inherit;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.35;
}

/* 分组标题与挂在分区下的直达链接（如「系统设置」、用户侧主导航）同属一级菜单，
   字号/字重保持一致；嵌套在 .nav-children 里的二级链接不受影响。 */
.sidebar-section[b-sur8hum3gy] >  a {
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.35;
}

.group-label[b-sur8hum3gy] {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.nav-group-button[aria-expanded="true"] .group-label[b-sur8hum3gy]  .lucide-icon {
    transform: rotate(180deg);
}

.group-label[b-sur8hum3gy]  .lucide-icon { transition: transform .16s ease; }

.nav-children[b-sur8hum3gy] {
    display: grid;
    gap: 2px;
    margin: 1px 0 3px 17px;
    padding-left: 9px;
    border-left: 1px solid var(--sidebar-border);
}

.nav-children[b-sur8hum3gy]  a {
    min-height: 34px;
    padding: 6px 9px;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.35;
}

.sidebar-bottom[b-sur8hum3gy] {
    display: grid;
    flex: 0 0 auto;
    gap: 3px;
    padding: 10px;
    border-top: 1px solid var(--sidebar-border);
}

.sidebar-control[b-sur8hum3gy] { color: var(--sidebar-muted); }

.nav-shell.collapsed .brand-row[b-sur8hum3gy] { padding: 0; justify-content: center; }
.nav-shell.collapsed .brand-copy[b-sur8hum3gy],
.nav-shell.collapsed .nav-label-copy[b-sur8hum3gy],
.nav-shell.collapsed[b-sur8hum3gy]  .nav-label-copy,
.nav-shell.collapsed .nav-section-title[b-sur8hum3gy] { display: none; }

.nav-shell.collapsed .side-nav[b-sur8hum3gy] { padding-inline: 8px; }
.nav-shell.collapsed .sidebar-section + .sidebar-section[b-sur8hum3gy] { margin-top: 8px; padding-top: 8px; }
.nav-shell.collapsed .side-nav[b-sur8hum3gy]  a,
.nav-shell.collapsed .nav-group-button[b-sur8hum3gy],
.nav-shell.collapsed .sidebar-control[b-sur8hum3gy] {
    padding-inline: 0;
    justify-content: center;
}

.nav-shell.collapsed .sidebar-bottom[b-sur8hum3gy] { padding-inline: 8px; }

@media (max-width: 860px) {
    .nav-shell:not(.collapsed) .brand-row[b-sur8hum3gy] { padding: 0 17px; justify-content: flex-start; }
    .nav-shell.collapsed .brand-row[b-sur8hum3gy] { padding: 0; justify-content: center; }
    .nav-shell.collapsed .brand-copy[b-sur8hum3gy],
    .nav-shell.collapsed .nav-label-copy[b-sur8hum3gy],
    .nav-shell.collapsed[b-sur8hum3gy]  .nav-label-copy,
    .nav-shell.collapsed .nav-section-title[b-sur8hum3gy] { display: none; }
    .nav-shell:not(.collapsed) .side-nav[b-sur8hum3gy] { padding-inline: 10px; }
    .nav-shell.collapsed .side-nav[b-sur8hum3gy] { padding-inline: 8px; }
    .nav-shell:not(.collapsed) .side-nav[b-sur8hum3gy]  a,
    .nav-shell:not(.collapsed) .nav-group-button[b-sur8hum3gy],
    .nav-shell:not(.collapsed) .sidebar-control[b-sur8hum3gy] { padding-inline: 10px; justify-content: flex-start; }
    .nav-shell.collapsed .side-nav[b-sur8hum3gy]  a,
    .nav-shell.collapsed .nav-group-button[b-sur8hum3gy],
    .nav-shell.collapsed .sidebar-control[b-sur8hum3gy] { padding-inline: 0; justify-content: center; }
}
/* /Pages/Account.razor.rz.scp.css */
.profile-shell[b-ns0uqryibz] {
    display: grid;
    width: min(950px, 100%);
    margin: 0 auto;
    gap: 24px;
}

.profile-hero[b-ns0uqryibz],
.profile-card[b-ns0uqryibz] {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(20, 35, 29, .03);
}

.profile-hero[b-ns0uqryibz] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 28px 32px;
    background: var(--surface);
    border-color: color-mix(in srgb, var(--primary) 18%, var(--line));
}

.profile-hero-avatar[b-ns0uqryibz],
.avatar-editor-preview[b-ns0uqryibz] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: var(--primary);
    box-shadow: 0 12px 28px rgba(40, 116, 90, .2);
}

.profile-hero-avatar[b-ns0uqryibz] {
    width: 80px;
    height: 80px;
    border-radius: 27px;
    font-size: 1.55rem;
    font-weight: 760;
}

.profile-hero-avatar img[b-ns0uqryibz],
.avatar-editor-preview img[b-ns0uqryibz] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-hero-main[b-ns0uqryibz] {
    display: grid;
    min-width: 0;
    flex: 1 1 auto;
    gap: 20px;
}

.profile-hero-copy[b-ns0uqryibz],
.profile-hero-copy > div[b-ns0uqryibz] {
    min-width: 0;
}

.profile-hero-title[b-ns0uqryibz] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.profile-hero-title h2[b-ns0uqryibz] {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    font-size: 1.55rem;
    font-weight: 720;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-hero-copy > p[b-ns0uqryibz] {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .86rem;
}

.profile-source-chips[b-ns0uqryibz] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 9px;
}

.profile-source-chips span[b-ns0uqryibz] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    color: var(--muted);
    background: color-mix(in srgb, var(--surface) 84%, transparent);
    border: 1px solid color-mix(in srgb, var(--primary) 14%, var(--line));
    border-radius: 999px;
    font-size: .7rem;
}

.profile-metrics[b-ns0uqryibz] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.profile-metrics article[b-ns0uqryibz] {
    display: grid;
    gap: 3px;
    padding: 13px 15px;
    background: color-mix(in srgb, var(--surface) 88%, transparent);
    border: 1px solid color-mix(in srgb, var(--surface) 74%, var(--line));
    border-radius: 16px;
    box-shadow: 0 2px 7px rgba(21, 35, 30, .035);
}

.profile-metrics small[b-ns0uqryibz] {
    color: color-mix(in srgb, var(--muted) 74%, transparent);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .13em;
}

.profile-metrics strong[b-ns0uqryibz] {
    font-size: 1.06rem;
    font-weight: 720;
}

.profile-card-header[b-ns0uqryibz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--line);
}

.profile-card-header h2[b-ns0uqryibz],
.profile-contact-card h2[b-ns0uqryibz] {
    margin: 0;
    font-size: 1.03rem;
    font-weight: 700;
}

.profile-card-header p[b-ns0uqryibz],
.profile-contact-card p[b-ns0uqryibz] {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .79rem;
}

.profile-card-body[b-ns0uqryibz] {
    padding: 22px 24px;
}

.profile-basics-grid[b-ns0uqryibz] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    padding: 24px;
}

.profile-inset-card[b-ns0uqryibz] {
    min-width: 0;
    padding: 20px;
    background: color-mix(in srgb, var(--surface-soft) 86%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 20px;
}

.avatar-editor[b-ns0uqryibz] {
    display: grid;
    align-content: start;
    gap: 15px;
}

.avatar-editor-preview[b-ns0uqryibz] {
    width: 64px;
    height: 64px;
    border-radius: 17px;
    font-size: 1.2rem;
    font-weight: 750;
}

.avatar-editor-copy h3[b-ns0uqryibz],
.profile-editor h3[b-ns0uqryibz] {
    margin: 0;
    font-size: .92rem;
}

.avatar-editor-copy p[b-ns0uqryibz] {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .76rem;
}

.avatar-actions[b-ns0uqryibz] {
    margin-top: 0;
}

.file-button[b-ns0uqryibz] {
    cursor: pointer;
}

.visually-hidden-file[b-ns0uqryibz] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.profile-editor[b-ns0uqryibz] {
    display: grid;
    align-content: start;
    gap: 17px;
}

.profile-editor form[b-ns0uqryibz],
.password-form[b-ns0uqryibz] {
    display: grid;
}

.profile-form-action[b-ns0uqryibz] {
    display: flex;
    justify-content: flex-end;
}

.profile-binding-grid[b-ns0uqryibz] {
    display: grid;
    gap: 12px;
    padding: 24px;
}

.profile-binding-item[b-ns0uqryibz] {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 15px 16px;
    background: color-mix(in srgb, var(--surface-soft) 68%, var(--surface));
    border: 1px solid var(--line);
    border-radius: 15px;
}

.provider-avatar[b-ns0uqryibz] {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    color: #fff;
    background: #53615b;
    border-radius: 13px;
    font-size: .86rem;
    font-weight: 760;
}

.provider-avatar.email[b-ns0uqryibz] { background: var(--primary); }
.provider-avatar.linuxdo[b-ns0uqryibz] { background: #282d31; }
.provider-avatar.dingtalk[b-ns0uqryibz] { background: #1677ff; }
.provider-avatar.oidc[b-ns0uqryibz] { background: #7c5ce3; }
.provider-avatar.wechat[b-ns0uqryibz] { background: #07c160; }

.provider-main[b-ns0uqryibz] {
    min-width: 0;
}

.provider-title[b-ns0uqryibz] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.provider-title h3[b-ns0uqryibz] {
    margin: 0;
    font-size: .88rem;
}

.provider-main p[b-ns0uqryibz] {
    margin: 3px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-size: .72rem;
    text-overflow: ellipsis;
}

.provider-identity[b-ns0uqryibz] {
    color: var(--ink) !important;
}

.provider-actions[b-ns0uqryibz] {
    display: flex;
    align-items: center;
    gap: 7px;
}

.email-binding-form[b-ns0uqryibz] {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 12px;
    padding: 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.email-binding-form .form-field[b-ns0uqryibz] {
    margin-bottom: 0;
}

.input-action-row[b-ns0uqryibz] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.profile-card-alert[b-ns0uqryibz] {
    margin: 20px 24px 0;
}

.profile-sources-card[b-ns0uqryibz] {
    padding-bottom: 20px;
}

.profile-source-list[b-ns0uqryibz] {
    display: grid;
    gap: 10px;
    padding: 20px 24px 4px;
}

.profile-source-list > div[b-ns0uqryibz] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    color: var(--muted);
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 14px;
    font-size: .76rem;
}

.profile-contact-card[b-ns0uqryibz] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 24px;
    color: color-mix(in srgb, var(--primary) 78%, var(--ink));
    background: var(--primary-soft);
    border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--line));
    border-radius: 6px;
}

.contact-icon[b-ns0uqryibz] {
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    place-items: center;
    color: var(--primary);
    background: color-mix(in srgb, var(--primary-soft) 46%, var(--surface));
    border-radius: 13px;
}

.password-card .profile-card-body[b-ns0uqryibz] {
    max-width: 620px;
}

.password-form small[b-ns0uqryibz] {
    color: var(--muted);
    font-size: .69rem;
}

@media (max-width: 760px) {
    .profile-hero[b-ns0uqryibz] {
        padding: 22px;
        flex-direction: column;
    }

    .profile-hero-main[b-ns0uqryibz] {
        width: 100%;
    }

    .profile-metrics[b-ns0uqryibz],
    .profile-basics-grid[b-ns0uqryibz],
    .email-binding-form[b-ns0uqryibz] {
        grid-template-columns: 1fr;
    }

    .profile-basics-grid[b-ns0uqryibz],
    .profile-binding-grid[b-ns0uqryibz] {
        padding: 18px;
    }

    .profile-binding-item[b-ns0uqryibz] {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .provider-actions[b-ns0uqryibz],
    .email-binding-form[b-ns0uqryibz] {
        grid-column: 1 / -1;
    }

    .provider-actions .button[b-ns0uqryibz] {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .profile-metrics[b-ns0uqryibz] {
        grid-template-columns: 1fr;
    }

    .profile-card-header[b-ns0uqryibz],
    .profile-card-body[b-ns0uqryibz],
    .profile-contact-card[b-ns0uqryibz] {
        padding-right: 18px;
        padding-left: 18px;
    }

    .input-action-row[b-ns0uqryibz] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/AdminAlertEvents.razor.rz.scp.css */
/* M3 边界收敛（2026-10-18）：告警事件页 scoped 样式，规则由 AdminOps.razor.css
   同名选择器 verbatim 迁入（ops-dashboard/ops-card/ops-table/card-header 等
   骨架类与全局 AppModal/表单体系不在本文件重复），取值全部来自既有令牌
   与原组件已用量，无新增颜色/字号/间距。 */

.ops-dashboard[b-g8vgd179d5] {
    display: grid;
    gap: 18px;
    padding-bottom: 42px;
    color: var(--ink);
}

.ops-title-block h2[b-g8vgd179d5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--ink);
    font-size: 1.05rem;
    font-weight: 800;
}

.ops-title-block h2 :deep(svg)[b-g8vgd179d5] { color: #3b82f6; }

.ops-ready-line[b-g8vgd179d5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    color: var(--muted);
    font-size: .7rem;
}

/* 告警页接手 ops-dashboard 骨架：卡片壳由本类承接（AdminOps 同名规则迁入）。 */
.ops-card[b-g8vgd179d5] {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: var(--shadow-sm);
}

.card-header[b-g8vgd179d5] { display: flex; min-height: 56px; padding: 14px 16px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.card-header h3[b-g8vgd179d5] { margin: 0; color: var(--ink); font-size: .78rem; font-weight: 750; }
.card-header p[b-g8vgd179d5] { margin: 3px 0 0; color: var(--muted); font-size: .62rem; }

.text-button[b-g8vgd179d5],
.danger-link[b-g8vgd179d5] { padding: 0; color: #2563eb; background: transparent; border: 0; font-size: .66rem; font-weight: 700; cursor: pointer; }

/* .primary-button/.secondary-button 本地定义已删（2026-10-21 统一）：收敛到 app.css 全局定义
   （值对齐 .button = 上游管理基准），弹窗按钮与全站管理页一致。 */

.success[b-g8vgd179d5] { color: #059669 !important; }
.warning[b-g8vgd179d5] { color: #d97706 !important; }
.danger[b-g8vgd179d5] { color: #dc2626 !important; }
.info[b-g8vgd179d5] { color: #2563eb !important; }
.muted[b-g8vgd179d5] { color: #64748b !important; }

/* 弹窗内错误提示（AppModal 内容延伸），与 AdminOps 同名规则一致。 */
.inline-alert[b-g8vgd179d5] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #fecaca; border-radius: 7px; color: #b91c1c; font-size: .74rem; background: #fef2f2; }

/* 2026-11-02 全站行式：筛选字段 label 左/控件右（与 app.css 页面级行式模板同款）。 */
.alert-event-filters[b-g8vgd179d5] { display: grid; grid-template-columns: minmax(180px, 220px) minmax(130px, 150px) minmax(130px, 150px) minmax(140px, 160px) auto; align-items: center; column-gap: 8px; row-gap: 6px; padding: 10px 16px; border-bottom: 1px solid var(--line); }
.alert-event-filters .form-field[b-g8vgd179d5] { display: grid; grid-template-columns: minmax(52px, 68px) minmax(0, 1fr); align-items: center; column-gap: 6px; gap: 0; margin-bottom: 0; }
.alert-event-filters .quick-date-range[b-g8vgd179d5] { display: grid; grid-template-columns: minmax(52px, 68px) minmax(0, 1fr); align-items: center; column-gap: 6px; }
.alert-event-filters select[b-g8vgd179d5] { min-width: 96px; min-height: 36px; }

/* 统一时间范围组件（2026-10-19）：筛选区与历史区的宿主容器放开裁剪，
   QuickDateRange 下探菜单（absolute z40）不被卡片/历史区块边界截断；
   容器内表格与卡片同底色，去 hidden 无圆角穿孔。 */
.alert-events-card[b-g8vgd179d5],
.alert-history[b-g8vgd179d5] { overflow: visible; }

.alert-detail-summary[b-g8vgd179d5] { display: flex; padding: 14px; align-items: flex-start; justify-content: space-between; gap: 16px; background: #f7f9f8; border-radius: 8px; }
.alert-detail-summary h3[b-g8vgd179d5] { margin: 9px 0 3px; font-size: .82rem; }
.alert-detail-summary p[b-g8vgd179d5] { margin: 0; color: var(--muted); font-size: .68rem; white-space: pre-wrap; }
.alert-detail-summary .level-badge + .level-badge[b-g8vgd179d5] { margin-left: 5px; }
.alert-detail-actions[b-g8vgd179d5] { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 7px; }
.alert-detail-actions label[b-g8vgd179d5] { display: grid; gap: 3px; color: var(--muted); font-size: .6rem; }

.alert-detail-grid[b-g8vgd179d5] { margin-top: 12px; }
.alert-detail-links[b-g8vgd179d5] { display: flex; margin: 10px 0; justify-content: flex-end; }
.alert-history[b-g8vgd179d5] { display: flex; flex-direction: column; margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.alert-history > header[b-g8vgd179d5] { display: flex; padding: 10px 12px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.alert-history h3[b-g8vgd179d5] { margin: 0; font-size: .72rem; }
.alert-history p[b-g8vgd179d5] { margin: 3px 0 0; color: var(--muted); font-size: .63rem; }
.alert-history .empty-history[b-g8vgd179d5] { padding: 24px; text-align: center; }

.error-detail-grid[b-g8vgd179d5] { display: grid; padding: 14px; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.error-detail-grid article[b-g8vgd179d5] { padding: 9px; background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }
.error-detail-grid article.span-two[b-g8vgd179d5] { grid-column: 1 / -1; }
.error-detail-grid article > span[b-g8vgd179d5] { color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; display: block; margin-bottom: 4px; }
.error-detail-grid article b[b-g8vgd179d5] { color: var(--ink); font-size: .72rem; }
.error-detail-grid article > div[b-g8vgd179d5] { display: flex; min-width: 0; align-items: center; gap: 8px; }
.error-detail-grid code[b-g8vgd179d5] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 2px 4px; color: #475569; background: #f1f5f9; border-radius: 3px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.clickable-row[b-g8vgd179d5] { cursor: pointer; }
.clickable-row:hover td[b-g8vgd179d5] { background: #f8faf9; }
.load-more-row[b-g8vgd179d5] { display: flex; padding: 10px 16px; justify-content: center; border-top: 1px solid var(--line); }
/* 工具栏统一（2026-11-10 批次）：单行工具栏与 DxGrid 壳连体，去掉 DX 自带搜索框留下的空档。 */
.alert-events-card[b-g8vgd179d5]  .alert-events-grid.dxbl-grid { border-top: 0; }

.table-scroll[b-g8vgd179d5] { overflow: auto; }
.ops-table[b-g8vgd179d5] { width: 100%; border-collapse: collapse; font-size: .68rem; }
.ops-table th[b-g8vgd179d5] { padding: 9px 12px; color: #66736d; text-align: left; background: #f7f9f8; border-bottom: 1px solid var(--line); font-size: .64rem; font-weight: 750; }
.ops-table td[b-g8vgd179d5] { max-width: 360px; padding: 10px 12px; vertical-align: top; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.ops-table td > b[b-g8vgd179d5],
.ops-table td > small[b-g8vgd179d5] { display: block; }
.ops-table td > small[b-g8vgd179d5] { margin-top: 2px; color: var(--muted); }
.ops-table code[b-g8vgd179d5] { padding: 2px 4px; color: #475569; background: #f1f5f9; border-radius: 3px; font-size: .63rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.empty-cell[b-g8vgd179d5] { padding: 32px !important; color: var(--muted); text-align: center !important; }

.level-badge[b-g8vgd179d5] { display: inline-flex; padding: 2px 6px; align-items: center; color: #2563eb; background: #eff6ff; border-radius: 99px; font-size: .58rem; font-weight: 800; }
.level-badge.success[b-g8vgd179d5] { color: #047857 !important; background: #d1fae5; }
.level-badge.warning[b-g8vgd179d5] { color: #b45309 !important; background: #fef3c7; }
.level-badge.danger[b-g8vgd179d5] { color: #b91c1c !important; background: #fee2e2; }
.level-badge.muted[b-g8vgd179d5] { color: #475569 !important; background: #e2e8f0; }

.form-grid[b-g8vgd179d5] { display: grid; gap: 13px; }
.form-grid.two[b-g8vgd179d5] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid label[b-g8vgd179d5] { display: grid; align-content: start; gap: 5px; color: #45514c; font-size: .69rem; font-weight: 650; }
.form-grid input[b-g8vgd179d5],
.form-grid select[b-g8vgd179d5],
.form-grid textarea[b-g8vgd179d5] { width: 100%; }
.form-grid input:not([type="checkbox"])[b-g8vgd179d5],
.form-grid select[b-g8vgd179d5],
.form-grid textarea[b-g8vgd179d5] { min-height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }
.form-grid input:not([type="checkbox"]):focus[b-g8vgd179d5],
.form-grid select:focus[b-g8vgd179d5],
.form-grid textarea:focus[b-g8vgd179d5] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.form-grid .span-two[b-g8vgd179d5] { grid-column: 1 / -1; }
.form-grid .check-field[b-g8vgd179d5] { display: flex; min-height: 34px; padding: 6px 9px; align-items: center; gap: 8px; background: #f7f9f8; border-radius: 6px; }
.form-grid .check-field input[b-g8vgd179d5] { width: 15px; min-height: auto; }

.modal-toolbar[b-g8vgd179d5] { justify-content: space-between; margin-bottom: 12px; }

.footer-spacer[b-g8vgd179d5] { flex: 1; }

:deep(.modal-footer)[b-g8vgd179d5] { display: flex; align-items: center; gap: 8px; }

/* 与 AdminOps 同口径的响应式降级（max-width 逐档收窄筛选）。 */
@media (max-width: 920px) {
    .card-header[b-g8vgd179d5] { align-items: flex-start; flex-direction: column; }
    .alert-detail-summary[b-g8vgd179d5] { flex-direction: column; }
}

@media (max-width: 640px) {
    .form-grid.two[b-g8vgd179d5] { grid-template-columns: 1fr; }
    .form-grid .span-two[b-g8vgd179d5] { grid-column: auto; }
    .error-detail-grid[b-g8vgd179d5] { grid-template-columns: 1fr; }
    .error-detail-grid article.span-two[b-g8vgd179d5] { grid-column: auto; }
    .alert-event-filters[b-g8vgd179d5],
    .alert-detail-actions[b-g8vgd179d5] { align-items: stretch; flex-direction: column; }
    .alert-event-filters > *[b-g8vgd179d5],
    .alert-detail-actions > *[b-g8vgd179d5] { width: 100%; }
}

/* 错误告警条（2026-10-21 样式修复）：本页 scoped 此前无 .ops-alert 样式，
   「无法连接到服务 [重试]」按浏览器原生控件裸奔；对齐卡片风格。 */
.ops-alert[b-g8vgd179d5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 10px 14px;
    color: #b91c1c;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: .78rem;
}

.ops-alert button[b-g8vgd179d5] {
    min-height: 30px;
    padding: 4px 14px;
    color: var(--ink);
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 6px;
    font: inherit;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease;
}

.ops-alert button:hover[b-g8vgd179d5] { color: var(--primary); border-color: var(--primary); }
/* /Pages/AdminBackup.razor.rz.scp.css */
.backup-settings-page[b-aiwg2xzsx5] {
    display: grid;
    gap: 18px;
    padding-bottom: 96px;
}

.backup-page-grid[b-aiwg2xzsx5],
.backup-card[b-aiwg2xzsx5] {
    display: grid;
    gap: 1rem;
}

.backup-card .section-header[b-aiwg2xzsx5] {
    align-items: flex-start;
}

/* Keep form content aligned with the padded settings cards. */
.backup-card > .form-grid[b-aiwg2xzsx5] {
    padding: 20px;
}

.backup-card > .section-footer-actions[b-aiwg2xzsx5] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 20px 20px;
}

.text-link[b-aiwg2xzsx5] {
    padding: 0;
    color: var(--primary);
    background: transparent;
    border: 0;
    font: inherit;
    font-size: .72rem;
    font-weight: 700;
    cursor: pointer;
}

.header-toggle[b-aiwg2xzsx5],
.backup-create-actions[b-aiwg2xzsx5],
.backup-create-actions label[b-aiwg2xzsx5],
.row-actions[b-aiwg2xzsx5] {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.header-toggle[b-aiwg2xzsx5],
.backup-create-actions label[b-aiwg2xzsx5] {
    color: var(--muted);
    font-size: .68rem;
}

.header-toggle input[b-aiwg2xzsx5] { width: 18px; height: 18px; accent-color: var(--primary); }
.backup-create-actions[b-aiwg2xzsx5] { flex-wrap: wrap; justify-content: flex-end; }
.backup-create-actions input[b-aiwg2xzsx5] { width: 86px; min-height: 34px; padding: .35rem .5rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }
.backup-history-card[b-aiwg2xzsx5] { min-width: 0; }
.backup-status[b-aiwg2xzsx5] { display: inline-flex; padding: .24rem .48rem; border-radius: 999px; font-size: .6rem; font-weight: 750; white-space: nowrap; }
.backup-status.success[b-aiwg2xzsx5] { color: #047857; background: #d1fae5; }
.backup-status.running[b-aiwg2xzsx5] { color: #1d4ed8; background: #dbeafe; }
.backup-status.danger[b-aiwg2xzsx5] { color: #b91c1c; background: #fee2e2; }
.backup-status.neutral[b-aiwg2xzsx5] { color: var(--muted); background: var(--surface-soft); }
.guide-steps[b-aiwg2xzsx5] { display: grid; margin: 0; padding-left: 1.25rem; gap: 1rem; }
.guide-steps li[b-aiwg2xzsx5] { padding-left: .25rem; }
.guide-steps b[b-aiwg2xzsx5],
.guide-steps span[b-aiwg2xzsx5] { display: block; }
.guide-steps span[b-aiwg2xzsx5] { margin-top: .2rem; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.guide-steps code[b-aiwg2xzsx5] { display: inline-block; margin-top: .3rem; padding: .3rem .45rem; background: var(--surface-soft); border-radius: 5px; font-size: .7rem; }

@media (max-width: 760px) {
    .operations-header[b-aiwg2xzsx5],
    .backup-create-actions[b-aiwg2xzsx5] { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 520px) {
    .backup-settings-page[b-aiwg2xzsx5] {
        gap: 14px;
    }

    .backup-card > .form-grid[b-aiwg2xzsx5] {
        padding: 15px;
    }

    .backup-card > .section-footer-actions[b-aiwg2xzsx5] {
        padding: 0 15px 15px;
    }
}
/* /Pages/AdminKeyRate.razor.rz.scp.css */
/* Key 速率走势页（2026-10-23，URL 直达的管理员专页）。卡片壳与间距对齐运营看板/上游管理基准。 */
/* 工具栏统一（2026-11-10 批次）：外壳复用全局 .model-sequence-toolbar（单行 + 与图表卡连体）。 */
.key-rate-page[b-y3q0clyhls] {
    display: grid;
    gap: 0;
    padding-bottom: 40px;
    color: var(--ink);
}

.key-rate-card[b-y3q0clyhls] {
    min-width: 0;
    padding: 12px 14px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 0;
    border-top: 0;
}

.key-select-trigger[b-y3q0clyhls] {
    display: inline-flex;
    min-width: 260px;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 12px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    font: inherit;
    font-size: .74rem;
    cursor: pointer;
}

.key-select-trigger:hover[b-y3q0clyhls] {
    border-color: var(--line-strong, #cbd5e1);
}

.key-select-placeholder[b-y3q0clyhls] {
    color: var(--muted);
}

.key-rate-status[b-y3q0clyhls] {
    align-self: center;
    color: var(--muted);
    font-size: .8rem;
}

.key-rate-card[b-y3q0clyhls] {
    display: grid;
    gap: 10px;
}

.key-rate-meta[b-y3q0clyhls] {
    color: var(--muted);
    font-size: .72rem;
}

.key-rate-meta b[b-y3q0clyhls] {
    color: var(--ink);
}

/* 选择 Key 弹窗：搜索 + 表格（用户名称/密钥名称/APIKey/创建时间/状态）。 */
.key-modal-body[b-y3q0clyhls] {
    display: grid;
    gap: 12px;
}

.key-search[b-y3q0clyhls] {
    width: 100%;
    min-height: 36px;
    padding: 6px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    font: inherit;
    font-size: .74rem;
}

.key-table[b-y3q0clyhls] {
    width: 100%;
    border-collapse: collapse;
    font-size: .74rem;
}

.key-table th[b-y3q0clyhls] {
    padding: 8px 10px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
    border-bottom: 1px solid var(--line);
}

.key-table td[b-y3q0clyhls] {
    padding: 8px 10px;
    border-bottom: 1px solid var(--line);
}

.key-table td code[b-y3q0clyhls] {
    font-size: .7rem;
}

.key-table tbody tr[b-y3q0clyhls] {
    cursor: pointer;
}

.key-table tbody tr:hover[b-y3q0clyhls] {
    background: var(--surface-soft);
}

.key-table tbody tr.is-selected[b-y3q0clyhls] {
    background: var(--surface-soft);
    outline: 1px solid var(--accent-color, #2563eb);
}

.key-table-empty[b-y3q0clyhls] {
    color: var(--muted);
    text-align: center;
}

.key-status[b-y3q0clyhls] {
    display: inline-flex;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: .64rem;
    font-weight: 700;
    white-space: nowrap;
}

.key-status.ok[b-y3q0clyhls] {
    color: color-mix(in srgb, var(--ink) 32%, #10b981 68%);
    background: color-mix(in srgb, var(--surface) 84%, #10b981 16%);
}

.key-status.off[b-y3q0clyhls] {
    color: var(--muted);
    background: var(--surface-soft);
}
/* /Pages/AdminOps.razor.rz.scp.css */
.ops-dashboard[b-asqjb7ot50] {
    display: grid;
    gap: 18px;
    padding-bottom: 42px;
    color: var(--ink);
}

.ops-dashboard.ops-fullscreen[b-asqjb7ot50] {
    position: fixed;
    inset: 0;
    z-index: 900;
    overflow: auto;
    padding: 22px;
    background: var(--page-bg, #f4f7f5);
}

.ops-alert[b-asqjb7ot50] { margin: 0; }

.ops-hero-card[b-asqjb7ot50],
.ops-card[b-asqjb7ot50] {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: var(--shadow-sm);
}

.ops-hero-card[b-asqjb7ot50] { padding: 20px; }

/* 英雄卡放开裁剪（2026-10-19 统一时间范围组件）：卡片只含标题/工具栏，无需 overflow:hidden 剪内涝；
   放开后工具栏里 QuickDateRange 的下探菜单（absolute z40）才不会被卡片边界截断。 */
.ops-hero-card[b-asqjb7ot50] { overflow: visible; }

/* 筛选条（2026-10-21 用户定稿）：刷新按钮退役（自动刷新 60s 兜底），时间范围紧挨页签（左对齐组）。 */
/* 筛选条（2026-10-21 三次调整，方案 B）：时间范围回到页签右侧组成左对齐组（用户反馈：
   时间筛选属于筛选控件，与视图页签同侧；右侧留白）。 */
.ops-toolbar[b-asqjb7ot50] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    padding: 16px;
    border-bottom: 1px solid var(--line);
}

/* 时间范围控件（2026-10-21 三次调整）：「时间范围」文字标签退役（用户反馈），仅留日历触发器；
   触发器恢复四角圆角（原左半框圆角随标签退役）。仅作用本页工具栏。
   注意：本 SDK 下 scoped css 的 ::deep 必须用无括号形式（::deep .x）——括号形式 ::deep(.x) 会
   编译成非法选择器 `.parent[b-id] (.x)` 被浏览器整条丢弃（AdminPromptAudit 同坑待修）。 */
.ops-toolbar[b-asqjb7ot50]  .quick-date-range { flex-wrap: nowrap; gap: 0; }

.ops-toolbar[b-asqjb7ot50]  .quick-date-select-wrap {
    min-width: 150px;
    border-radius: 6px;
}

/* 「查看明细」入口（2026-10-21 三次反馈）：明细是钻取数据层不是并列分析视图——退出页签行，
   以文字按钮落在工具栏最右；2026-10-21 五次反馈：点击改弹窗打开（不覆盖当前页），无视图态。 */

/* 选择器列表收口（2026-10-18 顺手修复）：此前末行尾随逗号使整条标题归零规则失效。 */
.ops-title-block h2[b-asqjb7ot50],
.card-header h3[b-asqjb7ot50],
.settings-section h3[b-asqjb7ot50] {
    margin: 0;
    color: var(--ink);
}

.ops-title-block h2[b-asqjb7ot50] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.05rem;
    font-weight: 800;
}

.ops-title-block h2 :deep(svg)[b-asqjb7ot50] { color: #3b82f6; }

.ops-ready-line[b-asqjb7ot50] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    color: var(--muted);
    font-size: .7rem;
}

.status-dot[b-asqjb7ot50] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.status-dot.ready[b-asqjb7ot50] { background: var(--status-ok); }
.status-dot.loading[b-asqjb7ot50] { background: var(--muted); }

.ops-toolbar-actions[b-asqjb7ot50],
.header-actions[b-asqjb7ot50],
.modal-toolbar[b-asqjb7ot50],
.editor-actions[b-asqjb7ot50] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.ops-toolbar select[b-asqjb7ot50],
.ops-toolbar input[b-asqjb7ot50],
.ops-error-filters select[b-asqjb7ot50],
.card-controls select[b-asqjb7ot50],
.alert-event-filters select[b-asqjb7ot50],
.alert-detail-actions select[b-asqjb7ot50],
.alert-history select[b-asqjb7ot50],
.system-log-filters select[b-asqjb7ot50],
.system-log-filters input[b-asqjb7ot50],
.modal-filter-row select[b-asqjb7ot50],
.modal-filter-row input[b-asqjb7ot50],
.form-grid input[b-asqjb7ot50],
.form-grid select[b-asqjb7ot50],
.form-grid textarea[b-asqjb7ot50] {
    min-height: 34px;
    padding: 6px 30px 6px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid #cad3ce;
    border-radius: 6px;
    font: inherit;
    font-size: .75rem;
}

/* 筛选区输入统一 36px（与 DevExpress 编辑器/全站口径一致；上表 34px 是历史值，混排 DX 字段后高低不齐）。 */
.alert-event-filters select[b-asqjb7ot50],
.alert-history select[b-asqjb7ot50],
.ops-error-filters select[b-asqjb7ot50],
.system-log-filters select[b-asqjb7ot50],
.system-log-filters input[b-asqjb7ot50] {
    min-height: 36px;
}

/* KPI 带（2026-10-19 四象限改版）：窗口聚合四指标回答「现在好不好」；
   结构复用 ops-card 的表面/描边/圆角量，字号对齐底部可读性排印档位。 */
.ops-kpi-strip[b-asqjb7ot50] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ops-kpi-card[b-asqjb7ot50] {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: var(--shadow-sm);
    /* 指标→明细钻取（2026-10-20）：整卡可点 = 伸展按钮铺满卡面（.ops-kpi-drill），
       hover 反馈让「这是一张能点的卡」可被感知；focus-within 兜底键盘可达。 */
    position: relative;
}

/* hover 只落在含钻取按钮的卡上（:has 2026-10-24）：无钻取的卡（SLA/收入/成本/毛利
   都已提供钻取，防未来新增无钻取卡时出现「不可点却给手型反馈」的假可点）。 */
.ops-kpi-card:has(.ops-kpi-drill):hover[b-asqjb7ot50],
.ops-kpi-card:has(.ops-kpi-drill):focus-within[b-asqjb7ot50] {
    background: var(--surface-hover);
    border-color: var(--muted);
}

/* 伸展按钮：文字透明化，视觉即整卡可点；z-index:0 压底，卡内构成条段按钮 z-index:1 压其上。 */
.ops-kpi-drill[b-asqjb7ot50] {
    position: absolute;
    inset: 0;
    z-index: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: transparent;
    font-size: 0;
    cursor: pointer;
}

.ops-kpi-label[b-asqjb7ot50] { color: var(--muted); font-size: .8rem; font-weight: 700; }
.ops-kpi-value[b-asqjb7ot50] { color: var(--ink); font-size: 1.2rem; font-weight: 800; font-variant-numeric: tabular-nums; }

.ops-toolbar select[b-asqjb7ot50] { min-width: 128px; }
.ops-toolbar input[b-asqjb7ot50] { min-width: 170px; }

/* .primary-button/.secondary-button/.ops-action 本地定义已删（2026-10-21 统一）：
   前两者收敛到 app.css 全局定义（值对齐 .button = 上游管理基准），ops-action 在本页已无标记引用。 */

.ops-user-usage-card[b-asqjb7ot50] { margin-top: 18px; }
.health-subtable-heading[b-asqjb7ot50] { display: flex; min-height: 38px; padding: 12px 16px 8px; align-items: baseline; justify-content: space-between; gap: 10px; }
.health-subtable-heading h4[b-asqjb7ot50] { margin: 0; color: var(--ink); font-size: .78rem; }
.health-subtable-heading span[b-asqjb7ot50] { color: var(--muted); font-size: .68rem; }
/* Top 榜单（2026-10-24 原型定稿）：rank 序号徽标 + 名称 + 右值两行 + 相对榜首条宽；
   行整行可点（影子钻取层同 KPI 卡），top3 序号主色。 */
.ops-rank-card .ops-rank-list[b-asqjb7ot50] { display: grid; }
/* 榜单行是原生 button：UA 默认钮边（2px outset 黑）必须显式清零，
   否则整圈黑框 + 分隔线叠加误读成「线加粗」（2026-10-24 用户反馈实测）。 */
.ops-rank-item[b-asqjb7ot50] { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 4px 10px; padding: 9px 14px; border: 0; text-align: left; background: transparent; cursor: pointer; }
.ops-rank-item:nth-child(n+2)[b-asqjb7ot50] { border-top: 1px solid var(--line-soft); }
.ops-rank-item:hover[b-asqjb7ot50] { background: var(--surface-hover); }
.ops-rank-no[b-asqjb7ot50] { display: inline-flex; width: 20px; height: 20px; align-items: center; justify-content: center; grid-row: span 2; border-radius: 6px; background: var(--surface-muted); color: var(--muted); font-size: .74rem; font-weight: 750; }
.ops-rank-top .ops-rank-no[b-asqjb7ot50] { background: var(--primary-soft); color: var(--primary-strong); }
.ops-rank-name[b-asqjb7ot50] { min-width: 0; font-size: .84rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-rank-warn[b-asqjb7ot50] { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--status-warn); }
.ops-rank-val[b-asqjb7ot50] { grid-row: span 2; color: var(--ink); font-size: .84rem; font-weight: 700; text-align: right; }
.ops-rank-val small[b-asqjb7ot50] { display: block; color: var(--muted); font-size: .7rem; font-weight: 500; }
.ops-rankbar[b-asqjb7ot50] { grid-column: 2; height: 5px; overflow: hidden; border-radius: 3px; background: var(--surface-muted); }
.ops-rankbar i[b-asqjb7ot50] { display: block; height: 100%; border-radius: 3px; background: var(--chart-volume); }
.health-metric-inline[b-asqjb7ot50] { display: flex; flex-wrap: wrap; gap: 5px 14px; }
.health-metric-inline span[b-asqjb7ot50] { white-space: nowrap; }
.health-metric-inline.muted[b-asqjb7ot50] { color: var(--muted); }
/* 厂商健康子区块（原上游卡内的调度分节）已随「调度与连通性」退役（2026-10-24）删除。 */
.ops-vendor-health-table td strong[b-asqjb7ot50] { font-size: .86rem; }
.ops-vendor-health-table td[b-asqjb7ot50] { white-space: nowrap; }
.ops-vendor-health-table td:first-child[b-asqjb7ot50] { white-space: normal; }
.ops-vendor-health-table td:nth-child(3) small[b-asqjb7ot50] { white-space: nowrap; }
/* row-actions button 收敛（2026-10-27 操作栏统一）：表内行按钮改用 app.css 全局 .row-action，
   text-button/danger-link 仅保留给表格外场景（卡片头部刷新、详情复制等）。 */
.text-button[b-asqjb7ot50] { padding: 0; color: var(--status-info); background: transparent; border: 0; font-size: .66rem; font-weight: 700; cursor: pointer; }
.danger-link[b-asqjb7ot50] { padding: 0; color: var(--status-bad) !important; background: transparent; border: 0; font-size: .66rem; font-weight: 700; cursor: pointer; }

/* 旧 breakdown chips、卡内范围页签、范围/产品下拉筛选行（2026-10-24 整体退役）三代替役完毕：
   走势主卡恒画全局窗口，产品维度趋势走产品展开行小图/明细弹窗。 */

.ops-modal-heading[b-asqjb7ot50] {
    justify-content: space-between;
    margin-bottom: 10px;
    color: var(--muted);
    font-size: .72rem;
}

/* 弹窗筛选行（2026-10-21 重排）：等宽栅格 + 动作按钮同排右对齐——
   原 3 列/9 列挤压布局让「查询」折行到左下、组合框截断（「时间从新到旧」显示不全）。 */
.ops-request-filters[b-asqjb7ot50] {
    display: grid;
    grid-template-columns: 160px 220px minmax(0, 320px) auto;
    justify-content: start;
    gap: 8px 10px;
    align-items: center;
    margin-bottom: 12px;
}

/* 错误明细筛选（2026-10-21 整合）：主行=搜索+状态码+动作（搜索占双列宽）；
   「更多筛选」折叠区沿用五列。两行都由弹窗体 16px 内边距承托，不再贴边。 */
.ops-error-filters[b-asqjb7ot50] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px 10px;
    align-items: center;
    margin-bottom: 12px;
}

.ops-error-filters-primary[b-asqjb7ot50] { grid-template-columns: minmax(0, 320px) minmax(0, 170px) auto; justify-content: start; }
.ops-error-filters-primary .filter-actions[b-asqjb7ot50] { grid-column: auto; }
.ops-error-filters + .ops-error-filters[b-asqjb7ot50] { margin-top: -4px; }

.ops-error-filters .filter-actions[b-asqjb7ot50] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.ops-error-filters .filter-actions .secondary-button[b-asqjb7ot50],
.ops-error-filters .filter-actions .primary-button[b-asqjb7ot50] {
    flex: 0 0 auto;
    min-width: 96px;
}

.error-message-button[b-asqjb7ot50] {
    max-width: 420px;
    padding: 0;
    overflow: hidden;
    color: inherit;
    background: transparent;
    border: 0;
    font: inherit;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

.error-message-button:hover[b-asqjb7ot50] { color: var(--status-info); text-decoration: underline; }

.error-detail-grid[b-asqjb7ot50] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.error-detail-grid article[b-asqjb7ot50] {
    display: grid;
    min-width: 0;
    gap: 4px;
    padding: 11px;
    background: var(--surface-soft);
    border: 1px solid var(--line-soft);
    border-radius: 7px;
}

.error-detail-grid article.span-two[b-asqjb7ot50] { grid-column: 1 / -1; }
.error-detail-grid article > span[b-asqjb7ot50] { color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.error-detail-grid article b[b-asqjb7ot50] { min-width: 0; overflow-wrap: anywhere; font-size: .72rem; }
.error-detail-grid article > div[b-asqjb7ot50] { display: flex; min-width: 0; align-items: center; gap: 8px; }
.error-detail-grid code[b-asqjb7ot50] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.latency-summary[b-asqjb7ot50] {
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
    gap: 7px;
}

.latency-summary span[b-asqjb7ot50] {
    padding: 5px 8px;
    color: var(--muted);
    background: #f1f5f9;
    border-radius: 999px;
    font-size: .64rem;
}

.latency-summary b[b-asqjb7ot50] { color: var(--ink); }

.error-payload[b-asqjb7ot50],
.correlated-errors[b-asqjb7ot50] {
    margin-top: 12px;
    padding: 12px;
    background: #f8fafc;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
}

.error-payload h3[b-asqjb7ot50],
.correlated-errors h3[b-asqjb7ot50] { margin: 0 0 8px; font-size: .75rem; }
.error-payload pre[b-asqjb7ot50],
.correlated-errors pre[b-asqjb7ot50] { max-height: 260px; margin: 0; padding: 10px; overflow: auto; color: #dbeafe; background: #172033; border-radius: 6px; font: .68rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.correlated-errors[b-asqjb7ot50] { display: grid; gap: 8px; }
.correlated-errors > p[b-asqjb7ot50] { margin: 0; color: var(--muted); font-size: .7rem; }
.correlated-errors article[b-asqjb7ot50] { padding: 9px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; }
.correlated-errors article header[b-asqjb7ot50] { display: flex; justify-content: space-between; gap: 8px; font-size: .65rem; }
.correlated-errors article p[b-asqjb7ot50] { margin: 5px 0; font-size: .7rem; }
.correlated-errors article small[b-asqjb7ot50] { display: block; margin-bottom: 7px; color: var(--muted); font-size: .62rem; }

.success[b-asqjb7ot50] { color: var(--status-ok) !important; }
.warning[b-asqjb7ot50] { color: var(--status-warn) !important; }
.danger[b-asqjb7ot50] { color: var(--status-bad) !important; }
.info[b-asqjb7ot50] { color: var(--status-info) !important; }
.muted[b-asqjb7ot50] { color: var(--muted) !important; }



/* ── 直观化改版（2026-10-19 定稿）：全局筛选条 / 健康结论条 / KPI 状态点与环比 / 恒定高度面板 ── */

/* [hidden] 保护（定稿 F）：display 类会覆盖 hidden 属性导致隐藏面板仍渲染、卡高翻倍（原型实测踩过），
   面板可见性一律走 hidden 属性。 */
.ops-dashboard [hidden][b-asqjb7ot50] { display: none !important; }

/* A. 全局筛选条退役（2026-10-20 用户决策）：样式随标记整体移除，原行高度让给两张表卡。 */

/* B. 健康结论条退役（2026-10-23 用户定稿）：整块随标记移除，样式同步删除；
   降级提示改用全局 .inline-alert.danger（挂在总览首位），KPI 状态点延续超阈可见性。 */

/* C. KPI 卡「一卡一指标」（2026-10-23 晚用户定稿，参考阿里云监控台）：每卡只剩
   标签 + 主值（超阈变色）+ 状态点；环比箭头、副行小字、错误构成条全部退役
   （构成由状态码分布图承载）。 */
.ops-kpi-label[b-asqjb7ot50] { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .8rem; font-weight: 700; }
/* KPI 卡 ? 说明图标浮于整卡钻取层之上（钻取 z-index:0）：否则悬浮说明被钻取拦截点不到。
   FieldHint 是子组件（根元素带组件自身 scope id），必须 ::deep 穿透。 */
.ops-kpi-label[b-asqjb7ot50]  .field-hint { z-index: 2; }

.ops-kpi-touch[b-asqjb7ot50] { width: 8px; height: 8px; border-radius: 50%; background: var(--status-ok); }
.ops-kpi-touch.warn[b-asqjb7ot50] { background: var(--status-warn); }

.ops-kpi-value.ok[b-asqjb7ot50] { color: var(--success); }
.ops-kpi-value.warning[b-asqjb7ot50] { color: var(--status-warn) !important; }

/* 钻取过滤提示（2026-10-20）：P95 钻取预置 min_duration 后在弹窗 toolbar 明示，防隐形过滤。 */
.ops-drill-hint[b-asqjb7ot50] { margin-left: auto; padding: 2px 8px; color: var(--status-warn); background: var(--status-warn-soft); border-radius: 6px; font-size: .72rem; font-weight: 650; }

/* F. 监控对象双 tab：内容区恒定高度——tab 切换 / 筛选 / 翻页不改变卡高，超高内部滚动。
   一屏化（2026-10-20）：高度交给外壳 grid 行的 flex 分配（.ops-dashboard 作用域内 min-height:0），
   仅 <1180px 纵向降级时用 max-height 兜底恒高语义。 */
.ops-monitor-panel[b-asqjb7ot50] { min-height: 0; overflow-y: auto; }

.ops-prodpanel[b-asqjb7ot50] { display: flex; overflow: hidden; flex-direction: column; }
.ops-prodwrap[b-asqjb7ot50] { flex: 1 1 auto; overflow: auto; }

.ops-table .num[b-asqjb7ot50] { text-align: right; }
/* 截断提示行（2026-10-20）：Take 截断的子表统一「显示前 N（共 M）」副注，不静默丢数据。 */
.ops-take-note[b-asqjb7ot50] { padding: 6px 12px; color: var(--muted); text-align: center; font-size: .7rem; font-weight: 600; letter-spacing: .02em; }

/* 表内占比条（定稿 D：吸收原产品对比图 / 厂商对比图）：条宽=范围内最大值的相对占比。 */
.ops-cellbar-wrap[b-asqjb7ot50] { display: grid; gap: 3px; justify-items: end; }
.ops-cellbar[b-asqjb7ot50] { display: block; width: 76px; height: 3px; overflow: hidden; border-radius: 2px; background: var(--surface-muted); }
.ops-cellbar i[b-asqjb7ot50] { display: block; height: 100%; border-radius: 2px; background: var(--chart-volume); }

/* E. 走势主卡（2026-10-21 用户定稿）：右侧「与图同源」桶数据表退役，图通栏；
   ops-trendbody 保留为图区统一内边距包装（TTFT/E2E 图卡同用）。 */
.ops-trendbody[b-asqjb7ot50] { padding: 8px 12px 10px; }
.ops-trend-plot[b-asqjb7ot50] { min-width: 0; }

/* G. 产品明细弹窗双小图：两列栅格（<920px 折单列），卡片化与产品信息区隔。 */
.sku-detail-charts[b-asqjb7ot50] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sku-detail-charts article[b-asqjb7ot50] { padding: 8px 10px 10px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 6px; }
.sku-detail-charts h4[b-asqjb7ot50] { margin: 2px 0 1px; font-size: .88rem; font-weight: 750; }
.sku-detail-charts p[b-asqjb7ot50] { margin: 0 0 6px; color: var(--muted); font-size: .8rem; }
.sku-detail-charts .ops-chart-empty[b-asqjb7ot50] { margin: 34px 0; color: var(--muted); font-size: .8rem; text-align: center; }
.monitor-chart-card[b-asqjb7ot50] { min-height: 0; }
.monitor-chart-card .empty-state[b-asqjb7ot50] { min-height: 128px; }
.chart-panel-actions[b-asqjb7ot50] { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
/* metric-switch 样式已随「调用方」tab 退役（2026-10-21）：监控对象卡单视图无切换。 */
/* distribution-chart-heading 已随冗余标记删除（2026-10-20 高度收口）——样式规则同步清理。 */
/* 图表悬停提示（状态码分布/走势卡共用）：深浅主题走令牌。 */
.status-distribution-tooltip[b-asqjb7ot50],
.ops-chart-tooltip[b-asqjb7ot50] { padding: 3px 4px; color: var(--ink); font-size: .72rem; }
.card-header[b-asqjb7ot50] { display: flex; min-height: 56px; padding: 14px 16px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.card-header h3[b-asqjb7ot50] { font-size: .78rem; font-weight: 750; }
.card-header p[b-asqjb7ot50] { margin: 3px 0 0; color: var(--muted); font-size: .62rem; }

/* DxChart 图表容器（直观化改版后仅存单张趋势主卡）：min-width 防栅格挤压溢出。 */
.ops-chart-panel[b-asqjb7ot50] { min-width: 0; }

.ops-chart-legend[b-asqjb7ot50] {
    display: flex;
    min-width: 0;
    min-height: 34px;
    padding: 0 10px 4px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 18px;
    color: var(--ink);
    font-size: .76rem;
}

.ops-chart-legend span[b-asqjb7ot50] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.ops-chart-legend i[b-asqjb7ot50] {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 2px;
}

/* 四象限同构图例（2026-10-19）：蓝柱=量 · 橙线=质，四卡共用同一对色（取值同图内 series）。 */
.ops-chart-legend .combo-bar[b-asqjb7ot50] { background: var(--chart-volume); }
.ops-chart-legend .combo-line[b-asqjb7ot50] { background: var(--chart-quality); }
/* 耗时分布合并卡（2026-10-21 恢复）：橙柱=总响应时间（复用 --chart-quality 令牌）。 */
.ops-chart-legend .combo-e2e[b-asqjb7ot50] { background: var(--chart-quality); }
.ops-chart-legend small[b-asqjb7ot50] { margin-left: auto; color: var(--muted); font-size: .66rem; }

/* 状态码→错误明细钻取行（2026-11-04）：柱图点击之外的键盘可达入口；44px 触控区，
   取值沿用 KPI 卡钻取的 hover 令牌（--surface-hover / --muted 描边）。 */
.ops-status-drill[b-asqjb7ot50] { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 10px 10px; }
.ops-status-drill button[b-asqjb7ot50] {
    display: inline-flex;
    min-height: 44px;
    padding: 4px 10px;
    align-items: center;
    gap: 6px;
    color: var(--ink);
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: .76rem;
    cursor: pointer;
}
.ops-status-drill button:hover[b-asqjb7ot50],
.ops-status-drill button:focus-visible[b-asqjb7ot50] { background: var(--surface-hover); border-color: var(--muted); }
.ops-status-drill button span[b-asqjb7ot50],
.ops-status-drill button small[b-asqjb7ot50] { color: var(--muted); font-size: .72rem; }

.ops-table-card[b-asqjb7ot50] { min-height: auto; }
/* 2026-10-15 需求 #7：SKU/序列双表并排一页收核心指标；<1280px 退化为单列（可读性优先）。 */
.ops-table-card .ops-table td[b-asqjb7ot50] { padding: 7px 10px; }
/* 需求 #17 上游调用分布：图退表进后明细表升全宽（2026-10-18 定稿）。 */
/* M2 产品明细弹窗（2026-10-18 模型监控改版）：信息栅格复用 error-detail-grid 结构，
   关联序列表内嵌于弹窗（AppModal + ModalSection 体系外的独立 section，样式沿用 ops-table）。 */
.sku-detail-grid[b-asqjb7ot50] { padding: 14px 16px 0; }
.sku-detail-grid article span[b-asqjb7ot50] { color: var(--muted); }
.sku-detail-sequences .card-header[b-asqjb7ot50] { border-bottom: 1px solid var(--line); }
.sku-detail-sequences .table-scroll[b-asqjb7ot50] { max-height: 320px; overflow: auto; }
.card-controls[b-asqjb7ot50],
.alert-event-filters[b-asqjb7ot50] { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.card-controls select[b-asqjb7ot50],
.alert-event-filters select[b-asqjb7ot50] { min-width: 96px; }
.alert-event-filters[b-asqjb7ot50] { padding: 10px 16px; border-bottom: 1px solid var(--line); }
.clickable-row[b-asqjb7ot50] { cursor: pointer; }
/* 行悬浮 2026-10-21 统一到上游管理同一层灰（color-mix surface-muted 60%），各表 hover 观感一致。 */
.clickable-row:hover td[b-asqjb7ot50] { background: color-mix(in srgb, var(--surface-muted) 60%, transparent); }
.load-more-row[b-asqjb7ot50] { display: flex; padding: 10px 16px; justify-content: center; border-top: 1px solid var(--line); }
.alert-detail-summary[b-asqjb7ot50] { display: flex; padding: 14px; align-items: flex-start; justify-content: space-between; gap: 16px; background: var(--surface-soft); border-radius: 8px; }
.alert-detail-summary h3[b-asqjb7ot50] { margin: 9px 0 3px; font-size: .82rem; }
.alert-detail-summary p[b-asqjb7ot50] { margin: 0; color: var(--muted); font-size: .68rem; white-space: pre-wrap; }
.alert-detail-summary .level-badge + .level-badge[b-asqjb7ot50] { margin-left: 5px; }
.alert-detail-actions[b-asqjb7ot50] { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 7px; }
.alert-detail-actions label[b-asqjb7ot50] { display: grid; gap: 3px; color: var(--muted); font-size: .6rem; }
.alert-detail-grid[b-asqjb7ot50] { margin-top: 12px; }
.alert-detail-links[b-asqjb7ot50] { display: flex; margin: 10px 0; justify-content: flex-end; }
.alert-history[b-asqjb7ot50] { margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.alert-history > header[b-asqjb7ot50] { display: flex; padding: 10px 12px; align-items: center; justify-content: space-between; gap: 10px; background: var(--surface-soft); }
.alert-history h3[b-asqjb7ot50] { margin: 0; font-size: .72rem; }
.alert-history p[b-asqjb7ot50] { margin: 3px 0 0; color: var(--muted); font-size: .63rem; }
.alert-history .empty-history[b-asqjb7ot50] { padding: 24px; text-align: center; }
.table-scroll[b-asqjb7ot50] { overflow: auto; }
.ops-table[b-asqjb7ot50] { width: 100%; border-collapse: collapse; font-size: .68rem; }
/* 表头底色 2026-10-21 统一到上游管理 accounts-data-table 口径（surface-muted）；
   行密度保持看板紧凑档（ops-dashboard 覆写 7px 垂直内距）不动。 */
.ops-table th[b-asqjb7ot50] { padding: 9px 12px; color: var(--muted); text-align: left; background: var(--surface-muted); border-bottom: 1px solid var(--line); font-size: .61rem; font-weight: 750; white-space: nowrap; }
.ops-table td[b-asqjb7ot50] { max-width: 360px; padding: 10px 12px; vertical-align: top; border-bottom: 1px solid var(--line-soft); }
.ops-table td > b[b-asqjb7ot50],
.ops-table td > small[b-asqjb7ot50] { display: block; }
.ops-table td > small[b-asqjb7ot50] { margin-top: 2px; color: var(--muted); }
.ops-table code[b-asqjb7ot50] { padding: 2px 4px; color: #475569; background: #f1f5f9; border-radius: 3px; font-size: .61rem; }
.empty-cell[b-asqjb7ot50] { padding: 32px !important; color: var(--muted); text-align: center !important; }
.log-message[b-asqjb7ot50] { min-width: 260px; white-space: pre-wrap; word-break: break-word; }
.level-badge[b-asqjb7ot50] { display: inline-flex; padding: 2px 6px; align-items: center; color: var(--status-info); background: var(--status-info-soft); border-radius: 99px; font-size: .58rem; font-weight: 750; }
.level-badge.success[b-asqjb7ot50] { color: var(--status-ok) !important; background: var(--status-ok-soft); }
.level-badge.warning[b-asqjb7ot50] { color: var(--status-warn) !important; background: var(--status-warn-soft); }
.level-badge.danger[b-asqjb7ot50] { color: var(--status-bad) !important; background: var(--status-bad-soft); }
.level-badge.muted[b-asqjb7ot50] { color: var(--muted) !important; background: var(--surface-hover); }

.log-health-badges[b-asqjb7ot50] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.log-health-badges span[b-asqjb7ot50] { padding: 3px 7px; color: #475569; background: #f1f5f9; border-radius: 99px; font-size: .58rem; font-weight: 700; }
.log-health-badges .warning[b-asqjb7ot50] { color: var(--status-warn); background: var(--status-warn-soft); }
.log-health-badges .danger[b-asqjb7ot50] { color: var(--status-bad); background: var(--status-bad-soft); }
.system-log-tools[b-asqjb7ot50] { display: flex; padding: 10px 16px; align-items: center; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--line); }
.system-log-tools > span[b-asqjb7ot50] { margin-left: auto; font-size: .65rem; }
.system-log-filters[b-asqjb7ot50] { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 9px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.system-log-filters label[b-asqjb7ot50] { display: grid; align-content: start; gap: 4px; color: #52605a; font-size: .61rem; font-weight: 700; }
.system-log-filters label > span[b-asqjb7ot50] { min-height: 14px; }
.system-log-filters input[b-asqjb7ot50],
.system-log-filters select[b-asqjb7ot50] { width: 100%; }
.system-log-actions[b-asqjb7ot50] { display: flex; padding: 9px 16px; align-items: center; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--line); }
.log-search[b-asqjb7ot50] { display: flex; min-height: 34px; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid #cad3ce; border-radius: 6px; }
.log-search input[b-asqjb7ot50] { width: 100%; min-height: auto; padding: 0; border: 0; outline: none; }
.ops-pagination[b-asqjb7ot50] { display: flex; min-height: 48px; padding: 8px 14px; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .65rem; }
.ops-pagination > div[b-asqjb7ot50] { display: flex; align-items: center; gap: 8px; }
.ops-pagination button[b-asqjb7ot50],
.ops-pagination select[b-asqjb7ot50] { min-height: 28px; padding: 4px 9px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 5px; font-size: .62rem; }
.ops-pagination button:disabled[b-asqjb7ot50] { opacity: .45; }

.form-grid[b-asqjb7ot50] { display: grid; gap: 13px; }
.form-grid.two[b-asqjb7ot50] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid label[b-asqjb7ot50] { display: grid; align-content: start; gap: 5px; color: #45514c; font-size: .69rem; font-weight: 650; }
.form-grid label small[b-asqjb7ot50] { color: var(--muted); font-size: .6rem; font-weight: 500; }
.form-grid input[b-asqjb7ot50],
.form-grid select[b-asqjb7ot50],
.form-grid textarea[b-asqjb7ot50] { width: 100%; }
.form-grid input:not([type="checkbox"])[b-asqjb7ot50],
.form-grid select[b-asqjb7ot50],
.form-grid textarea[b-asqjb7ot50] { min-height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border-color: var(--form-control-border); border-radius: var(--form-control-radius); }
.form-grid input:not([type="checkbox"]):focus[b-asqjb7ot50],
.form-grid select:focus[b-asqjb7ot50],
.form-grid textarea:focus[b-asqjb7ot50] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.form-grid .span-two[b-asqjb7ot50] { grid-column: 1 / -1; }
.form-grid .check-field[b-asqjb7ot50] { display: flex; min-height: 34px; padding: 6px 9px; align-items: center; gap: 8px; background: var(--surface-soft); border-radius: 6px; }
.form-grid .check-field input[b-asqjb7ot50] { width: 15px; min-height: auto; }
/* 旧 .modal-filter-row 三列网格已删（2026-10-21）：与 .ops-request-filters/.ops-error-filters
   同优先级且位置靠后会覆盖新栅格（查询按钮折行、组合框截断的根因）。两行各自的规则见文件头部。 */
.modal-toolbar[b-asqjb7ot50] { justify-content: space-between; margin-bottom: 12px; }
.modal-toolbar p[b-asqjb7ot50] { margin: 0; color: var(--muted); font-size: .7rem; }
.editor-actions[b-asqjb7ot50] { justify-content: flex-end; margin-top: 14px; }
/* 页签 2026-10-21 统一到全站下划线式（ops-tabs 基准）：分段胶囊式退役。 */
.settings-tabs[b-asqjb7ot50] { display: flex; gap: 4px; margin-bottom: 15px; border-bottom: 1px solid var(--line); }
.settings-tabs button[b-asqjb7ot50] { flex: 1; min-height: 36px; padding: 7px 12px; color: var(--muted); background: transparent; border: 0; border-bottom: 2px solid transparent; font-size: .69rem; font-weight: 700; }
.settings-tabs button:hover[b-asqjb7ot50] { color: var(--ink); }
.settings-tabs button.active[b-asqjb7ot50] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }
.settings-section[b-asqjb7ot50] { margin-bottom: 14px; padding: 14px; background: var(--surface-soft); border-radius: 8px; }
.settings-section h3[b-asqjb7ot50] { margin-bottom: 12px; font-size: .76rem; }
.settings-section > p[b-asqjb7ot50] { margin: -5px 0 12px; color: var(--muted); font-size: .66rem; }
.switch-button[b-asqjb7ot50] { position: relative; width: 32px; height: 18px; padding: 0; background: #cbd5e1; border: 0; border-radius: 99px; cursor: pointer; }
.switch-button i[b-asqjb7ot50] { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; background: #fff; border-radius: 50%; transition: transform .15s ease; }
.switch-button.on[b-asqjb7ot50] { background: #25805f; }
.switch-button.on i[b-asqjb7ot50] { transform: translateX(14px); }
.footer-spacer[b-asqjb7ot50] { flex: 1; }

/* M3 边界收敛（2026-10-18）：本页迁出告警/日志后的审计中心入口卡，动作行沿用
   header-actions 的 flex 体系与 16px 内边距，不新增令牌。 */

:deep(.modal-footer)[b-asqjb7ot50] { display: flex; align-items: center; gap: 8px; }
:deep(.dxbl-chart)[b-asqjb7ot50] { font-size: .65rem; }

/* Match the readable typography hierarchy used by user management. */
.ops-dashboard[b-asqjb7ot50] { font-size: 1rem; }
.ops-title-block h2[b-asqjb7ot50] { font-size: 1.35rem; }
.ops-ready-line[b-asqjb7ot50],
.ops-modal-heading[b-asqjb7ot50] { font-size: .85rem; }
.ops-toolbar select[b-asqjb7ot50],
.card-controls select[b-asqjb7ot50],
.alert-event-filters select[b-asqjb7ot50],
.alert-detail-actions select[b-asqjb7ot50],
.alert-history select[b-asqjb7ot50],
.system-log-filters select[b-asqjb7ot50],
.system-log-filters input[b-asqjb7ot50],
.modal-filter-row select[b-asqjb7ot50],
.modal-filter-row input[b-asqjb7ot50],
.form-grid input[b-asqjb7ot50],
.form-grid select[b-asqjb7ot50],
.form-grid textarea[b-asqjb7ot50] { font-size: .85rem; }
/* .primary-button/.secondary-button 不再本页覆写字号（2026-10-21 统一）：走 app.css 全局 .82rem（= .button 口径）。
   row-actions button 摘除（2026-10-27 操作栏统一）：表内行按钮已是全局 .row-action（.75rem 基准字号）。 */
.text-button[b-asqjb7ot50],
.danger-link[b-asqjb7ot50] { font-size: .8rem; }
.error-detail-grid article > span[b-asqjb7ot50],
.latency-summary span[b-asqjb7ot50],
.correlated-errors article header[b-asqjb7ot50],
.correlated-errors article small[b-asqjb7ot50] { font-size: .8rem; }
.error-detail-grid article b[b-asqjb7ot50],
.error-payload h3[b-asqjb7ot50],
.correlated-errors h3[b-asqjb7ot50] { font-size: .88rem; }

.error-payload pre[b-asqjb7ot50],
.correlated-errors pre[b-asqjb7ot50] { font-size: .8rem; }
.correlated-errors > p[b-asqjb7ot50],
.correlated-errors article p[b-asqjb7ot50] { font-size: .85rem; }
.card-header p[b-asqjb7ot50] { font-size: .8rem; }
.card-header h3[b-asqjb7ot50] { font-size: 1rem; }
.alert-detail-summary h3[b-asqjb7ot50] { font-size: .95rem; }
.alert-detail-summary p[b-asqjb7ot50],
.alert-detail-actions label[b-asqjb7ot50],
.alert-history p[b-asqjb7ot50],
.system-log-tools > span[b-asqjb7ot50],
.system-log-filters label[b-asqjb7ot50] { font-size: .8rem; }
.alert-history h3[b-asqjb7ot50] { font-size: .88rem; }
.ops-table[b-asqjb7ot50] { font-size: .83rem; }
.ops-table th[b-asqjb7ot50] { font-size: .76rem; }
.ops-table code[b-asqjb7ot50] { font-size: .75rem; }
.level-badge[b-asqjb7ot50],
.log-health-badges span[b-asqjb7ot50] { font-size: .76rem; }
.ops-pagination[b-asqjb7ot50] { font-size: .8rem; }
.ops-pagination button[b-asqjb7ot50],
.ops-pagination select[b-asqjb7ot50] { font-size: .8rem; }
.form-grid label[b-asqjb7ot50],
.settings-tabs button[b-asqjb7ot50] { font-size: .85rem; }
.form-grid label small[b-asqjb7ot50],
.settings-section > p[b-asqjb7ot50] { font-size: .8rem; }
.modal-toolbar p[b-asqjb7ot50],
.settings-section h3[b-asqjb7ot50] { font-size: .95rem; }
/* 直观化改版新增控件的可读性排印（对齐用户管理档位，勿回退到原型 .66rem 观感）；
   环比/构成条条目已随「一卡一指标」退役，排印登记只剩状态点。 */
.ops-kpi-touch[b-asqjb7ot50],
.sku-detail-charts h4[b-asqjb7ot50],
.sku-detail-charts p[b-asqjb7ot50] { font-size: .85rem; }


:deep(.dxbl-chart)[b-asqjb7ot50] { font-size: .8rem; }

@media (max-width: 1280px) {
    .ops-error-filters[b-asqjb7ot50] { grid-template-columns: repeat(5, minmax(110px, 1fr)); }
    .system-log-filters[b-asqjb7ot50] { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
}

@media (max-width: 920px) {
    .ops-workspace-layout[b-asqjb7ot50],
    .sku-detail-charts[b-asqjb7ot50] { grid-template-columns: 1fr; }
    .ops-kpi-strip[b-asqjb7ot50] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ops-toolbar[b-asqjb7ot50] { align-items: flex-start; flex-direction: column; }
    .ops-toolbar-actions[b-asqjb7ot50] { width: 100%; }
    .ops-toolbar select[b-asqjb7ot50] { flex: 1; }
    .ops-toolbar input[b-asqjb7ot50] { flex: 1 1 180px; }
    .chart-panel-actions[b-asqjb7ot50] { width: 100%; justify-content: space-between; }
    .system-log-filters[b-asqjb7ot50] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .log-health-badges[b-asqjb7ot50] { justify-content: flex-start; }
    .log-search[b-asqjb7ot50] { grid-column: 1 / -1; }
    .card-header[b-asqjb7ot50] { align-items: flex-start; flex-direction: column; }
    .alert-detail-summary[b-asqjb7ot50] { flex-direction: column; }
}

@media (max-width: 640px) {
    .ops-hero-card[b-asqjb7ot50] { padding: 13px; }
    .ops-toolbar-actions > select[b-asqjb7ot50] { flex: 1 1 calc(50% - 8px); }
    .ops-toolbar-actions > input[b-asqjb7ot50] { flex: 1 1 100%; min-width: 0; }
    .form-grid.two[b-asqjb7ot50] { grid-template-columns: 1fr; }
    .chart-panel-actions[b-asqjb7ot50] { align-items: stretch; flex-direction: column; }
    .chart-panel-actions .text-button[b-asqjb7ot50] { align-self: flex-end; }
    .form-grid .span-two[b-asqjb7ot50] { grid-column: auto; }
    .system-log-filters[b-asqjb7ot50],
    .modal-filter-row[b-asqjb7ot50] { grid-template-columns: 1fr; }
    .error-detail-grid[b-asqjb7ot50] { grid-template-columns: 1fr; }
    .error-detail-grid article.span-two[b-asqjb7ot50] { grid-column: auto; }
    .log-search[b-asqjb7ot50] { grid-column: auto; }
    .card-controls[b-asqjb7ot50],
    .alert-event-filters[b-asqjb7ot50],
    .alert-detail-actions[b-asqjb7ot50] { align-items: stretch; flex-direction: column; }
    .card-controls > *[b-asqjb7ot50],
    .alert-event-filters > *[b-asqjb7ot50],
    .alert-detail-actions > *[b-asqjb7ot50] { width: 100%; }
}

/* ===== 监控仪表盘（2026-10-21 用户定稿：纵向堆栈，全部通栏、高度由内容决定） =====
   此前的 12 列一屏网格（行高 minmax 分配）在「模型产品监控 + 上游调用分布」卡上反复出现
   内部裁切，最终按用户决策整页改为纵向堆栈：每块通栏一行、高度自适应内容、页面自然滚动。
   明细区块（请求/错误）点击钻取后滚动定位，表格区限高内滚。 */
/* 分块节奏（2026-10-24 原型定稿）：块间 16px 留白——大厂控制台观感，
   KPI 组内 12px 保持组群感；横向 grid2 之间同 16px，全页一个节奏。 */
.ops-dashboard[b-asqjb7ot50] { display: flex; flex-direction: column; gap: 16px; min-width: 0; box-sizing: border-box; }
/* 总览双列区（状态码+耗时 / 产品+厂商 Top5）：1.5fr 图卡 + 1fr 图卡；窄屏折单列。 */
.ops-dashboard .ops-grid2[b-asqjb7ot50] { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; }
.ops-dashboard .ops-grid2 > *[b-asqjb7ot50] { min-width: 0; }
/* 卡片统一 flex 列 + 内部滚动：header 固定，body 弹性占满。 */
.ops-dashboard > .ops-card[b-asqjb7ot50] { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ops-dashboard > .ops-card > .card-header[b-asqjb7ot50] { flex: 0 0 auto; }
.ops-dashboard .ops-monitor-panel[b-asqjb7ot50], .ops-dashboard .table-scroll[b-asqjb7ot50], .ops-dashboard .ops-prodwrap[b-asqjb7ot50], .ops-dashboard .ops-trendbody[b-asqjb7ot50], .ops-dashboard .ops-upstream-empty[b-asqjb7ot50] { min-height: 0; }
/* 面板恢复 ops-prodpanel 既有 flex 列布局（表格滚、ListPagination 恒在卡底）——
   上一批的 display:block + 面板整体滚动让分页随内容滚走、滚动后成无头行。 */
.ops-dashboard .ops-monitor-panel[b-asqjb7ot50] { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ops-dashboard .ops-monitor-panel .table-scroll[b-asqjb7ot50] { flex: 1 1 auto; min-height: 0; max-height: none; overflow: auto; }
.ops-dashboard .ops-monitor-panel .ops-table th[b-asqjb7ot50],
.ops-dashboard .ops-upstream-card .table-scroll .ops-table th[b-asqjb7ot50],
.ops-dashboard .ops-vendor-card .table-scroll .ops-table th[b-asqjb7ot50] { position: sticky; top: 0; z-index: 1; }
/* 上游拆卡（2026-10-24）：分布卡只含占比条，厂商健康独立成卡（.ops-vendor-card）——
   原 60/40 双表内滚规则随「调度与连通性」退役删除，厂商表跟随内容自然高度。 */
.ops-dashboard .ops-upstream-card .ops-sharebar-wrap[b-asqjb7ot50] { padding: 10px 15px 4px; }
/* 紧凑化（2026-10-20 二次收紧）：chrome 行（hero/结论/KPI）内边距压缩，省出高度给两张表卡与图卡。 */
/* 时间范围下拉可下探（2026-10-21 用户反馈「看不到」）：工具栏卡放开 overflow 裁剪，
   否则 .ops-dashboard > .ops-card 的 overflow:hidden 会把 QuickDateRange 下探菜单裁没
   （英雄卡时代同款修复，页签化后工具栏卡继承了一屏化裁剪规则）。 */
.ops-dashboard > .ops-toolbar-card[b-asqjb7ot50] { overflow: visible; }

.ops-dashboard > .ops-hero-card[b-asqjb7ot50] { padding-top: 6px; padding-bottom: 6px; }
.ops-dashboard .ops-toolbar[b-asqjb7ot50] { padding-bottom: 8px; }
.ops-dashboard .ops-kpi-card[b-asqjb7ot50] { padding: 7px 12px; gap: 3px; min-height: 0; }
.ops-dashboard .ops-table th[b-asqjb7ot50], .ops-dashboard .ops-table td[b-asqjb7ot50] { padding-top: 7px; padding-bottom: 7px; }
.ops-dashboard .card-header[b-asqjb7ot50] { padding: 11px 15px 9px; }
.ops-dashboard .card-header h3[b-asqjb7ot50] { font-size: .9rem; }
.ops-dashboard .card-header p[b-asqjb7ot50] { font-size: .64rem; }
/* 桶数据表（2026-10-21 用户定稿）：三张图卡右侧「与图同源」表整体退役，
   原「图 1.8fr + 桶表 0.95fr」二列 grid 与表内滚动规则随之删除，图通栏。 */
/* 上游调用分布：份额条 + 图例 */
.ops-upstream-card .ops-sharebar-wrap[b-asqjb7ot50] { padding: 10px 15px 4px; }
.ops-sharebar[b-asqjb7ot50] { display: flex; width: 100%; height: 14px; overflow: hidden; background: var(--surface-soft); border-radius: 4px; }
.ops-sharebar i[b-asqjb7ot50] { display: block; min-width: 2px; height: 100%; opacity: .92; transition: opacity .15s ease; }
.ops-sharebar i:hover[b-asqjb7ot50] { opacity: 1; }
/* 其余序列合并段（2026-10-21）：中性灰补满 100%，与左侧彩段区分、不再留误导性空白。 */
.ops-sharebar i.rest[b-asqjb7ot50] { background: var(--chart-neutral); }
.ops-sharebar-legend i.rest[b-asqjb7ot50] { background: var(--chart-neutral); }
.ops-sharebar-legend[b-asqjb7ot50] { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; }
.ops-sharebar-legend span[b-asqjb7ot50] { display: inline-flex; align-items: center; gap: 5px; font-size: .64rem; }
.ops-sharebar-legend i[b-asqjb7ot50] { width: 8px; height: 8px; border-radius: 2px; }
.ops-sharebar-legend b[b-asqjb7ot50] { font-weight: 650; }
.ops-sharebar-legend small[b-asqjb7ot50] { color: var(--muted); }
.ops-upstream-empty[b-asqjb7ot50] { padding: 24px; color: var(--muted); text-align: center; }
/* 窄屏（≤1180px）：布局本就是纵向堆栈，grid2 折单列即可。 */
@media (max-width: 1180px) {
    .ops-dashboard .ops-grid2[b-asqjb7ot50] { grid-template-columns: 1fr; }
}


/* 序列展开明细行（2026-10-20）：产品行点击展开，内嵌紧凑序列表。
   2026-10-21 用户需求：展开即详情（产品名前折叠箭头 + 展开区含汇总栅格/双小图）。 */
.sku-expand-cell[b-asqjb7ot50] { display: flex; align-items: center; gap: 6px; }
.sku-expand-cell :deep(svg)[b-asqjb7ot50], .sku-expand-cell svg[b-asqjb7ot50] { color: var(--muted); flex: 0 0 auto; }
.sku-expansion-grid[b-asqjb7ot50] { padding: 12px 14px 0; }
/* 序列展开明细行（2026-10-20）：产品行点击展开，内嵌紧凑序列表。 */
.ops-dashboard tr.clickable-row.is-expanded td[b-asqjb7ot50] { background: var(--surface-soft); }
.ops-dashboard .ops-sku-expansion > td[b-asqjb7ot50] { padding: 0 0 10px !important; background: var(--surface-soft); }
/* 展开区信息块白卡化（2026-10-24 用户反馈）：展开行浅底（surface-soft）上再叠 surface-soft
   小格会同色融合成"灰叠灰"，只剩淡边线、观感浑浊——栅格小格与双小图卡统一白底 + line
   描边，与浅灰展开带形成层次（同弹窗 body 白底放 soft 小格的既有层次倒置规则一致）。 */
.ops-dashboard .ops-sku-expansion .error-detail-grid article[b-asqjb7ot50] { background: var(--surface); border-color: var(--line); }
.ops-dashboard .ops-sku-expansion .sku-detail-charts article[b-asqjb7ot50] { background: var(--surface); }
.ops-expansion-table[b-asqjb7ot50] { width: 100%; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.ops-expansion-table th[b-asqjb7ot50], .ops-expansion-table td[b-asqjb7ot50] { padding: 6px 10px; font-size: .66rem; }
.ops-expansion-table code[b-asqjb7ot50] { font-size: .66rem; }
.ops-expansion-empty[b-asqjb7ot50] { display: block; padding: 10px 4px; color: var(--muted); font-size: .68rem; }

/* 明细页内区块（2026-10-21 用户定稿：请求/错误明细不再用弹窗，点击钻取滚动定位到本区块）。
   通栏一行；表格区限高内滚，避免大结果把页面拉长。 */
/* 监控页页签（2026-10-21 拆行后再收页签）：总览/模型产品/上游调用/明细；下划线式与全站页签一致。 */
.ops-tabs[b-asqjb7ot50] {
    display: flex;
    min-height: 40px;
    align-items: flex-end;
    overflow-x: auto;
}

.ops-tabs button[b-asqjb7ot50] {
    display: inline-flex;
    min-width: max-content;
    min-height: 40px;
    padding: 8px 14px;
    align-items: center;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
}

.ops-tabs button:hover[b-asqjb7ot50] { color: var(--ink); }
.ops-tabs button.active[b-asqjb7ot50] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }
.ops-tabs button:focus-visible[b-asqjb7ot50] { outline: 2px solid var(--focus); outline-offset: -2px; }

/* 走势卡筛选行样式 2026-10-24 随筛选行整体退役删除（范围/产品下拉全链不再存在于本页）。 */

/* 表脚合计行（2026-10-21 方案 B 对数锚点）：surface-soft 底 + 上边框与表体区分；
   未归因补差行数字用 muted 弱化（补差口径见 FieldHint）。 */
.ops-table tfoot .ops-total-row td[b-asqjb7ot50] {
    padding: 7px 10px;
    background: var(--surface-soft);
    border-top: 1px solid var(--line-strong);
    color: var(--ink);
    font-size: .8rem;
}

.ops-table tfoot .ops-total-row td b[b-asqjb7ot50] { font-variant-numeric: tabular-nums; }
/* /Pages/AdminPromptAudit.razor.rz.scp.css */
.prompt-page[b-ss8gmx5rwi] { display: grid; padding-bottom: 42px; gap: 20px; color: var(--ink); }
.prompt-page.with-savebar[b-ss8gmx5rwi] { padding-bottom: 0; }
.prompt-heading[b-ss8gmx5rwi], .prompt-actions[b-ss8gmx5rwi], .section-header-row[b-ss8gmx5rwi], .section-header-row > div:last-child[b-ss8gmx5rwi], .save-bar[b-ss8gmx5rwi], .save-toggles[b-ss8gmx5rwi], .save-actions[b-ss8gmx5rwi] { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.prompt-heading h1[b-ss8gmx5rwi] { margin: 0; font-size: 1.38rem; font-weight: 800; }.prompt-heading p[b-ss8gmx5rwi] { max-width: 820px; margin: 4px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }.prompt-actions[b-ss8gmx5rwi] { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.inline-alert button[b-ss8gmx5rwi] { margin-left: auto; padding: 0; color: inherit; background: transparent; border: 0; font-size: .65rem; font-weight: 700; cursor: pointer; }
.overview-grid[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.overview-card[b-ss8gmx5rwi] { position: relative; display: flex; min-width: 0; min-height: 82px; padding: 14px; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.overview-icon[b-ss8gmx5rwi] { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; color: #64748b; background: #f1f5f9; border-radius: 8px; }
.overview-icon.green[b-ss8gmx5rwi] { color: #059669; background: #ecfdf5; }.overview-icon.blue[b-ss8gmx5rwi] { color: #0284c7; background: #f0f9ff; }.overview-icon.purple[b-ss8gmx5rwi] { color: #7c3aed; background: #f5f3ff; }.overview-icon.amber[b-ss8gmx5rwi] { color: #d97706; background: #fffbeb; }
.overview-card > div[b-ss8gmx5rwi] { min-width: 0; }.overview-card small[b-ss8gmx5rwi] { display: block; color: var(--muted); font-size: .65rem; }.overview-card strong[b-ss8gmx5rwi] { display: block; margin-top: 3px; overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }.overview-card p[b-ss8gmx5rwi] { margin: 2px 0 0; overflow: hidden; color: var(--muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.state-pill[b-ss8gmx5rwi] { position: absolute; top: 10px; right: 10px; display: inline-flex; width: fit-content; padding: 3px 8px; align-items: center; border-radius: 999px; font-size: .61rem; font-weight: 750; white-space: nowrap; }.state-pill.success[b-ss8gmx5rwi] { color: #047857; background: #d1fae5; }.state-pill.warning[b-ss8gmx5rwi] { color: #b45309; background: #fef3c7; }.state-pill.danger[b-ss8gmx5rwi] { color: #b91c1c; background: #fee2e2; }.state-pill.neutral[b-ss8gmx5rwi] { color: #64748b; background: #f1f5f9; }
/* 页签 2026-11-10 统一到上游管理页 upstream-tabs 全局类（下划线式），胶囊式样式删除。 */
.prompt-card[b-ss8gmx5rwi] { min-width: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.runtime-section[b-ss8gmx5rwi], .pool-section[b-ss8gmx5rwi], .policy-section[b-ss8gmx5rwi] { padding: 0 18px 18px; }.section-header-row[b-ss8gmx5rwi], .policy-section > header[b-ss8gmx5rwi] { margin: 0 -18px; padding: 16px 18px; align-items: flex-start; border-bottom: 1px solid var(--line); }.section-header-row h2[b-ss8gmx5rwi], .policy-section h2[b-ss8gmx5rwi] { margin: 0; font-size: .94rem; font-weight: 780; }.section-header-row p[b-ss8gmx5rwi], .policy-section header > p[b-ss8gmx5rwi] { margin: 4px 0 0; color: var(--muted); font-size: .76rem; }.section-header-row > div:last-child[b-ss8gmx5rwi] { flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.runtime-summary[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 15px; gap: 8px; }.runtime-summary article[b-ss8gmx5rwi] { min-width: 0; padding: 10px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; }.runtime-summary small[b-ss8gmx5rwi] { color: var(--muted); font-size: .56rem; }.runtime-summary strong[b-ss8gmx5rwi] { display: flex; min-width: 0; margin-top: 5px; align-items: center; gap: 6px; overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }.runtime-summary strong i[b-ss8gmx5rwi] { width: 7px; height: 7px; flex: 0 0 auto; background: #94a3b8; border-radius: 50%; }.runtime-summary i.success[b-ss8gmx5rwi] { background: #10b981; }.runtime-summary i.warning[b-ss8gmx5rwi] { background: #f59e0b; }.runtime-summary i.danger[b-ss8gmx5rwi] { background: #ef4444; }
.runtime-details[b-ss8gmx5rwi] { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .6fr); margin-top: 10px; gap: 9px; }.runtime-details > section[b-ss8gmx5rwi] { padding: 12px; border: 1px solid var(--line); border-radius: 8px; }.runtime-details h3[b-ss8gmx5rwi] { margin: 0; font-size: .68rem; }.guard-grid[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 9px; gap: 6px; }.guard-grid article[b-ss8gmx5rwi] { padding: 7px 8px; background: var(--surface-soft); border-radius: 6px; }.guard-grid small[b-ss8gmx5rwi] { display: block; color: var(--muted); font-size: .52rem; }.guard-grid b[b-ss8gmx5rwi] { display: block; margin-top: 2px; font-size: .66rem; }.runtime-details p[b-ss8gmx5rwi] { margin: 9px 0 0; color: var(--muted); font-size: .57rem; line-height: 1.55; }.latest-time[b-ss8gmx5rwi] { color: var(--ink) !important; font-size: .67rem !important; }.runtime-error[b-ss8gmx5rwi] { margin-top: 6px; color: #b91c1c; font-size: .59rem; overflow-wrap: anywhere; }.runtime-endpoints[b-ss8gmx5rwi] { display: flex; margin-top: 8px; flex-wrap: wrap; gap: 5px; }.runtime-endpoints span[b-ss8gmx5rwi] { padding: 3px 6px; border-radius: 4px; font-size: .54rem; }.runtime-endpoints .success[b-ss8gmx5rwi] { color: #047857; background: #d1fae5; }.runtime-endpoints .danger[b-ss8gmx5rwi] { color: #b91c1c; background: #fee2e2; }
.pool-empty[b-ss8gmx5rwi] { display: grid; min-height: 130px; margin-top: 14px; place-items: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 8px; font-size: .67rem; }.endpoint-table[b-ss8gmx5rwi] { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; }.endpoint-head[b-ss8gmx5rwi], .endpoint-table article[b-ss8gmx5rwi] { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(180px, 1fr) minmax(170px, .8fr) minmax(220px, 1.15fr) auto; padding: 8px 13px; align-items: center; gap: 14px; }.endpoint-head[b-ss8gmx5rwi] { color: var(--muted); background: var(--surface-soft); font-size: .53rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }.endpoint-table article[b-ss8gmx5rwi] { min-height: 72px; border-top: 1px solid var(--line); }.endpoint-table article:hover[b-ss8gmx5rwi] { box-shadow: 3px 0 var(--primary) inset; background: var(--surface-soft); }.endpoint-table article > div[b-ss8gmx5rwi] { min-width: 0; font-size: .62rem; }.endpoint-name[b-ss8gmx5rwi] { display: flex; align-items: center; gap: 9px; }.endpoint-name input[b-ss8gmx5rwi] { width: 30px; height: 16px; accent-color: var(--primary); }.endpoint-name span[b-ss8gmx5rwi] { display: grid; min-width: 0; gap: 2px; }.endpoint-name b[b-ss8gmx5rwi], .endpoint-table article > div > b[b-ss8gmx5rwi] { overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }.endpoint-name small[b-ss8gmx5rwi] { overflow: hidden; color: var(--muted); font-family: monospace; font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }.limit-tags[b-ss8gmx5rwi] { display: flex; flex-wrap: wrap; gap: 5px; }.limit-tags span[b-ss8gmx5rwi] { padding: 3px 6px; color: var(--muted); background: var(--surface-soft); border-radius: 4px; font-size: .55rem; }.credential[b-ss8gmx5rwi] { display: grid; gap: 4px; }.credential > span[b-ss8gmx5rwi] { display: flex; width: fit-content; align-items: center; gap: 5px; font-size: .57rem; font-weight: 700; }.credential > span i[b-ss8gmx5rwi] { width: 6px; height: 6px; background: #94a3b8; border-radius: 50%; }.credential > span.success[b-ss8gmx5rwi] { color: #047857; }.credential > span.success i[b-ss8gmx5rwi] { background: #10b981; }.credential > span.danger[b-ss8gmx5rwi] { color: #b91c1c; }.credential > span.danger i[b-ss8gmx5rwi] { background: #ef4444; }.credential small[b-ss8gmx5rwi] { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .53rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.credential small.success[b-ss8gmx5rwi] { color: #047857; }.credential small.danger[b-ss8gmx5rwi] { color: #b91c1c; }.endpoint-actions[b-ss8gmx5rwi] { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }.text-action[b-ss8gmx5rwi] { padding: 4px 5px; color: var(--muted); background: transparent; border: 0; border-radius: 4px; font-size: .59rem; cursor: pointer; }.text-action:hover[b-ss8gmx5rwi] { color: var(--ink); background: var(--surface-soft); }.text-action.danger[b-ss8gmx5rwi] { color: #b91c1c; }
.policy-section > header p[b-ss8gmx5rwi] { margin-bottom: 0; }.policy-layout[b-ss8gmx5rwi] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr); margin-top: 14px; gap: 12px; }.policy-layout > section[b-ss8gmx5rwi], .policy-layout > aside[b-ss8gmx5rwi] { padding: 14px; border: 1px solid var(--line); border-radius: 8px; }.policy-layout fieldset[b-ss8gmx5rwi] { padding: 0; border: 0; }.policy-layout legend[b-ss8gmx5rwi] { font-size: .65rem; font-weight: 700; }.radio-row[b-ss8gmx5rwi] { display: flex; margin-top: 9px; gap: 20px; }.radio-row label[b-ss8gmx5rwi], .scanner-grid label[b-ss8gmx5rwi] { display: flex; align-items: center; gap: 6px; color: var(--ink); font-size: .62rem; cursor: pointer; }.radio-row input[b-ss8gmx5rwi], .scanner-grid input[b-ss8gmx5rwi], .audit-groups input[type=checkbox][b-ss8gmx5rwi] { accent-color: var(--primary); }.audit-groups[b-ss8gmx5rwi] { display: grid; margin-top: 10px; gap: 7px; }.audit-groups > input[b-ss8gmx5rwi], .policy-layout aside input[b-ss8gmx5rwi], .endpoint-form input[b-ss8gmx5rwi], .delete-filter input[b-ss8gmx5rwi], .delete-filter select[b-ss8gmx5rwi] { width: 100%; min-width: 0; min-height: 35px; padding: 6px 8px; color: var(--ink); background: var(--surface); border: 1px solid #cad3ce; border-radius: 6px; font: inherit; font-size: .67rem; }.audit-groups > div[b-ss8gmx5rwi] { display: grid; max-height: 190px; overflow: auto; border: 1px solid var(--line); border-radius: 7px; }.audit-groups > div label[b-ss8gmx5rwi] { display: flex; padding: 7px 9px; align-items: center; justify-content: space-between; gap: 8px; font-size: .61rem; }.audit-groups > div label:hover[b-ss8gmx5rwi] { background: var(--surface-soft); }.audit-groups label > span[b-ss8gmx5rwi] { display: flex; align-items: center; gap: 6px; }.audit-groups small[b-ss8gmx5rwi] { color: var(--muted); font-size: .54rem; }.scanner-fieldset[b-ss8gmx5rwi] { margin-top: 14px !important; padding-top: 13px !important; border-top: 1px solid var(--line) !important; }.scanner-grid[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; gap: 5px; }.scanner-grid label[b-ss8gmx5rwi] { padding: 5px; border-radius: 5px; }.scanner-grid label:hover[b-ss8gmx5rwi] { background: var(--surface-soft); }.policy-layout > aside[b-ss8gmx5rwi] { display: grid; align-content: start; gap: 12px; }.policy-layout aside label[b-ss8gmx5rwi] { display: grid; gap: 5px; color: var(--muted); font-size: .61rem; }.policy-layout aside > div[b-ss8gmx5rwi] { padding: 10px; background: var(--surface-soft); border-radius: 7px; }.policy-layout aside b[b-ss8gmx5rwi] { font-size: .63rem; }.policy-layout aside p[b-ss8gmx5rwi] { margin: 3px 0 0; color: var(--muted); font-size: .57rem; }
.pass-notice[b-ss8gmx5rwi] { display: flex; margin: 0; padding: 10px 12px; align-items: center; justify-content: space-between; gap: 12px; color: #92400e; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; font-size: .62rem; }.pass-notice button[b-ss8gmx5rwi] { color: inherit; background: transparent; border: 0; font: inherit; font-weight: 750; cursor: pointer; }
/* 事件区连体壳（2026-11-10 工具栏统一批次）：单行工具栏 + DxGrid 壳 + ListPagination
   连成一张卡（对齐上游厂商序列 accounts-table-shell 形制）；旧 AppFilterBar 栅格与
   自制 events-table/event-pagination 样式随交互改造删除。 */
.events-section[b-ss8gmx5rwi] { padding: 0; border-radius: 10px; }
.events-section > .inline-alert[b-ss8gmx5rwi] { margin: 12px 18px 0; }
.events-section .events-inline-error[b-ss8gmx5rwi] { margin: 12px 18px 0; }
.events-section[b-ss8gmx5rwi]  .state-panel { background: transparent; border: 0; border-radius: 0; }
.events-section[b-ss8gmx5rwi]  .events-data-grid.dxbl-grid { border-top: 0; border-radius: 0; }
.events-section[b-ss8gmx5rwi]  .events-data-grid + .table-pagination { border-radius: 0 0 10px 10px; }
.save-bar[b-ss8gmx5rwi] { position: sticky; z-index: 20; bottom: 0; margin: 0 -20px; padding: 10px 20px; background: color-mix(in srgb, var(--surface) 95%, transparent); border: 1px solid var(--line); border-bottom: 0; box-shadow: 0 -10px 28px rgb(15 23 42 / 8%); backdrop-filter: blur(10px); }.save-toggles[b-ss8gmx5rwi] { flex-wrap: wrap; justify-content: flex-start; gap: 15px; }.save-toggles label[b-ss8gmx5rwi] { display: flex; align-items: center; gap: 6px; font-size: .61rem; cursor: pointer; }.save-toggles input[b-ss8gmx5rwi] { accent-color: var(--primary); }.save-actions[b-ss8gmx5rwi] { justify-content: flex-end; gap: 7px; }.save-actions > span[b-ss8gmx5rwi] { color: var(--muted); font-size: .61rem; }.save-actions > span.dirty[b-ss8gmx5rwi] { color: #b45309; }
.endpoint-form[b-ss8gmx5rwi] { display: flex; flex-direction: column; align-items: start; gap: 10px; }
/* 布局统一（2026-10-21 用户反馈）：审计节点字段改行式（label 左/控件右），与全站弹窗一致。 */
.endpoint-form .form-field[b-ss8gmx5rwi] { display: grid; grid-template-columns: minmax(118px, 150px) minmax(0, 1fr); align-items: center; column-gap: 12px; row-gap: 6px; }
.endpoint-form .form-field > label:first-child[b-ss8gmx5rwi],
.endpoint-form .form-field > .field-label-row[b-ss8gmx5rwi] { grid-column: 1; grid-row: 1; margin: 0; }
.endpoint-form .form-field > :not(label):not(.field-label-row)[b-ss8gmx5rwi] { grid-column: 2; min-width: 0; }
.endpoint-form label[b-ss8gmx5rwi] { color: var(--muted); font-size: .62rem; }.endpoint-form small[b-ss8gmx5rwi] { font-size: .55rem; }.endpoint-form input:not([type=checkbox])[b-ss8gmx5rwi], .endpoint-form select[b-ss8gmx5rwi], .policy-layout aside input[b-ss8gmx5rwi], .audit-groups > input[b-ss8gmx5rwi], .custom-range input[b-ss8gmx5rwi], .delete-basic input[b-ss8gmx5rwi], .delete-basic select[b-ss8gmx5rwi] { min-height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border-color: var(--form-control-border); border-radius: var(--form-control-radius); }.endpoint-form input:not([type=checkbox]):focus[b-ss8gmx5rwi], .endpoint-form select:focus[b-ss8gmx5rwi], .policy-layout aside input:focus[b-ss8gmx5rwi], .audit-groups > input:focus[b-ss8gmx5rwi], .custom-range input:focus[b-ss8gmx5rwi], .delete-basic input:focus[b-ss8gmx5rwi], .delete-basic select:focus[b-ss8gmx5rwi] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }.clear-secret[b-ss8gmx5rwi] { display: flex !important; align-items: center; color: #b91c1c !important; }.clear-secret input[b-ss8gmx5rwi] { width: auto; min-height: 0; accent-color: #dc2626; }
.detail-tabs[b-ss8gmx5rwi] { display: flex; padding-bottom: 9px; gap: 3px; border-bottom: 1px solid var(--line); }.detail-tabs button[b-ss8gmx5rwi] { padding: 6px 9px; color: var(--muted); background: transparent; border: 0; border-radius: 5px; font-size: .63rem; cursor: pointer; }.detail-tabs button.active[b-ss8gmx5rwi] { color: var(--primary); background: #e9f5f0; }.detail-panel[b-ss8gmx5rwi] { height: min(62vh, 36rem); margin-top: 13px; overflow-y: auto; }.summary-layout[b-ss8gmx5rwi] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.summary-layout h3[b-ss8gmx5rwi], .risk-detail-top h3[b-ss8gmx5rwi], .issue-list h3[b-ss8gmx5rwi] { margin: 0; font-size: .68rem; }.summary-layout pre[b-ss8gmx5rwi], .risk-detail-top pre[b-ss8gmx5rwi] { max-height: min(46vh, 26rem); margin: 8px 0 0; padding: 12px; overflow: auto; color: var(--ink); background: var(--surface-soft); border-radius: 7px; font-size: .62rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }.summary-layout dl[b-ss8gmx5rwi], .technical-list[b-ss8gmx5rwi] { display: grid; grid-template-columns: auto minmax(0, 1fr); margin: 0; align-content: start; gap: 7px 12px; font-size: .62rem; }.summary-layout dt[b-ss8gmx5rwi], .technical-list dt[b-ss8gmx5rwi] { color: var(--muted); }.summary-layout dd[b-ss8gmx5rwi], .technical-list dd[b-ss8gmx5rwi] { margin: 0; overflow-wrap: anywhere; }.risk-detail-top[b-ss8gmx5rwi] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.risk-detail-top section > p[b-ss8gmx5rwi] { margin: 4px 0 0; color: var(--muted); font-size: .56rem; }.risk-detail-top pre[b-ss8gmx5rwi] { height: min(39vh, 23rem); }.issue-list[b-ss8gmx5rwi] { margin-top: 15px; }.issue-list > p[b-ss8gmx5rwi] { color: var(--muted); font-size: .62rem; }.issue-list article[b-ss8gmx5rwi] { margin-top: 9px; padding-left: 11px; border-left: 2px solid #f87171; }.issue-list article header[b-ss8gmx5rwi] { display: flex; align-items: center; gap: 7px; }.issue-list article header b[b-ss8gmx5rwi] { font-size: .65rem; }.issue-list article header span[b-ss8gmx5rwi] { color: #b91c1c; font-size: .55rem; }.issue-list article > p[b-ss8gmx5rwi] { margin: 4px 0; color: var(--muted); font-size: .59rem; }.issue-list article dl[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; gap: 4px; }.issue-list article dl div:last-child[b-ss8gmx5rwi] { grid-column: span 2; }.issue-list article dl div[b-ss8gmx5rwi] { font-size: .55rem; }.issue-list dt[b-ss8gmx5rwi], .issue-list dd[b-ss8gmx5rwi] { display: inline; margin: 0; }.issue-list dt[b-ss8gmx5rwi] { color: var(--muted); }.technical-list dd:nth-of-type(-n+2)[b-ss8gmx5rwi] { font-family: monospace; }
.delete-filter[b-ss8gmx5rwi] { display: grid; gap: 14px; }.delete-filter > p[b-ss8gmx5rwi] { margin: 0; color: var(--muted); font-size: .63rem; }.delete-filter fieldset[b-ss8gmx5rwi] { padding: 0; border: 0; }.delete-filter legend[b-ss8gmx5rwi] { color: var(--muted); font-size: .61rem; }.preset-row[b-ss8gmx5rwi] { display: flex; margin-top: 7px; flex-wrap: wrap; gap: 5px; }.preset-row button[b-ss8gmx5rwi] { padding: 5px 9px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; font-size: .57rem; cursor: pointer; }.preset-row button.active[b-ss8gmx5rwi] { color: #b91c1c; background: #fff1f2; border-color: #ef4444; }.delete-filter fieldset > small[b-ss8gmx5rwi] { display: block; margin-top: 6px; color: var(--muted); font-size: .54rem; }.custom-range[b-ss8gmx5rwi], .delete-basic[b-ss8gmx5rwi], .delete-filter details > div[b-ss8gmx5rwi] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; margin-top: 9px; gap: 8px; }.custom-range label[b-ss8gmx5rwi], .delete-basic label[b-ss8gmx5rwi] { display: grid; align-content: start; gap: 5px; color: var(--muted); font-size: .59rem; }.validation[b-ss8gmx5rwi] { display: block; margin-top: 5px; color: #b91c1c; font-size: .55rem; }.delete-filter details[b-ss8gmx5rwi] { padding: 10px; border: 1px solid var(--line); border-radius: 8px; }.delete-filter summary[b-ss8gmx5rwi] { color: var(--muted); font-size: .59rem; cursor: pointer; }.delete-filter details[b-ss8gmx5rwi]  .filter-input { min-width: 0; }.delete-preview[b-ss8gmx5rwi] { padding: 11px; color: #b91c1c; background: #fff1f2; border: 1px solid #fecaca; border-radius: 8px; }.delete-preview > b[b-ss8gmx5rwi] { font-size: .63rem; }.delete-preview dl[b-ss8gmx5rwi] { display: grid; grid-template-columns: auto minmax(0, 1fr); margin: 7px 0 0; gap: 3px 9px; color: var(--muted); font-size: .55rem; }.delete-preview dd[b-ss8gmx5rwi] { margin: 0; overflow-wrap: anywhere; }.delete-preview p[b-ss8gmx5rwi] { margin: 7px 0 0; padding: 6px; color: #92400e; background: #fffbeb; border-radius: 5px; font-size: .54rem; }.delete-preview-empty[b-ss8gmx5rwi] { padding: 10px; color: var(--muted); border: 1px dashed var(--line); border-radius: 8px; font-size: .57rem; }
/* Keep both prompt-audit list surfaces on the same readable typography scale as group management. */
.endpoint-head[b-ss8gmx5rwi] { font-size: .76rem; }
.endpoint-table article > div[b-ss8gmx5rwi] { font-size: .83rem; }
.endpoint-name b[b-ss8gmx5rwi], .endpoint-table article > div > b[b-ss8gmx5rwi] { font-size: .88rem; }
.endpoint-name small[b-ss8gmx5rwi], .limit-tags span[b-ss8gmx5rwi], .credential > span[b-ss8gmx5rwi], .identity small[b-ss8gmx5rwi], .route small[b-ss8gmx5rwi], .decision[b-ss8gmx5rwi], .categories[b-ss8gmx5rwi] { font-size: .75rem; }
.credential small[b-ss8gmx5rwi] { font-size: .71rem; }
.identity b[b-ss8gmx5rwi] { font-size: .8rem; }
/* text-action 收敛（2026-10-27 操作栏统一）：行内按钮改用 app.css 全局 .row-action（.75rem 基准字号）。 */


/* The whole workspace follows the same readable hierarchy, not only its event table. */
.prompt-heading > div > span[b-ss8gmx5rwi], .prompt-heading aside[b-ss8gmx5rwi] { font-size: .75rem; }
.prompt-heading p[b-ss8gmx5rwi], .section-header-row p[b-ss8gmx5rwi], .policy-section header > p[b-ss8gmx5rwi] { font-size: .83rem; }
.inline-alert button[b-ss8gmx5rwi], .page-tabs button[b-ss8gmx5rwi] { font-size: .8rem; }
.section-header-row h2[b-ss8gmx5rwi], .policy-section h2[b-ss8gmx5rwi] { font-size: .95rem; }
.runtime-summary small[b-ss8gmx5rwi], .guard-grid small[b-ss8gmx5rwi], .runtime-details p[b-ss8gmx5rwi], .runtime-error[b-ss8gmx5rwi], .runtime-endpoints span[b-ss8gmx5rwi] { font-size: .75rem; }
.runtime-summary strong[b-ss8gmx5rwi], .runtime-details h3[b-ss8gmx5rwi], .guard-grid b[b-ss8gmx5rwi], .latest-time[b-ss8gmx5rwi] { font-size: .83rem !important; }
.pool-empty[b-ss8gmx5rwi] { font-size: .83rem; }
.policy-layout legend[b-ss8gmx5rwi], .radio-row label[b-ss8gmx5rwi], .scanner-grid label[b-ss8gmx5rwi] { font-size: .8rem; }
.audit-groups > input[b-ss8gmx5rwi], .policy-layout aside input[b-ss8gmx5rwi] { font-size: .83rem; }
.audit-groups > div label[b-ss8gmx5rwi], .policy-layout aside label[b-ss8gmx5rwi] { font-size: .75rem; }
.audit-groups small[b-ss8gmx5rwi], .policy-layout aside p[b-ss8gmx5rwi] { font-size: .71rem; }
.policy-layout aside b[b-ss8gmx5rwi] { font-size: .8rem; }
.pass-notice[b-ss8gmx5rwi] { font-size: .8rem; }
.save-toggles label[b-ss8gmx5rwi], .save-actions > span[b-ss8gmx5rwi] { font-size: .75rem; }
.endpoint-form label[b-ss8gmx5rwi] { font-size: .75rem; }
.endpoint-form small[b-ss8gmx5rwi] { font-size: .71rem; }
.detail-tabs button[b-ss8gmx5rwi] { font-size: .8rem; }
.summary-layout h3[b-ss8gmx5rwi], .risk-detail-top h3[b-ss8gmx5rwi], .issue-list h3[b-ss8gmx5rwi] { font-size: .83rem; }
.summary-layout pre[b-ss8gmx5rwi], .risk-detail-top pre[b-ss8gmx5rwi], .summary-layout dl[b-ss8gmx5rwi], .technical-list[b-ss8gmx5rwi], .issue-list > p[b-ss8gmx5rwi] { font-size: .75rem; }
.risk-detail-top section > p[b-ss8gmx5rwi], .issue-list article header span[b-ss8gmx5rwi], .issue-list article > p[b-ss8gmx5rwi], .issue-list article dl div[b-ss8gmx5rwi] { font-size: .71rem; }
.issue-list article header b[b-ss8gmx5rwi] { font-size: .8rem; }
.delete-filter > p[b-ss8gmx5rwi], .delete-filter legend[b-ss8gmx5rwi], .custom-range label[b-ss8gmx5rwi], .delete-basic label[b-ss8gmx5rwi], .delete-filter summary[b-ss8gmx5rwi], .delete-preview > b[b-ss8gmx5rwi] { font-size: .75rem; }
.preset-row button[b-ss8gmx5rwi], .delete-filter fieldset > small[b-ss8gmx5rwi], .validation[b-ss8gmx5rwi], .delete-preview dl[b-ss8gmx5rwi], .delete-preview p[b-ss8gmx5rwi], .delete-preview-empty[b-ss8gmx5rwi] { font-size: .71rem; }

@media (max-width: 1180px) { .overview-grid[b-ss8gmx5rwi] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.runtime-summary[b-ss8gmx5rwi] { grid-template-columns: repeat(3, minmax(0, 1fr)); }.endpoint-head[b-ss8gmx5rwi] { display: none; }.endpoint-table article[b-ss8gmx5rwi] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.endpoint-actions[b-ss8gmx5rwi] { justify-content: flex-start; }.save-bar[b-ss8gmx5rwi] { align-items: flex-start; flex-direction: column; }.save-actions[b-ss8gmx5rwi] { width: 100%; justify-content: flex-end; } }
@media (max-width: 760px) { .prompt-heading[b-ss8gmx5rwi], .section-header-row[b-ss8gmx5rwi], .policy-section > header[b-ss8gmx5rwi] { align-items: flex-start; flex-direction: column; }.prompt-actions[b-ss8gmx5rwi] { width: 100%; justify-content: flex-start; }.overview-grid[b-ss8gmx5rwi], .runtime-summary[b-ss8gmx5rwi], .runtime-details[b-ss8gmx5rwi], .guard-grid[b-ss8gmx5rwi], .policy-layout[b-ss8gmx5rwi], .endpoint-table article[b-ss8gmx5rwi], .summary-layout[b-ss8gmx5rwi], .risk-detail-top[b-ss8gmx5rwi], .endpoint-form[b-ss8gmx5rwi], .custom-range[b-ss8gmx5rwi], .delete-basic[b-ss8gmx5rwi], .delete-filter details > div[b-ss8gmx5rwi] { grid-template-columns: 1fr; }.page-tabs[b-ss8gmx5rwi] { width: 100%; }.page-tabs button[b-ss8gmx5rwi] { flex: 1; }.runtime-section[b-ss8gmx5rwi], .pool-section[b-ss8gmx5rwi], .policy-section[b-ss8gmx5rwi], .events-section[b-ss8gmx5rwi] { padding-right: 14px; padding-left: 14px; }.section-header-row[b-ss8gmx5rwi], .policy-section > header[b-ss8gmx5rwi] { margin-right: -14px; margin-left: -14px; padding-right: 14px; padding-left: 14px; }.scanner-grid[b-ss8gmx5rwi] { grid-template-columns: 1fr; }.endpoint-form .span-two[b-ss8gmx5rwi], .issue-list article dl div:last-child[b-ss8gmx5rwi] { grid-column: auto; }.filter-actions[b-ss8gmx5rwi] { flex-wrap: wrap; }.save-bar[b-ss8gmx5rwi] { margin: 0 -8px; padding: 9px; }.save-actions[b-ss8gmx5rwi] { flex-wrap: wrap; justify-content: flex-start; } }
/* /Pages/AdminRequestAudit.razor.rz.scp.css */
.request-audit-page[b-8pkmdz276n] { display: grid; gap: 20px; padding-bottom: 42px; color: var(--ink); }
.audit-heading[b-8pkmdz276n], .audit-actions[b-8pkmdz276n], .card-title-row[b-8pkmdz276n], .policy-section > header[b-8pkmdz276n], .pagination[b-8pkmdz276n], .pagination > div[b-8pkmdz276n], .policy-actions[b-8pkmdz276n] { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.audit-heading h1[b-8pkmdz276n] { margin: 0; font-size: 1.38rem; font-weight: 800; }
.audit-heading p[b-8pkmdz276n], .card-title-row p[b-8pkmdz276n], .policy-section header p[b-8pkmdz276n] { margin: 4px 0 0; color: var(--muted); font-size: .76rem; }
.audit-actions[b-8pkmdz276n] { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.overview-grid[b-8pkmdz276n] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.overview-card[b-8pkmdz276n] { position: relative; display: flex; min-width: 0; min-height: 82px; padding: 14px; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.overview-icon[b-8pkmdz276n] { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; color: #64748b; background: #f1f5f9; border-radius: 8px; }
.overview-icon.green[b-8pkmdz276n] { color: #059669; background: #ecfdf5; }
.overview-icon.blue[b-8pkmdz276n] { color: #0284c7; background: #f0f9ff; }
.overview-icon.purple[b-8pkmdz276n] { color: #7c3aed; background: #f5f3ff; }
.overview-icon.amber[b-8pkmdz276n] { color: #d97706; background: #fffbeb; }
.overview-card > div[b-8pkmdz276n] { min-width: 0; }
.overview-card small[b-8pkmdz276n] { display: block; color: var(--muted); font-size: .65rem; }
.overview-card strong[b-8pkmdz276n] { display: block; margin-top: 3px; overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.overview-card p[b-8pkmdz276n] { margin: 2px 0 0; overflow: hidden; color: var(--muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.state-pill[b-8pkmdz276n] { position: absolute; top: 10px; right: 10px; display: inline-flex; width: fit-content; padding: 3px 8px; align-items: center; border-radius: 999px; font-size: .61rem; font-weight: 750; white-space: nowrap; }
.state-pill.success[b-8pkmdz276n] { color: #047857; background: #d1fae5; }
.state-pill.neutral[b-8pkmdz276n] { color: #64748b; background: #f1f5f9; }

/* 页签 2026-10-21 统一到全站下划线式（ops-tabs 基准）：分段胶囊式退役。 */
.page-tabs[b-8pkmdz276n] { display: inline-flex; width: fit-content; gap: 4px; border-bottom: 1px solid var(--line); }
.page-tabs button[b-8pkmdz276n] { min-height: 36px; padding: 7px 12px; color: var(--muted); background: transparent; border: 0; border-bottom: 2px solid transparent; font-size: .68rem; font-weight: 700; cursor: pointer; }
.page-tabs button:hover[b-8pkmdz276n] { color: var(--ink); }
.page-tabs button.active[b-8pkmdz276n] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }

.policy-notice[b-8pkmdz276n] { display: flex; padding: 12px 14px; align-items: center; gap: 9px; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; font-size: .68rem; }
.policy-notice span[b-8pkmdz276n] { flex: 1; }
.policy-notice button[b-8pkmdz276n] { padding: 0; color: #b45309; background: transparent; border: 0; font-size: .65rem; font-weight: 750; cursor: pointer; }

.audit-card[b-8pkmdz276n] { min-width: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
/* records-header（标题+AppFilterBar 栅格）随 2026-11-10 工具栏统一退役：单行工具栏 + DxGrid 壳 + ListPagination 连成一张卡。 */
.records-section[b-8pkmdz276n] { border-radius: 10px; }
.records-section[b-8pkmdz276n]  .records-data-grid.dxbl-grid { border-top: 0; border-radius: 0; }
.records-section[b-8pkmdz276n]  .records-data-grid + .table-pagination { border-radius: 0 0 10px 10px; }
.card-title-row h2[b-8pkmdz276n], .policy-section h2[b-8pkmdz276n] { margin: 0; font-size: .94rem; font-weight: 780; }
.filters[b-8pkmdz276n] { display: grid; grid-template-columns: 1.3fr .65fr 1fr .7fr 1.2fr 1fr 1fr auto; align-items: end; gap: 8px; }
.filters[b-8pkmdz276n]  .filter-input { min-width: 0; }
.filters label[b-8pkmdz276n] { display: grid; min-width: 0; gap: 5px; }
.filters label > span[b-8pkmdz276n] { color: var(--muted); font-size: .61rem; }
.filters input[b-8pkmdz276n], .filters select[b-8pkmdz276n], .pagination select[b-8pkmdz276n], .policy-grid input[type="number"][b-8pkmdz276n], .policy-grid select[b-8pkmdz276n] { width: 100%; min-width: 0; min-height: 35px; padding: 6px 9px; color: var(--ink); background: var(--surface); border: 1px solid #cad3ce; border-radius: 6px; font: inherit; font-size: .68rem; }
.filters input:focus[b-8pkmdz276n], .filters select:focus[b-8pkmdz276n], .policy-grid input:focus[b-8pkmdz276n], .policy-grid select:focus[b-8pkmdz276n] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.filter-actions[b-8pkmdz276n] { display: flex; min-height: 35px; align-items: center; gap: 6px; }
/* 筛选区输入统一 36px（与 DevExpress 编辑器/全站口径一致，35px 是历史值）。 */
.filters input[b-8pkmdz276n], .filters select[b-8pkmdz276n] { min-height: 36px; }
.records-section > .inline-alert[b-8pkmdz276n] { margin: 12px 14px 0; }
.records-section[b-8pkmdz276n]  .state-panel { background: transparent; border: 0; border-radius: 0; }
.records-table-wrap[b-8pkmdz276n] { overflow: auto; }
.records-table[b-8pkmdz276n] { width: 100%; min-width: 1120px; border-collapse: collapse; table-layout: fixed; }
.records-table th[b-8pkmdz276n], .records-table td[b-8pkmdz276n] { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.records-table th[b-8pkmdz276n] { color: var(--muted); background: var(--surface-soft); font-size: .58rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
.records-table td[b-8pkmdz276n] { max-width: 260px; font-size: .65rem; }
.records-table tbody tr:hover[b-8pkmdz276n] { background: var(--surface-soft); }
.records-table th:nth-child(1)[b-8pkmdz276n] { width: 142px; }
.records-table th:nth-child(2)[b-8pkmdz276n] { width: 190px; }
.records-table th:nth-child(3)[b-8pkmdz276n] { width: 260px; }
.records-table th:nth-child(4)[b-8pkmdz276n] { width: 82px; }
.records-table th:nth-child(5)[b-8pkmdz276n] { width: 112px; }
.records-table th:nth-child(7)[b-8pkmdz276n] { width: 66px; }
.identity[b-8pkmdz276n], .route[b-8pkmdz276n] { display: grid; gap: 2px; }
.identity b[b-8pkmdz276n], .route b[b-8pkmdz276n], .identity small[b-8pkmdz276n], .route small[b-8pkmdz276n] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.identity small[b-8pkmdz276n], .route small[b-8pkmdz276n], .latency[b-8pkmdz276n], .truncated[b-8pkmdz276n] { color: var(--muted); font-size: .58rem; }
.status[b-8pkmdz276n] { display: inline-flex; min-width: 38px; padding: 3px 6px; justify-content: center; border-radius: 999px; font-size: .61rem; font-weight: 750; }
.status.success[b-8pkmdz276n] { color: #047857; background: #d1fae5; }
.status.warning[b-8pkmdz276n] { color: #b45309; background: #fef3c7; }
.status.danger[b-8pkmdz276n] { color: #b91c1c; background: #fee2e2; }
.latency[b-8pkmdz276n], .truncated[b-8pkmdz276n] { display: block; margin-top: 4px; }
.body-state[b-8pkmdz276n] { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); }
.body-state.encrypted[b-8pkmdz276n] { color: #047857; }
.preview[b-8pkmdz276n] { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--muted); line-height: 1.45; overflow-wrap: anywhere; }
/* row-action 已由 app.css 全局提供（2026-10-27 操作栏统一，基准=上游厂商序列页签）。 */
.pagination[b-8pkmdz276n] { padding: 11px 14px; color: var(--muted); font-size: .65rem; }
.pagination > div[b-8pkmdz276n] { gap: 7px; }
.pagination select[b-8pkmdz276n] { width: auto; min-height: 32px; }
.pagination .icon-button[b-8pkmdz276n] { width: 32px; height: 32px; }

.policy-section > header[b-8pkmdz276n] { padding: 16px 18px; align-items: flex-start; border-bottom: 1px solid var(--line); }
.policy-section > header > span[b-8pkmdz276n] { color: var(--muted); font-size: .62rem; }
.policy-grid[b-8pkmdz276n] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 18px; gap: 12px; }
.policy-grid fieldset[b-8pkmdz276n] { min-width: 0; margin: 0; padding: 14px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; }
.policy-grid legend[b-8pkmdz276n] { padding: 0 6px; color: var(--ink); font-size: .7rem; font-weight: 750; }
.policy-grid fieldset > label:not(.toggle-row)[b-8pkmdz276n] { display: grid; margin-top: 13px; gap: 6px; }
.policy-grid fieldset > label > span[b-8pkmdz276n] { color: var(--muted); font-size: .63rem; }
.toggle-row[b-8pkmdz276n] { display: flex; padding: 10px 0; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); }
.toggle-row span[b-8pkmdz276n] { display: grid; gap: 3px; }
.toggle-row b[b-8pkmdz276n] { font-size: .68rem; }
.toggle-row small[b-8pkmdz276n], .field-note[b-8pkmdz276n] { color: var(--muted); font-size: .59rem; line-height: 1.5; }
.toggle-row input[b-8pkmdz276n] { width: 34px; height: 18px; flex: 0 0 auto; accent-color: var(--primary); }
.key-warning[b-8pkmdz276n] { display: flex; margin-top: 10px; padding: 9px 10px; align-items: flex-start; gap: 7px; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 7px; font-size: .62rem; }
.policy-actions[b-8pkmdz276n] { padding: 14px 18px; justify-content: flex-end; border-top: 1px solid var(--line); }
.policy-actions > span[b-8pkmdz276n] { margin-right: auto; color: var(--muted); font-size: .62rem; }

.detail-meta[b-8pkmdz276n] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; gap: 9px; }
.detail-meta > div[b-8pkmdz276n] { display: grid; min-width: 0; padding: 11px; gap: 3px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; }
.detail-meta span[b-8pkmdz276n], .detail-meta small[b-8pkmdz276n] { color: var(--muted); font-size: .58rem; }
.detail-meta b[b-8pkmdz276n], .detail-meta small[b-8pkmdz276n] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.content-columns[b-8pkmdz276n] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.content-columns section[b-8pkmdz276n] { min-width: 0; }
.content-columns header[b-8pkmdz276n] { display: flex; margin-bottom: 7px; align-items: center; justify-content: space-between; }
.content-columns h3[b-8pkmdz276n] { margin: 0; font-size: .72rem; }
.content-columns header small[b-8pkmdz276n] { color: var(--muted); font-size: .58rem; }
.content-columns pre[b-8pkmdz276n] { min-height: 320px; max-height: 58vh; margin: 0; padding: 13px; overflow: auto; color: #e2e8f0; background: #0f172a; border-radius: 7px; font: .66rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.nowrap[b-8pkmdz276n] { white-space: nowrap; }

@media (max-width: 1180px) {
    .overview-grid[b-8pkmdz276n] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filters[b-8pkmdz276n] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .policy-grid[b-8pkmdz276n] { grid-template-columns: 1fr; }
    .content-columns[b-8pkmdz276n] { grid-template-columns: 1fr; }
    .detail-meta[b-8pkmdz276n] { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
    .audit-heading[b-8pkmdz276n], .card-title-row[b-8pkmdz276n], .policy-section > header[b-8pkmdz276n] { align-items: flex-start; flex-direction: column; }
    .audit-actions[b-8pkmdz276n] { width: 100%; justify-content: flex-start; }
    .overview-grid[b-8pkmdz276n], .filters[b-8pkmdz276n] { grid-template-columns: 1fr; }
    .page-tabs[b-8pkmdz276n] { width: 100%; }
    .page-tabs button[b-8pkmdz276n] { flex: 1; }
    .filter-actions[b-8pkmdz276n] { flex-wrap: wrap; }
    .policy-actions[b-8pkmdz276n] { align-items: stretch; flex-wrap: wrap; }
    .policy-actions > span[b-8pkmdz276n] { width: 100%; }
    .policy-actions .button[b-8pkmdz276n] { flex: 1; }
    .detail-meta[b-8pkmdz276n] { grid-template-columns: 1fr; }
    .pagination[b-8pkmdz276n] { align-items: flex-start; flex-direction: column; }
}
/* /Pages/AdminRiskControl.razor.rz.scp.css */
.risk-page[b-40gg5awyyz] { display: grid; gap: 20px; padding-bottom: 42px; color: var(--ink); }
.risk-heading[b-40gg5awyyz], .risk-actions[b-40gg5awyyz], .card-title-row[b-40gg5awyyz], .card-title-actions[b-40gg5awyyz], .card-header[b-40gg5awyyz], .records-header > div:first-child[b-40gg5awyyz], .table-footer[b-40gg5awyyz], .table-footer > div[b-40gg5awyyz], .section-intro[b-40gg5awyyz] { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.risk-heading h1[b-40gg5awyyz] { margin: 0; font-size: 1.38rem; font-weight: 800; }
.risk-heading p[b-40gg5awyyz], .card-header p[b-40gg5awyyz], .card-title-row p[b-40gg5awyyz], .section-intro p[b-40gg5awyyz] { margin: 4px 0 0; color: var(--muted); font-size: .76rem; }
.risk-actions[b-40gg5awyyz], .card-title-actions[b-40gg5awyyz] { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.overview-grid[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.overview-card[b-40gg5awyyz] { position: relative; display: flex; min-width: 0; min-height: 82px; padding: 14px; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.overview-icon[b-40gg5awyyz] { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; color: #64748b; background: #f1f5f9; border-radius: 8px; }
.overview-icon.green[b-40gg5awyyz] { color: #059669; background: #ecfdf5; }.overview-icon.blue[b-40gg5awyyz] { color: #0284c7; background: #f0f9ff; }.overview-icon.purple[b-40gg5awyyz] { color: #7c3aed; background: #f5f3ff; }.overview-icon.amber[b-40gg5awyyz] { color: #d97706; background: #fffbeb; }
.overview-card > div[b-40gg5awyyz] { min-width: 0; }.overview-card small[b-40gg5awyyz] { display: block; color: var(--muted); font-size: .65rem; }.overview-card strong[b-40gg5awyyz] { display: block; margin-top: 3px; overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }.overview-card p[b-40gg5awyyz] { margin: 2px 0 0; overflow: hidden; color: var(--muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.state-pill[b-40gg5awyyz], .soft-pill[b-40gg5awyyz], .result-pill[b-40gg5awyyz] { display: inline-flex; width: fit-content; padding: 3px 8px; align-items: center; border-radius: 999px; font-size: .61rem; font-weight: 750; white-space: nowrap; }.state-pill[b-40gg5awyyz] { position: absolute; top: 10px; right: 10px; }.state-pill.success[b-40gg5awyyz], .result-pill.success[b-40gg5awyyz] { color: #047857; background: #d1fae5; }.state-pill.neutral[b-40gg5awyyz], .result-pill.neutral[b-40gg5awyyz] { color: #64748b; background: #f1f5f9; }

.runtime-split[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(420px, 5fr) minmax(520px, 7fr); gap: 18px; }
.risk-card[b-40gg5awyyz] { min-width: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.card-header[b-40gg5awyyz], .records-header[b-40gg5awyyz] { padding: 16px 18px; border-bottom: 1px solid var(--line); }.card-header[b-40gg5awyyz] { align-items: flex-start; }.card-header h2[b-40gg5awyyz], .card-title-row h2[b-40gg5awyyz], .section-intro h3[b-40gg5awyyz], .scope-block h3[b-40gg5awyyz] { margin: 0; font-size: .94rem; font-weight: 780; }.soft-pill[b-40gg5awyyz] { color: var(--muted); background: var(--surface-soft); }
.runtime-metrics[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 18px; }.runtime-metrics article[b-40gg5awyyz] { min-width: 0; padding: 12px; background: var(--surface-soft); border-radius: 8px; }.runtime-metrics article.sky[b-40gg5awyyz] { background: #f0f9ff; }.runtime-metrics article.green[b-40gg5awyyz] { background: #ecfdf5; }.runtime-metrics article.red[b-40gg5awyyz] { background: #fff1f2; }.runtime-metrics article.amber[b-40gg5awyyz] { background: #fffbeb; }.runtime-metrics article.purple[b-40gg5awyyz] { background: #f5f3ff; }.runtime-metrics small[b-40gg5awyyz], .runtime-metrics p[b-40gg5awyyz] { color: var(--muted); font-size: .62rem; }.runtime-metrics strong[b-40gg5awyyz] { display: block; margin-top: 7px; overflow: hidden; font-size: 1.18rem; text-overflow: ellipsis; white-space: nowrap; }.runtime-metrics p[b-40gg5awyyz] { margin: 3px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.key-load-list[b-40gg5awyyz] { display: grid; max-height: 330px; padding: 14px 18px 18px; overflow: auto; gap: 9px; }.key-load-list article[b-40gg5awyyz] { padding: 11px 12px; background: var(--surface-soft); border-radius: 8px; }.key-load-head[b-40gg5awyyz], .key-load-head span[b-40gg5awyyz] { display: flex; align-items: center; gap: 8px; }.key-load-head[b-40gg5awyyz] { justify-content: space-between; }.key-load-head code[b-40gg5awyyz] { color: var(--ink); font-size: .68rem; }.key-load-head small[b-40gg5awyyz] { color: var(--muted); font-size: .6rem; }.status-dot[b-40gg5awyyz] { width: 7px; height: 7px; border-radius: 50%; }.status-dot.success[b-40gg5awyyz], .key-state.success i[b-40gg5awyyz] { background: #10b981; }.status-dot.danger[b-40gg5awyyz], .key-state.danger i[b-40gg5awyyz] { background: #ef4444; }.status-dot.warning[b-40gg5awyyz], .key-state.warning i[b-40gg5awyyz] { background: #f59e0b; }.status-dot.neutral[b-40gg5awyyz], .key-state.neutral i[b-40gg5awyyz] { background: #94a3b8; }
.key-load-list dl[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 9px 0 0; gap: 7px; text-align: right; }.key-load-list dl div[b-40gg5awyyz] { display: grid; gap: 2px; }.key-load-list dt[b-40gg5awyyz] { color: var(--muted); font-size: .58rem; }.key-load-list dd[b-40gg5awyyz] { margin: 0; font-size: .67rem; font-weight: 700; }.load-meter[b-40gg5awyyz], .queue-meter[b-40gg5awyyz], .score-meter[b-40gg5awyyz] { height: 5px; margin-top: 9px; overflow: hidden; background: var(--surface); border-radius: 999px; }.load-meter i[b-40gg5awyyz], .queue-meter i[b-40gg5awyyz] { display: block; height: 100%; background: #0ea5e9; border-radius: inherit; }

.auto-refresh[b-40gg5awyyz] { color: var(--muted); font-size: .64rem; }.worker-layout[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(280px, 360px) 1fr; padding: 18px; gap: 24px; }.queue-panel[b-40gg5awyyz] { display: grid; gap: 12px; }.queue-title[b-40gg5awyyz] { display: flex; justify-content: space-between; gap: 12px; }.queue-title span[b-40gg5awyyz] { display: grid; gap: 2px; }.queue-title small[b-40gg5awyyz], .worker-pool small[b-40gg5awyyz] { color: var(--muted); font-size: .62rem; }.queue-meter[b-40gg5awyyz] { height: 8px; margin: 0; background: var(--surface-soft); }.worker-metrics[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }.worker-metrics article[b-40gg5awyyz] { padding: 12px; background: var(--surface-soft); border-radius: 8px; }.worker-metrics article.green[b-40gg5awyyz] { background: #ecfdf5; }.worker-metrics small[b-40gg5awyyz] { display: block; color: var(--muted); font-size: .62rem; }.worker-metrics strong[b-40gg5awyyz] { display: block; margin-top: 5px; font-size: 1.1rem; }.worker-pool > div:first-child[b-40gg5awyyz] { display: grid; gap: 3px; }.worker-slots[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); margin-top: 13px; gap: 7px; }.worker-slots span[b-40gg5awyyz] { display: flex; height: 42px; padding: 0 10px; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 7px; font-size: .66rem; }.worker-slots i[b-40gg5awyyz] { width: 8px; height: 8px; background: #94a3b8; border-radius: 50%; }.worker-slots .active[b-40gg5awyyz] { color: #0369a1; background: #f0f9ff; border-color: #bae6fd; }.worker-slots .active i[b-40gg5awyyz] { background: #0ea5e9; }.worker-slots .idle[b-40gg5awyyz] { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }.worker-slots .idle i[b-40gg5awyyz] { background: #10b981; }.worker-slots .disabled[b-40gg5awyyz] { opacity: .65; }

.records-header[b-40gg5awyyz] { display: grid; gap: 13px; }.model-filter-summary[b-40gg5awyyz] { display: flex; min-width: 0; padding: 8px 10px; align-items: center; gap: 7px; color: var(--muted); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; font-size: .66rem; }.model-filter-summary b[b-40gg5awyyz] { color: var(--ink); }.model-filter-summary code[b-40gg5awyyz] { max-width: 170px; padding: 3px 6px; overflow: hidden; color: var(--muted); background: var(--surface); border-radius: 4px; text-overflow: ellipsis; white-space: nowrap; }
/* 2026-11-02 全站行式：筛选字段 label 左/控件右（与 app.css 页面级行式模板同款）。 */
.log-filters[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(4, minmax(190px, 1fr)); gap: 8px; }.log-filters > *[b-40gg5awyyz] { min-width: 0; }.log-filters select[b-40gg5awyyz], .log-filters input[b-40gg5awyyz], .table-footer select[b-40gg5awyyz] { box-sizing: border-box; width: 100%; min-height: 35px; padding: 6px 9px; color: var(--ink); background: var(--surface); border: 1px solid #cad3ce; border-radius: 6px; font: inherit; font-size: .69rem; }.search-field[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(52px, 68px) minmax(0, 1fr); align-items: center; column-gap: 6px; min-height: 35px; }.search-field input[b-40gg5awyyz] { height: 35px; padding-left: 9px; }
.log-filters .form-field[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(52px, 68px) minmax(0, 1fr); align-items: center; column-gap: 6px; gap: 0; margin-bottom: 0; }
.log-filters .quick-date-range[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(52px, 68px) minmax(0, 1fr); align-items: center; column-gap: 6px; }
/* 筛选区输入统一 36px（与 DevExpress 编辑器/全站口径一致，35px 是历史值）。 */
.log-filters select[b-40gg5awyyz], .log-filters input[b-40gg5awyyz], .search-field[b-40gg5awyyz], .search-field input[b-40gg5awyyz] { min-height: 36px; }
.search-field input[b-40gg5awyyz] { height: 36px; }
.risk-table-wrap[b-40gg5awyyz] { overflow: auto; }.risk-table[b-40gg5awyyz] { width: 100%; min-width: 1320px; border-collapse: collapse; }.risk-table th[b-40gg5awyyz], .risk-table td[b-40gg5awyyz] { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }.risk-table th[b-40gg5awyyz] { color: var(--muted); background: var(--surface-soft); font-size: .58rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }.risk-table td[b-40gg5awyyz] { max-width: 220px; font-size: .65rem; }.risk-table tbody tr:hover[b-40gg5awyyz] { background: var(--surface-soft); }.nowrap[b-40gg5awyyz] { white-space: nowrap; }.stacked[b-40gg5awyyz], .action-meta[b-40gg5awyyz] { display: grid; gap: 2px; }.stacked b[b-40gg5awyyz], .action-meta b[b-40gg5awyyz] { overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }.stacked small[b-40gg5awyyz], .action-meta small[b-40gg5awyyz] { color: var(--muted); font-size: .58rem; }.action-meta button[b-40gg5awyyz] { width: fit-content; padding: 0; color: #047857; background: transparent; border: 0; font-size: .6rem; font-weight: 750; cursor: pointer; }.result-pill.danger[b-40gg5awyyz] { color: #b91c1c; background: #fee2e2; }.result-pill.warning[b-40gg5awyyz] { color: #b45309; background: #fef3c7; }.result-pill.hit[b-40gg5awyyz] { color: #be185d; background: #fce7f3; }.excerpt-button[b-40gg5awyyz] { display: block; max-width: 210px; padding: 0; overflow: hidden; color: var(--ink); background: transparent; border: 0; font: inherit; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }.excerpt-button:hover[b-40gg5awyyz] { color: var(--primary); text-decoration: underline; }
.table-footer[b-40gg5awyyz] { padding: 11px 14px; color: var(--muted); font-size: .65rem; }.table-footer > div[b-40gg5awyyz] { gap: 7px; }.table-footer select[b-40gg5awyyz] { width: auto; min-height: 32px; }.table-footer .icon-button[b-40gg5awyyz] { width: 32px; height: 32px; }

.settings-tabs[b-40gg5awyyz] { display: flex; margin: -4px -4px 0; padding: 0 4px 10px; overflow-x: auto; gap: 3px; border-bottom: 1px solid var(--line); }.settings-tabs button[b-40gg5awyyz] { padding: 8px 11px; color: var(--muted); background: transparent; border: 0; border-radius: 6px; font-size: .68rem; font-weight: 700; white-space: nowrap; cursor: pointer; }.settings-tabs button:hover[b-40gg5awyyz] { color: var(--ink); background: var(--surface-soft); }.settings-tabs button.active[b-40gg5awyyz] { color: #fff; background: var(--primary); }
.settings-content[b-40gg5awyyz] { display: grid; padding-top: 16px; gap: 15px; }.setting-block[b-40gg5awyyz], .scope-block[b-40gg5awyyz], .hash-panel[b-40gg5awyyz], .cleanup-card[b-40gg5awyyz] { padding: 14px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; }.setting-switch[b-40gg5awyyz] { display: flex; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; }.setting-switch > span[b-40gg5awyyz] { display: grid; gap: 3px; }.setting-switch b[b-40gg5awyyz] { font-size: .72rem; }.setting-switch small[b-40gg5awyyz], .risk-form label small[b-40gg5awyyz], .full-field small[b-40gg5awyyz], .scope-block > p[b-40gg5awyyz] { color: var(--muted); font-size: .61rem; line-height: 1.5; }.setting-switch input[b-40gg5awyyz] { width: 34px; height: 18px; accent-color: var(--primary); }
.mode-options[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }.mode-options button[b-40gg5awyyz] { display: flex; min-height: 78px; padding: 12px; align-items: flex-start; justify-content: space-between; gap: 10px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; text-align: left; cursor: pointer; }.mode-options button:hover[b-40gg5awyyz] { background: var(--surface-soft); }.mode-options button.active[b-40gg5awyyz] { background: #eff8f4; border-color: #69b899; box-shadow: 0 0 0 1px #69b899 inset; }.mode-options button > span[b-40gg5awyyz] { display: grid; gap: 4px; }.mode-options b[b-40gg5awyyz] { font-size: .7rem; }.mode-options small[b-40gg5awyyz] { color: var(--muted); font-size: .6rem; line-height: 1.45; }.mode-options i[b-40gg5awyyz] { width: 14px; height: 14px; flex: 0 0 auto; border: 1px solid #b7c2bd; border-radius: 50%; }.mode-options button.active i[b-40gg5awyyz] { background: var(--primary); border: 4px solid #d9eee5; }.mode-options.compact button[b-40gg5awyyz] { min-height: 70px; }
.risk-form[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px; }.risk-form label[b-40gg5awyyz], .full-field[b-40gg5awyyz] { display: grid; align-content: start; gap: 6px; }.risk-form label > span[b-40gg5awyyz], .full-field > span[b-40gg5awyyz] { font-size: .65rem; font-weight: 700; }.risk-form input[b-40gg5awyyz], .risk-form select[b-40gg5awyyz], .full-field textarea[b-40gg5awyyz], .group-picker > input[b-40gg5awyyz], .hash-panel input[b-40gg5awyyz], .api-key-input textarea[b-40gg5awyyz], .audit-input textarea[b-40gg5awyyz] { width: 100%; min-width: 0; min-height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); font: inherit; font-size: .69rem; }.risk-form textarea[b-40gg5awyyz], .full-field textarea[b-40gg5awyyz], .api-key-input textarea[b-40gg5awyyz], .audit-input textarea[b-40gg5awyyz] { resize: vertical; }.risk-form input:focus[b-40gg5awyyz], .risk-form select:focus[b-40gg5awyyz], .full-field textarea:focus[b-40gg5awyyz], .group-picker > input:focus[b-40gg5awyyz], .hash-panel input:focus[b-40gg5awyyz], .api-key-input textarea:focus[b-40gg5awyyz], .audit-input textarea:focus[b-40gg5awyyz] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }

.api-key-panel[b-40gg5awyyz] { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }.api-key-panel > header[b-40gg5awyyz], .api-key-panel > header > div[b-40gg5awyyz], .panel-icon[b-40gg5awyyz], .api-key-health > header[b-40gg5awyyz], .audit-input > header[b-40gg5awyyz], .audit-result > header[b-40gg5awyyz] { display: flex; align-items: center; justify-content: space-between; gap: 9px; }.api-key-panel > header[b-40gg5awyyz] { padding: 13px; background: var(--surface-soft); border-bottom: 1px solid var(--line); }.api-key-panel > header > div:first-child > span:last-child[b-40gg5awyyz], .api-key-health > header > span[b-40gg5awyyz], .audit-input > header > div[b-40gg5awyyz] { display: grid; gap: 3px; }.api-key-panel > header b[b-40gg5awyyz], .api-key-health > header b[b-40gg5awyyz], .audit-input > header b[b-40gg5awyyz] { font-size: .7rem; }.api-key-panel > header small[b-40gg5awyyz], .api-key-health > header small[b-40gg5awyyz], .audit-input > header small[b-40gg5awyyz] { color: var(--muted); font-size: .59rem; }.panel-icon[b-40gg5awyyz] { width: 34px; height: 34px; justify-content: center; color: var(--primary); background: #e9f5f0; border-radius: 7px; }.api-key-panel > header > div:last-child[b-40gg5awyyz] { flex-wrap: wrap; justify-content: flex-end; }
.api-key-layout[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); gap: 13px; padding: 13px; }.api-key-input[b-40gg5awyyz] { display: grid; align-content: start; gap: 9px; }.write-mode[b-40gg5awyyz] { display: flex; padding: 6px 7px; align-items: center; justify-content: space-between; gap: 8px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; }.write-mode > span[b-40gg5awyyz] { display: grid; gap: 2px; }.write-mode b[b-40gg5awyyz] { font-size: .62rem; }.write-mode small[b-40gg5awyyz] { color: var(--muted); font-size: .56rem; }.write-mode > div[b-40gg5awyyz] { display: flex; padding: 2px; background: var(--surface); border-radius: 6px; box-shadow: 0 1px 2px rgb(15 23 42 / 7%); }.write-mode button[b-40gg5awyyz] { padding: 5px 9px; color: var(--muted); background: transparent; border: 0; border-radius: 5px; font-size: .6rem; cursor: pointer; }.write-mode button.active[b-40gg5awyyz] { color: #fff; background: var(--primary); }.write-mode button.replace.active[b-40gg5awyyz] { background: #d97706; }.write-mode button:disabled[b-40gg5awyyz] { opacity: .5; }.tag-line[b-40gg5awyyz] { display: flex; flex-wrap: wrap; gap: 6px; }.tag-line span[b-40gg5awyyz], .tag-line b[b-40gg5awyyz] { padding: 3px 6px; color: var(--muted); background: var(--surface-soft); border-radius: 4px; font-size: .57rem; font-weight: 600; }.tag-line .danger[b-40gg5awyyz] { color: #b91c1c; background: #fee2e2; }.tag-line .warning[b-40gg5awyyz] { color: #b45309; background: #fef3c7; }
.audit-input[b-40gg5awyyz] { display: grid; margin-top: 3px; padding: 10px; gap: 8px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; }.audit-input header button[b-40gg5awyyz] { padding: 0; color: var(--muted); background: transparent; border: 0; font-size: .57rem; cursor: pointer; }.image-upload[b-40gg5awyyz] { padding: 9px; background: var(--surface); border: 1px dashed var(--line); border-radius: 7px; }.image-upload > label[b-40gg5awyyz] { position: relative; display: flex; align-items: center; gap: 8px; cursor: pointer; }.image-upload > label > span[b-40gg5awyyz] { display: grid; gap: 2px; }.image-upload b[b-40gg5awyyz] { font-size: .63rem; }.image-upload small[b-40gg5awyyz] { color: var(--muted); font-size: .57rem; }.image-upload :deep(input[type=file])[b-40gg5awyyz] { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }.image-preview[b-40gg5awyyz] { display: flex; position: relative; margin-top: 8px; padding: 6px; align-items: center; gap: 7px; background: var(--surface-soft); border-radius: 6px; }.image-preview img[b-40gg5awyyz] { width: 48px; height: 48px; object-fit: cover; border-radius: 5px; }.image-preview span[b-40gg5awyyz] { min-width: 0; overflow: hidden; font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }.image-preview button[b-40gg5awyyz] { margin-left: auto; color: var(--muted); background: transparent; border: 0; cursor: pointer; }
.api-key-health[b-40gg5awyyz] { min-width: 0; padding: 10px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; }.api-key-health > header[b-40gg5awyyz] { align-items: flex-start; }.api-key-health > header em[b-40gg5awyyz] { padding: 3px 7px; color: var(--muted); background: var(--surface); border-radius: 999px; font-size: .57rem; font-style: normal; }.health-empty[b-40gg5awyyz] { display: grid; min-height: 130px; margin-top: 9px; padding: 15px; place-content: center; justify-items: center; gap: 5px; color: var(--muted); background: var(--surface); border: 1px dashed var(--line); border-radius: 7px; text-align: center; }.health-empty b[b-40gg5awyyz] { color: var(--ink); font-size: .66rem; }.health-empty small[b-40gg5awyyz] { font-size: .58rem; }.key-status-list[b-40gg5awyyz] { display: grid; max-height: 310px; margin-top: 9px; overflow-y: auto; gap: 7px; }.key-status-list article[b-40gg5awyyz] { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; padding: 8px; gap: 7px; background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }.key-status-list article.pending[b-40gg5awyyz] { opacity: .65; border-color: #f59e0b; }.key-status-list article > div[b-40gg5awyyz] { min-width: 0; }.key-status-list code[b-40gg5awyyz] { display: inline-block; max-width: 170px; overflow: hidden; font-size: .62rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.key-origin[b-40gg5awyyz] { margin-left: 5px; padding: 2px 5px; color: #047857; background: #d1fae5; border-radius: 4px; font-size: .52rem; }.key-status-list small[b-40gg5awyyz] { display: block; margin-top: 3px; color: var(--muted); font-size: .55rem; line-height: 1.4; }.key-status-list p[b-40gg5awyyz] { margin: 4px 0 0; padding: 4px 5px; color: #b45309; background: #fffbeb; border-radius: 4px; font-size: .55rem; }.key-status-list article > button[b-40gg5awyyz] { width: 24px; height: 24px; padding: 0; color: var(--muted); background: transparent; border: 0; cursor: pointer; }.key-state[b-40gg5awyyz] { display: inline-flex; height: fit-content; padding: 3px 6px; align-items: center; gap: 4px; border-radius: 999px; font-size: .55rem; font-weight: 700; }.key-state i[b-40gg5awyyz] { width: 5px; height: 5px; border-radius: 50%; }.key-state.success[b-40gg5awyyz] { color: #047857; background: #d1fae5; }.key-state.danger[b-40gg5awyyz] { color: #b91c1c; background: #fee2e2; }.key-state.warning[b-40gg5awyyz] { color: #b45309; background: #fef3c7; }.key-state.neutral[b-40gg5awyyz] { color: #64748b; background: #e2e8f0; }
.audit-result[b-40gg5awyyz] { margin-top: 10px; padding: 9px; background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }.audit-result header > span[b-40gg5awyyz] { display: grid; gap: 2px; }.audit-result header b[b-40gg5awyyz] { font-size: .64rem; }.audit-result header small[b-40gg5awyyz] { color: var(--muted); font-size: .55rem; }.audit-result header em[b-40gg5awyyz] { padding: 3px 6px; border-radius: 999px; font-size: .55rem; font-style: normal; }.audit-result .danger[b-40gg5awyyz] { color: #b91c1c; }.audit-result header .danger[b-40gg5awyyz] { background: #fee2e2; }.audit-result .success[b-40gg5awyyz] { color: #047857; }.audit-result header .success[b-40gg5awyyz] { background: #d1fae5; }.score-summary[b-40gg5awyyz] { display: flex; margin-top: 8px; justify-content: space-between; color: var(--muted); font-size: .57rem; }.score-summary b[b-40gg5awyyz] { color: var(--ink); }.score-meter[b-40gg5awyyz] { background: var(--surface-soft); }.score-meter i[b-40gg5awyyz] { display: block; height: 100%; background: #10b981; }.score-meter i.danger[b-40gg5awyyz] { background: #ef4444; }.score-list[b-40gg5awyyz] { display: grid; max-height: 150px; margin-top: 8px; overflow-y: auto; gap: 4px; }.score-list div[b-40gg5awyyz] { display: grid; grid-template-columns: 1fr auto auto; gap: 7px; font-size: .55rem; }.score-list small[b-40gg5awyyz] { color: var(--muted); }

.group-picker[b-40gg5awyyz] { display: grid; gap: 9px; }.group-picker > div[b-40gg5awyyz] { display: grid; max-height: 330px; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow-y: auto; gap: 7px; }.group-picker label[b-40gg5awyyz] { display: flex; padding: 9px; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }.group-picker label > span[b-40gg5awyyz] { display: grid; gap: 2px; }.group-picker b[b-40gg5awyyz] { font-size: .66rem; }.group-picker small[b-40gg5awyyz] { color: var(--muted); font-size: .57rem; }.group-picker p[b-40gg5awyyz] { color: var(--muted); text-align: center; }.scope-block[b-40gg5awyyz] { display: grid; gap: 10px; }.scope-block > p[b-40gg5awyyz] { margin: -5px 0 0; }.full-field[b-40gg5awyyz] { display: grid; gap: 6px; }.full-field > span[b-40gg5awyyz] { display: flex; justify-content: space-between; }.full-field em[b-40gg5awyyz] { color: var(--muted); font-size: .58rem; font-style: normal; }
.switch-grid[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.switch-grid .setting-switch[b-40gg5awyyz] { padding: 13px; border: 1px solid var(--line); border-radius: 8px; }.switch-grid .span-two[b-40gg5awyyz] { grid-column: span 2; }.hash-panel header[b-40gg5awyyz], .hash-panel header > span[b-40gg5awyyz], .hash-panel > div[b-40gg5awyyz] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.hash-panel header > span[b-40gg5awyyz] { display: grid; align-items: initial; gap: 3px; }.hash-panel b[b-40gg5awyyz] { font-size: .68rem; }.hash-panel small[b-40gg5awyyz] { color: var(--muted); font-size: .59rem; }.hash-panel > div[b-40gg5awyyz] { margin-top: 10px; }.hash-panel input[b-40gg5awyyz] { flex: 1; }.danger-text[b-40gg5awyyz] { color: #b91c1c !important; }
.threshold-grid[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 9px; }.threshold-grid label[b-40gg5awyyz] { display: grid; align-content: start; padding: 11px; gap: 9px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; }.threshold-grid label > span[b-40gg5awyyz] { display: flex; justify-content: space-between; gap: 7px; }.threshold-grid b[b-40gg5awyyz] { overflow: hidden; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }.threshold-grid small[b-40gg5awyyz] { color: var(--muted); font-size: .55rem; }.threshold-grid label > div[b-40gg5awyyz] { position: relative; }.threshold-grid input[b-40gg5awyyz] { width: 100%; min-height: var(--form-control-height); padding: 7px 27px 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); font: inherit; font-size: .66rem; }.threshold-grid input:focus[b-40gg5awyyz] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }.threshold-grid em[b-40gg5awyyz] { position: absolute; top: 11px; right: 9px; color: var(--muted); font-size: .6rem; font-style: normal; }
.keyword-notice[b-40gg5awyyz] { display: flex; padding: 12px; align-items: flex-start; gap: 9px; border: 1px solid var(--line); border-radius: 8px; }.keyword-notice > span[b-40gg5awyyz] { display: grid; gap: 3px; }.keyword-notice b[b-40gg5awyyz] { font-size: .66rem; }.keyword-notice small[b-40gg5awyyz] { color: var(--muted); font-size: .58rem; }.keyword-notice.success[b-40gg5awyyz] { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }.keyword-notice.warning[b-40gg5awyyz] { color: #b45309; background: #fffbeb; border-color: #fde68a; }.keyword-notice.info[b-40gg5awyyz] { color: #0369a1; background: #f0f9ff; border-color: #bae6fd; }.cleanup-card[b-40gg5awyyz] { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: .68rem; }.cleanup-card span[b-40gg5awyyz] { display: grid; gap: 3px; }.cleanup-card small[b-40gg5awyyz] { font-size: .58rem; }

.detail-metrics[b-40gg5awyyz] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }.detail-metrics article[b-40gg5awyyz] { min-width: 0; padding: 11px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 7px; }.detail-metrics article.keyword[b-40gg5awyyz] { grid-column: span 2; color: #b91c1c; background: #fff1f2; border-color: #fecdd3; }.detail-metrics small[b-40gg5awyyz] { display: block; color: var(--muted); font-size: .57rem; }.detail-metrics b[b-40gg5awyyz] { display: block; margin-top: 4px; overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }.detail-content[b-40gg5awyyz] { margin-top: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 8px; }.detail-content header[b-40gg5awyyz], .detail-content header > span[b-40gg5awyyz] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.detail-content header > span[b-40gg5awyyz] { display: grid; align-items: initial; gap: 3px; }.detail-content header b[b-40gg5awyyz] { font-size: .68rem; }.detail-content header small[b-40gg5awyyz] { color: var(--muted); font-size: .58rem; }.detail-content header em[b-40gg5awyyz] { padding: 3px 7px; color: #0369a1; background: #e0f2fe; border-radius: 5px; font-size: .57rem; font-style: normal; }.detail-content pre[b-40gg5awyyz] { max-height: 420px; margin: 11px 0 0; padding: 13px; overflow: auto; color: #e2e8f0; background: #0f172a; border-radius: 7px; font-size: .66rem; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1180px) { .overview-grid[b-40gg5awyyz] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.runtime-split[b-40gg5awyyz], .worker-layout[b-40gg5awyyz] { grid-template-columns: 1fr; }.log-filters[b-40gg5awyyz] { grid-template-columns: repeat(3, minmax(0, 1fr)); }.api-key-layout[b-40gg5awyyz] { grid-template-columns: 1fr; }.api-key-health[b-40gg5awyyz] { max-height: none; }.threshold-grid[b-40gg5awyyz] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .risk-heading[b-40gg5awyyz], .card-title-row[b-40gg5awyyz], .section-intro[b-40gg5awyyz] { align-items: flex-start; flex-direction: column; }.risk-actions[b-40gg5awyyz], .card-title-actions[b-40gg5awyyz] { width: 100%; justify-content: flex-start; }.overview-grid[b-40gg5awyyz], .runtime-metrics[b-40gg5awyyz], .risk-form[b-40gg5awyyz], .mode-options[b-40gg5awyyz], .switch-grid[b-40gg5awyyz], .group-picker > div[b-40gg5awyyz], .detail-metrics[b-40gg5awyyz] { grid-template-columns: 1fr; }.worker-metrics[b-40gg5awyyz] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.log-filters[b-40gg5awyyz] { grid-template-columns: 1fr; }.api-key-panel > header[b-40gg5awyyz], .write-mode[b-40gg5awyyz], .hash-panel header[b-40gg5awyyz], .hash-panel > div[b-40gg5awyyz] { align-items: stretch; flex-direction: column; }.api-key-panel > header > div:last-child[b-40gg5awyyz] { justify-content: flex-start; }.switch-grid .span-two[b-40gg5awyyz], .detail-metrics article.keyword[b-40gg5awyyz] { grid-column: auto; }.threshold-grid[b-40gg5awyyz] { grid-template-columns: 1fr; }.model-filter-summary[b-40gg5awyyz] { flex-wrap: wrap; }.table-footer[b-40gg5awyyz] { align-items: flex-start; flex-direction: column; } }
/* /Pages/AdminSettings.razor.rz.scp.css */
.settings-page[b-subkqpq83y] {
    display: grid;
    gap: 18px;
    padding-bottom: 96px;
}

.settings-content[b-subkqpq83y] {
    display: grid;
    gap: 16px;
}

.settings-card[b-subkqpq83y] {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.settings-card > header[b-subkqpq83y] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.settings-card > header h2[b-subkqpq83y] {
    margin: 0;
    color: var(--text);
    font-size: .98rem;
}

.settings-card > header p[b-subkqpq83y],
.pending-card > p[b-subkqpq83y] {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.55;
}

.card-header-actions[b-subkqpq83y] {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 7px;
}

.settings-grid[b-subkqpq83y] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 17px 20px;
    padding: 20px;
}

.settings-card[b-subkqpq83y]  input:not([type="checkbox"]),
.settings-card[b-subkqpq83y]  select,
.settings-card[b-subkqpq83y]  textarea {
    width: 100%;
    min-height: 40px;
}

.settings-card[b-subkqpq83y]  textarea {
    resize: vertical;
}

.logo-upload-control[b-subkqpq83y] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.logo-preview-frame[b-subkqpq83y] {
    display: grid;
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: .72rem;
}

.logo-preview-frame img[b-subkqpq83y] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.logo-upload-actions[b-subkqpq83y] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.logo-upload-actions[b-subkqpq83y]  input[type="file"] {
    display: none;
}

.logo-upload-actions small[b-subkqpq83y] {
    flex-basis: 100%;
    color: var(--muted);
    font-size: .72rem;
}

.logo-upload-actions .disabled[b-subkqpq83y] {
    pointer-events: none;
    opacity: .6;
}

.empty-secret[b-subkqpq83y],
.secret-status[b-subkqpq83y],
.generated-secret[b-subkqpq83y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 20px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface-soft);
}

.secret-status > div[b-subkqpq83y] {
    display: flex;
    gap: 8px;
}

.secret-status code[b-subkqpq83y],
.generated-secret code[b-subkqpq83y] {
    overflow-wrap: anywhere;
    color: var(--text);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.generated-secret[b-subkqpq83y] {
    align-items: flex-start;
    border-color: rgba(35, 134, 98, .35);
    background: rgba(35, 134, 98, .08);
}

.generated-secret > div[b-subkqpq83y] {
    display: grid;
    gap: 7px;
}

.pending-card[b-subkqpq83y] {
    border-style: dashed;
}

.pending-card > p[b-subkqpq83y] {
    padding: 0 20px 20px;
}

/* 保存条改流式页脚（2026-11-10 用户反馈：sticky 悬浮条遮挡滚动中的表单内容）：
   回归普通文档流，落在各设置分区末尾，不再覆盖「编号格式说明」等字段。 */
.settings-savebar[b-subkqpq83y] {
    display: flex;
    margin-top: 16px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.settings-savebar > div[b-subkqpq83y] {
    display: grid;
    gap: 2px;
}

.settings-savebar b[b-subkqpq83y] {
    color: var(--text);
    font-size: .8rem;
}

.settings-savebar span[b-subkqpq83y] {
    color: var(--muted);
    font-size: .7rem;
}

/* ── 用户标签字典 / 模态字典共用的内嵌小表格 ─────────────────────── */
.modality-dictionary-table[b-subkqpq83y],
.accounts-data-table[b-subkqpq83y] {
    width: 100%;
    border-collapse: collapse;
    color: var(--text);
    font-size: .83rem;
}

.modality-dictionary-table th[b-subkqpq83y],
.modality-dictionary-table td[b-subkqpq83y],
.accounts-data-table th[b-subkqpq83y],
.accounts-data-table td[b-subkqpq83y] {
    padding: 7px 9px;
    text-align: left;
    border-bottom: 1px solid var(--line);
    vertical-align: middle;
}

.modality-dictionary-table th[b-subkqpq83y],
.accounts-data-table th[b-subkqpq83y] {
    color: var(--muted);
    background: var(--surface-muted);
    font-size: .76rem;
    font-weight: 700;
}

/* 颜色选择器贴齐表格行高（原生 color input 默认 49×27 偏大） */
input.user-tag-color[b-subkqpq83y] {
    width: 42px;
    height: 28px;
    padding: 2px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface);
    cursor: pointer;
}

/* 「新增标签 / 保存标签字典」行内操作按钮区 */
.inline-actions[b-subkqpq83y] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

@media (max-width: 820px) {
    .settings-grid[b-subkqpq83y] {
        grid-template-columns: 1fr;
    }

    .settings-card > header[b-subkqpq83y],
    .settings-savebar[b-subkqpq83y],
    .empty-secret[b-subkqpq83y],
    .secret-status[b-subkqpq83y],
    .generated-secret[b-subkqpq83y] {
        align-items: stretch;
        flex-direction: column;
    }

    .logo-upload-control[b-subkqpq83y] { align-items: flex-start; }

    .card-header-actions[b-subkqpq83y],
    .card-header-actions .button[b-subkqpq83y] {
        width: 100%;
    }

    .secret-status > div[b-subkqpq83y],
    .settings-savebar .button[b-subkqpq83y],
    .generated-secret .button[b-subkqpq83y] {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .settings-page[b-subkqpq83y] {
        gap: 14px;
    }

    .settings-card > header[b-subkqpq83y],
    .settings-grid[b-subkqpq83y] {
        padding: 15px;
    }
}
/* /Pages/AdminSystemLogs.razor.rz.scp.css */
/* M3 边界收敛（2026-10-18）：系统日志页 scoped 样式，规则由 AdminOps.razor.css
   同名选择器 verbatim 迁入，无新增颜色/字号/间距，取值均来自既有令牌与原量。 */

.ops-dashboard[b-iqbhvoac32] {
    display: grid;
    gap: 18px;
    padding-bottom: 42px;
    color: var(--ink);
}

.ops-title-block h2[b-iqbhvoac32] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--ink);
    font-size: 1.05rem;
    font-weight: 800;
}

.ops-title-block h2 :deep(svg)[b-iqbhvoac32] { color: #3b82f6; }

.ops-ready-line[b-iqbhvoac32] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    color: var(--muted);
    font-size: .7rem;
}

/* 日志页接手 ops-dashboard 骨架：卡片壳由本类承接（AdminOps 同名规则迁入）。 */
.ops-card[b-iqbhvoac32] {
    min-width: 0;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: var(--shadow-sm);
}

.card-header[b-iqbhvoac32] { display: flex; min-height: 56px; padding: 14px 16px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.card-header h3[b-iqbhvoac32] { margin: 0; color: var(--ink); font-size: .78rem; font-weight: 750; }
.card-header p[b-iqbhvoac32] { margin: 3px 0 0; color: var(--muted); font-size: .62rem; }

.text-button[b-iqbhvoac32],
.danger-link[b-iqbhvoac32] { padding: 0; color: #2563eb; background: transparent; border: 0; font-size: .66rem; font-weight: 700; cursor: pointer; }
.danger-link[b-iqbhvoac32] { color: #dc2626 !important; }

/* .primary-button/.secondary-button 本地定义已删（2026-10-21 统一）：收敛到 app.css 全局定义
   （值对齐 .button = 上游管理基准），弹窗按钮与全站管理页一致。 */

.success[b-iqbhvoac32] { color: #059669 !important; }
.warning[b-iqbhvoac32] { color: #d97706 !important; }
.danger[b-iqbhvoac32] { color: #dc2626 !important; }
.info[b-iqbhvoac32] { color: #2563eb !important; }
.muted[b-iqbhvoac32] { color: #64748b !important; }

/* 弹窗内错误提示与确认框说明（AppModal 内容延伸），与 AdminOps 同名规则一致。 */
.inline-alert[b-iqbhvoac32] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #fecaca; border-radius: 7px; color: #b91c1c; font-size: .74rem; background: #fef2f2; }

.log-health-badges[b-iqbhvoac32] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.log-health-badges span[b-iqbhvoac32] { padding: 3px 7px; color: #475569; background: #f1f5f9; border-radius: 99px; font-size: .58rem; font-weight: 700; }
.log-health-badges .warning[b-iqbhvoac32] { color: #b45309; background: #fef3c7; }
.log-health-badges .danger[b-iqbhvoac32] { color: #b91c1c; background: #fee2e2; }

.system-log-tools[b-iqbhvoac32] { display: flex; padding: 10px 16px; align-items: center; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--line); }
.system-log-tools > span[b-iqbhvoac32] { margin-left: auto; font-size: .65rem; }

/* 统一时间范围组件（2026-10-19）：日志卡放开裁剪，筛选区 QuickDateRange 下探菜单不被卡片边界截断；
   卡内表格与卡片同底色，去 hidden 无圆角穿孔。 */
.system-log-card[b-iqbhvoac32] { overflow: visible; }

.system-log-filters[b-iqbhvoac32] { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 9px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
/* 2026-11-02 全站行式：筛选字段 label 左/控件右（与 app.css 页面级行式模板同款）。 */
.system-log-filters label[b-iqbhvoac32] { display: grid; grid-template-columns: minmax(72px, 96px) minmax(0, 1fr); align-items: center; column-gap: 6px; color: #52605a; font-size: .61rem; font-weight: 700; }
.system-log-filters label > span[b-iqbhvoac32] { min-height: 14px; }
.system-log-filters input[b-iqbhvoac32],
.system-log-filters select[b-iqbhvoac32] { width: 100%; min-height: 36px; }
/* 时间范围控件（QuickDateRange）与同排 DxSelectField/输入框同宽同高、label 同字号（2026-10-21 风格统一）。 */
.system-log-filters .quick-date-range[b-iqbhvoac32] { display: grid; grid-template-columns: minmax(72px, 96px) minmax(0, 1fr); align-items: center; column-gap: 6px; }
.system-log-filters .quick-date-label[b-iqbhvoac32] { color: #52605a; font-size: .61rem; font-weight: 700; }
.system-log-filters .quick-date-select[b-iqbhvoac32] { width: 100%; min-height: 36px; }
.system-log-actions[b-iqbhvoac32] { display: flex; padding: 9px 16px; align-items: center; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--line); }

.ops-pagination[b-iqbhvoac32] { display: flex; min-height: 48px; padding: 8px 14px; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .65rem; }
.ops-pagination > div[b-iqbhvoac32] { display: flex; align-items: center; gap: 8px; }
.ops-pagination button[b-iqbhvoac32],
.ops-pagination select[b-iqbhvoac32] { min-height: 28px; padding: 4px 9px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 5px; font-size: .62rem; }
.ops-pagination button:disabled[b-iqbhvoac32] { opacity: .45; }

.table-scroll[b-iqbhvoac32] { overflow: auto; }
.ops-table[b-iqbhvoac32] { width: 100%; border-collapse: collapse; font-size: .68rem; }
.ops-table th[b-iqbhvoac32] { padding: 9px 12px; color: #66736d; text-align: left; background: #f7f9f8; border-bottom: 1px solid var(--line); font-size: .64rem; font-weight: 750; }
.ops-table td[b-iqbhvoac32] { max-width: 360px; padding: 10px 12px; vertical-align: top; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.ops-table td > b[b-iqbhvoac32],
.ops-table td > small[b-iqbhvoac32] { display: block; }
.ops-table td > small[b-iqbhvoac32] { margin-top: 2px; color: var(--muted); }
.ops-table code[b-iqbhvoac32] { padding: 2px 4px; color: #475569; background: #f1f5f9; border-radius: 3px; font-size: .63rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.empty-cell[b-iqbhvoac32] { padding: 32px !important; color: var(--muted); text-align: center !important; }
.log-message[b-iqbhvoac32] { min-width: 260px; white-space: pre-wrap; word-break: break-word; }

.level-badge[b-iqbhvoac32] { display: inline-flex; padding: 2px 6px; align-items: center; color: #2563eb; background: #eff6ff; border-radius: 99px; font-size: .58rem; font-weight: 800; }
.level-badge.success[b-iqbhvoac32] { color: #047857 !important; background: #d1fae5; }
.level-badge.warning[b-iqbhvoac32] { color: #b45309 !important; background: #fef3c7; }
.level-badge.danger[b-iqbhvoac32] { color: #b91c1c !important; background: #fee2e2; }
.level-badge.muted[b-iqbhvoac32] { color: #475569 !important; background: #e2e8f0; }

.form-grid[b-iqbhvoac32] { display: grid; gap: 13px; }
.form-grid.two[b-iqbhvoac32] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid label[b-iqbhvoac32] { display: grid; align-content: start; gap: 5px; color: #45514c; font-size: .69rem; font-weight: 650; }
.form-grid input[b-iqbhvoac32],
.form-grid select[b-iqbhvoac32],
.form-grid textarea[b-iqbhvoac32] { width: 100%; }
.form-grid input:not([type="checkbox"])[b-iqbhvoac32],
.form-grid select[b-iqbhvoac32],
.form-grid textarea[b-iqbhvoac32] { min-height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }
.form-grid input:not([type="checkbox"]):focus[b-iqbhvoac32],
.form-grid select:focus[b-iqbhvoac32],
.form-grid textarea:focus[b-iqbhvoac32] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.form-grid .span-two[b-iqbhvoac32] { grid-column: 1 / -1; }
.form-grid .check-field[b-iqbhvoac32] { display: flex; min-height: 34px; padding: 6px 9px; align-items: center; gap: 8px; background: #f7f9f8; border-radius: 6px; }
.form-grid .check-field input[b-iqbhvoac32] { width: 15px; min-height: auto; }

.footer-spacer[b-iqbhvoac32] { flex: 1; }

:deep(.modal-footer)[b-iqbhvoac32] { display: flex; align-items: center; gap: 8px; }

/* 与 AdminOps 同口径的响应式降级。 */
@media (max-width: 1280px) {
    .system-log-filters[b-iqbhvoac32] { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
}

@media (max-width: 920px) {
    .system-log-filters[b-iqbhvoac32] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .log-health-badges[b-iqbhvoac32] { justify-content: flex-start; }
    .card-header[b-iqbhvoac32] { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .form-grid.two[b-iqbhvoac32] { grid-template-columns: 1fr; }
    .form-grid .span-two[b-iqbhvoac32] { grid-column: auto; }
    .system-log-filters[b-iqbhvoac32] { grid-template-columns: 1fr; }
}
/* /Pages/AdminTrainingData.razor.rz.scp.css */
.training-data-page[b-8vqjb29zfk] { display: grid; width: 100%; margin: 0 auto; padding-bottom: 42px; gap: 18px; color: var(--ink); }
.training-heading[b-8vqjb29zfk], .training-card-header[b-8vqjb29zfk] { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.training-heading h1[b-8vqjb29zfk] { margin: 0; font-size: 1.38rem; font-weight: 800; }
.training-heading p[b-8vqjb29zfk], .training-card-header p[b-8vqjb29zfk] { margin: 4px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.training-card[b-8vqjb29zfk] { min-width: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
.training-card-header[b-8vqjb29zfk] { padding: 15px 17px; border-bottom: 1px solid var(--line); }
.training-card-header h2[b-8vqjb29zfk] { margin: 0; font-size: .92rem; font-weight: 800; }
.soft-pill[b-8vqjb29zfk] { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; color: #047857; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 999px; font-size: .62rem; font-weight: 750; }
/* 豁免 .training-card 的 overflow:hidden：筛选卡内 QuickDateRange 下拉菜单会被裁到只剩白边（2026-10-19）。 */
.training-filter-card[b-8vqjb29zfk] { padding: 16px 17px; overflow: visible; }
.training-filter-card .compact-toolbar[b-8vqjb29zfk] { margin: 0; }

.training-preview[b-8vqjb29zfk] {
    max-width: 360px;
    max-height: 92px;
    margin: 0;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font: inherit;
    color: var(--text-secondary);
}

.compact-toolbar[b-8vqjb29zfk] { display: grid; grid-template-columns: repeat(3, minmax(100px, 1fr)) repeat(2, minmax(190px, 1.3fr)) auto; gap: 8px; align-items: end; }

.compact-toolbar label[b-8vqjb29zfk] { display: grid; min-width: 0; gap: 6px; }

.compact-toolbar label span[b-8vqjb29zfk] {
    display: block;
    margin-bottom: 5px;
    color: var(--text-secondary);
    font-size: 12px;
}

.compact-toolbar select[b-8vqjb29zfk], .compact-toolbar input[b-8vqjb29zfk] { box-sizing: border-box; width: 100%; min-height: 35px; padding: 6px 9px; color: var(--ink); background: var(--surface); border: 1px solid #cad3ce; border-radius: 6px; font: inherit; font-size: .69rem; }
.compact-toolbar .button[b-8vqjb29zfk] { min-height: 35px; }
/* 筛选区输入统一 36px（与 DevExpress 编辑器/全站口径一致，35px 是历史值）。 */
.compact-toolbar select[b-8vqjb29zfk], .compact-toolbar input[b-8vqjb29zfk], .compact-toolbar .button[b-8vqjb29zfk] { min-height: 36px; }

@media (max-width: 760px) {
    .training-heading[b-8vqjb29zfk] { align-items: flex-start; flex-direction: column; }
}

.original-content-notice[b-8vqjb29zfk] {
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    color: var(--text-secondary);
    background: var(--surface-muted);
}

.original-content-grid[b-8vqjb29zfk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.original-content-grid .full[b-8vqjb29zfk] { grid-column: 1 / -1; }
.original-content-grid h3[b-8vqjb29zfk] { margin: 0 0 8px; font-size: 14px; }
.training-original[b-8vqjb29zfk] { max-height: 360px; overflow: auto; white-space: pre-wrap; word-break: break-word; }

@media (max-width: 800px) {
    .original-content-grid[b-8vqjb29zfk] { grid-template-columns: 1fr; }
    .original-content-grid .full[b-8vqjb29zfk] { grid-column: auto; }
}

@media (max-width: 1180px) { .compact-toolbar[b-8vqjb29zfk] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .compact-toolbar[b-8vqjb29zfk] { grid-template-columns: 1fr; } }
/* /Pages/AdminTrainingExport.razor.rz.scp.css */
.training-export-page[b-ajbm73ytlu] { display: grid; width: 100%; margin: 0 auto; padding-bottom: 42px; gap: 18px; color: var(--ink); }
.training-heading[b-ajbm73ytlu], .training-card-header[b-ajbm73ytlu], .export-form[b-ajbm73ytlu], .export-info-grid article[b-ajbm73ytlu] { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.training-heading h1[b-ajbm73ytlu] { margin: 0; font-size: 1.38rem; font-weight: 800; }
.training-heading p[b-ajbm73ytlu], .training-card-header p[b-ajbm73ytlu], .export-info-grid p[b-ajbm73ytlu] { margin: 4px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.training-card[b-ajbm73ytlu] { min-width: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm); }
/* 豁免：导出卡内 QuickDateRange 下拉菜单绝对定位于卡内，overflow:hidden 会把它裁到只剩白边（2026-10-19）。 */
.export-card[b-ajbm73ytlu] { overflow: visible; }
.training-card-header[b-ajbm73ytlu] { padding: 15px 17px; border-bottom: 1px solid var(--line); }
.training-card-header h2[b-ajbm73ytlu] { margin: 0; font-size: .92rem; font-weight: 800; }
.soft-pill[b-ajbm73ytlu] { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; color: #047857; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 999px; font-size: .62rem; font-weight: 750; }
.export-form[b-ajbm73ytlu] { display: grid; grid-template-columns: minmax(220px, 1.35fr) repeat(2, minmax(190px, 1fr)) auto; align-items: end; padding: 22px 17px 24px; gap: 12px; }
.export-form label[b-ajbm73ytlu] { display: grid; min-width: 0; gap: 6px; }
.export-form label > span[b-ajbm73ytlu] { font-size: .68rem; font-weight: 750; }
.export-form input[b-ajbm73ytlu] { width: 100%; min-height: var(--form-control-height); padding: 8px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); font: inherit; font-size: .72rem; }
.export-form input:focus[b-ajbm73ytlu] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.export-form .button[b-ajbm73ytlu] { align-self: end; min-height: var(--form-control-height); flex: 0 0 auto; text-decoration: none; }
.export-info-grid[b-ajbm73ytlu] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 15px 17px; gap: 12px; }
.export-info-grid article[b-ajbm73ytlu] { justify-content: flex-start; align-items: flex-start; min-width: 0; padding: 12px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; }
.export-info-grid strong[b-ajbm73ytlu] { font-size: .72rem; }
.export-info-grid p[b-ajbm73ytlu] { font-size: .65rem; }
.export-icon[b-ajbm73ytlu] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 8px; }
.export-icon.green[b-ajbm73ytlu] { color: #047857; background: #d1fae5; }.export-icon.blue[b-ajbm73ytlu] { color: #1d4ed8; background: #dbeafe; }.export-icon.purple[b-ajbm73ytlu] { color: #7e22ce; background: #f3e8ff; }
@media (max-width: 1180px) { .export-form[b-ajbm73ytlu] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.export-form .button[b-ajbm73ytlu] { width: fit-content; } }
@media (max-width: 760px) { .export-form[b-ajbm73ytlu] { grid-template-columns: 1fr; align-items: stretch; }.export-form label[b-ajbm73ytlu] { width: 100%; }.export-form .button[b-ajbm73ytlu] { width: 100%; justify-content: center; }.export-info-grid[b-ajbm73ytlu] { grid-template-columns: 1fr; } }
/* /Pages/AdminUserAttributes.razor.rz.scp.css */
.attribute-values-row[b-5j6c5n937u] {
    display: grid;
    grid-template-columns: minmax(240px, 1.35fr) repeat(2, minmax(190px, 1fr)) auto;
    align-items: start;
    gap: 15px;
    padding: 18px 20px 16px;
}

.attribute-values-row > .form-field[b-5j6c5n937u] {
    min-width: 0;
    margin-bottom: 0;
}

.attribute-save-field[b-5j6c5n937u] {
    display: flex;
    align-self: start;
    padding-top: 20px;
}

.attribute-save-field .button[b-5j6c5n937u] {
    white-space: nowrap;
}

.attribute-values-loading[b-5j6c5n937u],
.attribute-values-empty[b-5j6c5n937u] {
    display: flex;
    min-width: 0;
    min-height: var(--form-control-height);
    align-items: center;
}

.attribute-values-loading[b-5j6c5n937u],
.attribute-values-empty[b-5j6c5n937u] {
    grid-column: 2 / -1;
}

@media (max-width: 780px) {
    .attribute-values-row[b-5j6c5n937u] {
        grid-template-columns: 1fr;
    }

    .attribute-values-row > .form-field[b-5j6c5n937u],
    .attribute-values-loading[b-5j6c5n937u],
    .attribute-values-empty[b-5j6c5n937u] {
        grid-column: auto;
    }

    .attribute-save-field[b-5j6c5n937u] {
        width: 100%;
        padding-top: 0;
    }
}
/* /Pages/AdminWorkDistribution.razor.rz.scp.css */
/* 2026-10-23 布局对齐上游管理：容器回归全宽（去掉 1540px 居中，与其他管理页同口径）。
   2026-10-22 晚间用户裁决再对齐：四张主卡圆角 6px → 10px——以上游管理主壳
   （accounts-toolbar / model-sequence-toolbar 10px 顶角）为观感基准；摘要小卡保持
   6px（与模型监控 KPI 卡同级小卡基准），边框/阴影仍走 --surface/--line/--shadow-sm。 */
.work-distribution-page[b-l91bsufvi3] { display:grid; width:100%; padding-bottom:40px; gap:16px; color:var(--ink); }
.analysis-toolbar[b-l91bsufvi3],.distribution-section[b-l91bsufvi3],.department-distribution-section[b-l91bsufvi3],.people-distribution-section[b-l91bsufvi3] { min-width:0; background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-sm); }
/* wrap：窄视口下 filter-grid 内容超出可用宽度时，动作按钮组
   换到下一行而不是叠在筛选控件上（原覆盖会误触重置/应用按钮）。 */
.analysis-toolbar[b-l91bsufvi3] { display:flex; flex-wrap:wrap; padding:12px 14px; align-items:center; justify-content:flex-start; gap:14px; }
/* 2026-10-23 布局修复：对齐 admin-usage-filter-grid 2026-10-21 定稿——label 左置/控件右置、
   单行 flex 排布、控件定宽；替换原竖排 label + minmax(320px,1fr) 两列栅格
   （时间范围列 700px 内只有 190px 触发按钮，右半空白；两列控件高度 36/40 参差、label 错位）。 */
.filter-grid[b-l91bsufvi3] { display:flex; min-width:0; flex:1; flex-wrap:wrap; align-items:center; gap:10px 18px; }
.filter-grid .filter-field[b-l91bsufvi3] { display:flex; min-width:0; align-items:center; gap:8px; }
.filter-grid .filter-field label[b-l91bsufvi3] { color:var(--muted); font-size:.68rem; font-weight:700; white-space:nowrap; flex:0 0 auto; }
.filter-grid .dxbl-combo-box[b-l91bsufvi3] { width:200px; min-width:0; }
.filter-grid .quick-date-range[b-l91bsufvi3] { font-size:.75rem; }
/* 工具栏统计口径控件已随 2026-10-23 精简退役（矩形树图右上角口径切换是唯一入口）。 */
.toolbar-actions[b-l91bsufvi3] { display:flex; flex:0 0 auto; gap:8px; }
.collection-notice[b-l91bsufvi3] { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; color:color-mix(in srgb,var(--ink) 72%,#d97706 28%); background:color-mix(in srgb,var(--surface) 86%,#facc15 14%); border:1px solid color-mix(in srgb,var(--line) 58%,#eab308 42%); border-radius:7px; }.collection-notice>div[b-l91bsufvi3] { display:grid; gap:3px; }.collection-notice strong[b-l91bsufvi3] { font-size:.76rem; }.collection-notice span[b-l91bsufvi3] { font-size:.68rem; line-height:1.55; }
.summary-grid[b-l91bsufvi3] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.summary-grid article[b-l91bsufvi3] { display:flex; min-width:0; min-height:88px; padding:14px; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--line); border-radius:6px; }.summary-icon[b-l91bsufvi3] { display:grid; width:38px; height:38px; flex:0 0 auto; place-items:center; color:#475569; background:#f1f5f9; border-radius:7px; }.summary-icon.success[b-l91bsufvi3] { color:color-mix(in srgb,var(--ink) 32%,#10b981 68%); background:color-mix(in srgb,var(--surface) 84%,#10b981 16%); }.summary-icon.blue[b-l91bsufvi3] { color:color-mix(in srgb,var(--ink) 30%,#0ea5e9 70%); background:color-mix(in srgb,var(--surface) 84%,#0ea5e9 16%); }.summary-icon.amber[b-l91bsufvi3] { color:color-mix(in srgb,var(--ink) 34%,#f59e0b 66%); background:color-mix(in srgb,var(--surface) 84%,#f59e0b 16%); }.summary-grid article>div[b-l91bsufvi3] { display:grid; min-width:0; gap:2px; }.summary-grid small[b-l91bsufvi3],.summary-grid span[b-l91bsufvi3],.quality-strip small[b-l91bsufvi3] { color:var(--muted); font-size:.65rem; }.summary-grid strong[b-l91bsufvi3] { overflow:hidden; font-size:1.14rem; text-overflow:ellipsis; white-space:nowrap; }
.quality-strip[b-l91bsufvi3] { display:grid; padding:11px 14px; grid-template-columns:repeat(4,minmax(0,1fr)); color:var(--muted); background:var(--surface-soft); border:1px solid var(--line); border-radius:6px; }.quality-strip>div[b-l91bsufvi3] { display:flex; min-width:0; align-items:flex-start; gap:9px; }.quality-strip span[b-l91bsufvi3] { display:grid; gap:3px; }.quality-strip strong[b-l91bsufvi3] { color:var(--ink); font-size:.69rem; }.quality-strip small[b-l91bsufvi3] { line-height:1.45; }
.analysis-tabs[b-l91bsufvi3] { display:flex; width:fit-content; padding:3px; background:var(--surface-soft); border:1px solid var(--line); border-radius:7px; gap:2px; }.analysis-tabs button[b-l91bsufvi3] { min-width:98px; min-height:34px; padding:6px 12px; color:var(--muted); background:transparent; border:0; border-radius:5px; font-size:.72rem; font-weight:700; cursor:pointer; }.analysis-tabs button.active[b-l91bsufvi3] { color:var(--ink); background:var(--surface); box-shadow:0 1px 3px rgb(15 23 42 / 10%); }
.distribution-section>header[b-l91bsufvi3],.department-distribution-section>header[b-l91bsufvi3],.people-distribution-section>header[b-l91bsufvi3] { display:flex; padding:15px 17px; align-items:flex-start; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); }.distribution-section h2[b-l91bsufvi3],.department-distribution-section h2[b-l91bsufvi3],.people-distribution-section h2[b-l91bsufvi3] { margin:0; font-size:.94rem; }.distribution-section header p[b-l91bsufvi3],.department-distribution-section header p[b-l91bsufvi3],.people-distribution-section header p[b-l91bsufvi3] { margin:4px 0 0; color:var(--muted); font-size:.68rem; line-height:1.45; }.department-distribution-section>header>span[b-l91bsufvi3],.people-distribution-section>header>span[b-l91bsufvi3] { color:var(--muted); font-size:.68rem; }.data-status[b-l91bsufvi3] { display:inline-flex; width:fit-content; padding:3px 8px; border-radius:999px; font-size:.64rem; font-weight:750; white-space:nowrap; }.data-status.success[b-l91bsufvi3] { color:color-mix(in srgb,var(--ink) 32%,#10b981 68%); background:color-mix(in srgb,var(--surface) 80%,#10b981 20%); }.data-status.warning[b-l91bsufvi3] { color:color-mix(in srgb,var(--ink) 34%,#f59e0b 66%); background:color-mix(in srgb,var(--surface) 80%,#f59e0b 20%); }
.overall-distribution[b-l91bsufvi3] { display:grid; padding:20px 18px 12px; grid-template-columns:minmax(150px,220px) minmax(0,1fr); align-items:center; gap:16px; }.bar-label[b-l91bsufvi3],.person-heading[b-l91bsufvi3] { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:10px; }.bar-label strong[b-l91bsufvi3],.person-heading strong[b-l91bsufvi3] { overflow:hidden; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }.bar-label span[b-l91bsufvi3],.person-heading small[b-l91bsufvi3] { color:var(--muted); font-size:.63rem; }.stacked-bar[b-l91bsufvi3] { display:flex; width:100%; height:15px; overflow:hidden; background:var(--surface-soft); border-radius:4px; }.stacked-bar.large[b-l91bsufvi3] { height:24px; }.bar-segment[b-l91bsufvi3] { display:flex; min-width:1px; height:100%; align-items:center; justify-content:center; transition:opacity .15s ease; }.bar-segment:hover[b-l91bsufvi3] { opacity:.86; }.bar-segment b[b-l91bsufvi3] { overflow:hidden; color:#fff; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }.category-legend[b-l91bsufvi3] { display:flex; padding:4px 18px 18px; flex-wrap:wrap; gap:9px 16px; }.category-legend span[b-l91bsufvi3] { display:grid; grid-template-columns:8px auto; align-items:center; column-gap:6px; }.category-legend i[b-l91bsufvi3] { width:8px; height:8px; border-radius:2px; }.category-legend b[b-l91bsufvi3] { font-size:.66rem; }.category-legend small[b-l91bsufvi3] { grid-column:2; color:var(--muted); font-size:.6rem; }
.person-bars[b-l91bsufvi3] { display:grid; padding:8px 18px 18px; }.person-bars article[b-l91bsufvi3] { display:grid; padding:11px 0; grid-template-columns:minmax(260px,34%) minmax(0,1fr); align-items:center; gap:16px; border-bottom:1px solid var(--line); cursor:pointer; }.person-bars article:last-child[b-l91bsufvi3] { border-bottom:0; }.person-heading>span[b-l91bsufvi3] { display:grid; min-width:0; gap:2px; }.person-heading>span:first-child[b-l91bsufvi3] { flex:1 1 auto; overflow:hidden; }.person-heading>span:last-child[b-l91bsufvi3] { max-width:48%; flex:0 0 auto; text-align:right; }.person-heading b[b-l91bsufvi3] { font-size:.68rem; }.missing-bar[b-l91bsufvi3] { padding:7px 10px; color:var(--muted); background:var(--surface-soft); border-radius:5px; font-size:.64rem; }.person-bars article.is-selected[b-l91bsufvi3] { outline:2px solid var(--accent-color,#2563eb); outline-offset:2px; border-radius:4px; }
.work-sample-backdrop[b-l91bsufvi3] { position:fixed; inset:0; z-index:1000; background:rgb(15 23 42 / 38%); animation:work-sample-fade-in-b-l91bsufvi3 160ms ease-out; }.work-sample-drawer[b-l91bsufvi3] { position:fixed; inset:0 0 0 auto; z-index:1001; display:flex; flex-direction:column; width:min(78vw,1180px); min-width:620px; background:var(--surface,#fff); border-left:1px solid var(--line,#e2e8f0); box-shadow:-16px 0 40px rgb(15 23 42 / 18%); animation:work-sample-slide-in-b-l91bsufvi3 220ms cubic-bezier(.22,1,.36,1); }.work-sample-drawer-header[b-l91bsufvi3] { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 28px 18px; border-bottom:1px solid var(--line,#e2e8f0); background:var(--surface,#fff); }.work-sample-drawer-header h2[b-l91bsufvi3] { margin:3px 0 0; font-size:1.15rem; }.work-sample-drawer-header p[b-l91bsufvi3] { margin:6px 0 0; color:var(--text-muted); font-size:.85rem; }.work-sample-eyebrow[b-l91bsufvi3] { color:var(--accent-color,#2563eb); font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.work-sample-close[b-l91bsufvi3] { flex:0 0 auto; white-space:nowrap; }.work-sample-drawer-body[b-l91bsufvi3] { min-height:0; flex:1; overflow:auto; padding:22px 28px 30px; }.work-sample-drawer-body .data-table[b-l91bsufvi3] { min-width:980px; }.work-sample-content[b-l91bsufvi3] { max-width:520px; max-height:180px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; margin:0; font:inherit; color:inherit; }.work-sample-pagination[b-l91bsufvi3] { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:14px; }
@keyframes work-sample-fade-in-b-l91bsufvi3 { from { opacity:0; } to { opacity:1; } } @keyframes work-sample-slide-in-b-l91bsufvi3 { from { transform:translateX(100%); } to { transform:translateX(0); } } @media (prefers-reduced-motion:reduce) { .work-sample-backdrop[b-l91bsufvi3],.work-sample-drawer[b-l91bsufvi3] { animation:none; } }
@media (max-width:1280px) { .analysis-toolbar[b-l91bsufvi3] { align-items:stretch; flex-direction:column; }.quality-strip[b-l91bsufvi3] { grid-template-columns:repeat(2,minmax(0,1fr)); }.toolbar-actions[b-l91bsufvi3] { justify-content:flex-end; } }
@media (max-width:900px) { .summary-grid[b-l91bsufvi3] { grid-template-columns:repeat(2,minmax(0,1fr)); }.quality-strip[b-l91bsufvi3] { grid-template-columns:1fr; }.person-bars article[b-l91bsufvi3] { grid-template-columns:1fr; gap:8px; } }
@media (max-width:680px) { .toolbar-actions[b-l91bsufvi3] { display:grid; grid-template-columns:1fr 1fr; }.toolbar-actions .button[b-l91bsufvi3] { justify-content:center; }.summary-grid[b-l91bsufvi3] { grid-template-columns:1fr; }.analysis-tabs[b-l91bsufvi3] { width:100%; }.analysis-tabs button[b-l91bsufvi3] { min-width:0; flex:1; padding-inline:6px; }.distribution-section>header[b-l91bsufvi3],.department-distribution-section>header[b-l91bsufvi3],.people-distribution-section>header[b-l91bsufvi3] { align-items:stretch; flex-direction:column; }.overall-distribution[b-l91bsufvi3] { grid-template-columns:1fr; gap:8px; }.bar-label[b-l91bsufvi3] { align-items:flex-start; flex-direction:column; gap:2px; }.work-sample-drawer[b-l91bsufvi3] { width:100vw; min-width:0; }.work-sample-drawer-header[b-l91bsufvi3] { padding:20px 18px 16px; }.work-sample-drawer-body[b-l91bsufvi3] { padding:18px 18px 24px; } }

.category-legend-item[b-l91bsufvi3] { display:grid; padding:3px 5px; grid-template-columns:8px auto; align-items:center; column-gap:6px; color:inherit; background:transparent; border:1px solid transparent; border-radius:5px; font:inherit; text-align:left; cursor:pointer; }
.category-legend-item:hover[b-l91bsufvi3],.category-legend-item:focus-visible[b-l91bsufvi3] { background:var(--surface-soft); border-color:var(--line-strong,#cbd5e1); outline:none; }
.category-legend-item.is-selected[b-l91bsufvi3] { background:var(--surface-soft); border-color:var(--accent-color,#2563eb); }
.category-legend-item i[b-l91bsufvi3] { width:8px; height:8px; border-radius:2px; }
.category-legend-item b[b-l91bsufvi3] { font-size:.66rem; }
.category-legend-item small[b-l91bsufvi3] { grid-column:2; color:var(--muted); font-size:.6rem; }
.work-sample-drawer-body .data-table[b-l91bsufvi3] { min-width:1320px; }
.work-sample-content[b-l91bsufvi3] { max-width:420px; }

/* ===== 类别占比矩形树图（对齐 OpenRouter rankings/task-spend） ===== */
.treemap-metric-picker[b-l91bsufvi3] { position:relative; flex:0 0 auto; }
.treemap-metric-trigger[b-l91bsufvi3] { display:inline-flex; min-height:34px; padding:7px 12px; align-items:center; gap:7px; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong,#cbd5e1); border-radius:7px; font:inherit; font-size:.7rem; font-weight:700; cursor:pointer; }
.treemap-metric-trigger:hover[b-l91bsufvi3] { background:var(--surface-soft); }
.treemap-metric-menu[b-l91bsufvi3] { position:absolute; top:calc(100% + 6px); right:0; z-index:40; display:grid; min-width:220px; padding:5px; background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:var(--popover-shadow); }
.treemap-metric-menu button[b-l91bsufvi3] { display:flex; padding:8px 10px; align-items:center; justify-content:space-between; color:var(--ink); background:transparent; border:0; border-radius:6px; font:inherit; font-size:.7rem; text-align:left; cursor:pointer; }
.treemap-metric-menu button:hover[b-l91bsufvi3] { background:var(--surface-soft); }
.treemap-metric-menu button.active[b-l91bsufvi3] { color:var(--accent-color,#2563eb); font-weight:750; }
.treemap-canvas[b-l91bsufvi3] { position:relative; display:block; width:calc(100% - 36px); height:380px; margin:16px 18px 0; overflow:hidden; background:var(--surface-soft); border-radius:6px; }
.treemap-tile[b-l91bsufvi3] { position:absolute; display:flex; overflow:hidden; padding:9px 11px; flex-direction:column; align-items:flex-start; gap:3px; color:#fff; background:var(--surface-muted); border:1px solid rgb(255 255 255 / 40%); border-radius:4px; font:inherit; text-align:left; transition:filter .15s ease, box-shadow .15s ease; }
.treemap-tile:hover:not(:disabled)[b-l91bsufvi3] { z-index:2; filter:brightness(1.07); outline:2px solid rgb(255 255 255 / 85%); outline-offset:-1px; box-shadow:0 6px 18px rgb(15 23 42 / 22%); }
.treemap-tile:disabled[b-l91bsufvi3] { cursor:default; }
.treemap-tile.is-selected[b-l91bsufvi3] { z-index:1; outline:2px solid var(--accent-color,#2563eb); outline-offset:-1px; }
.treemap-tile-label[b-l91bsufvi3] { overflow:hidden; max-width:100%; font-size:.8rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.treemap-share[b-l91bsufvi3] { font-size:.66rem; font-weight:700; opacity:.92; }
.treemap-people[b-l91bsufvi3] { display:flex; margin-bottom:2px; }
.treemap-people i[b-l91bsufvi3] { display:grid; width:20px; height:20px; place-items:center; margin-right:-6px; color:#fff; background:rgb(255 255 255 / 26%); border:1.5px solid rgb(255 255 255 / 80%); border-radius:50%; font-size:.53rem; font-style:normal; font-weight:750; letter-spacing:.02em; }
.treemap-people i:last-child[b-l91bsufvi3] { margin-right:0; }
.treemap-legend[b-l91bsufvi3] { padding-top:14px; }
.treemap-legend span b[b-l91bsufvi3] { font-size:.7rem; }
@media (max-width:680px) { .treemap-canvas[b-l91bsufvi3] { width:calc(100% - 28px); height:300px; margin:12px 14px 0; } .treemap-metric-picker[b-l91bsufvi3] { align-self:flex-end; } }
/* /Pages/Affiliate.razor.rz.scp.css */
.affiliate-metrics[b-yztkpsnxx9] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.affiliate-metrics .metric-label[b-yztkpsnxx9] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.affiliate-metrics strong small[b-yztkpsnxx9] {
    margin-left: 2px;
    font-size: .62em;
}

.affiliate-metrics .metric-hint[b-yztkpsnxx9] {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.45;
}

.affiliate-metrics .metric-hint.frozen[b-yztkpsnxx9] {
    color: #b86b14;
}

.affiliate-metrics .rate-card strong[b-yztkpsnxx9] {
    color: var(--primary);
}

.affiliate-metrics .available-card strong[b-yztkpsnxx9],
.rebate-value[b-yztkpsnxx9] {
    color: #16845c;
}

.affiliate-share-grid[b-yztkpsnxx9] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.affiliate-copy-field[b-yztkpsnxx9] {
    display: grid;
    gap: 7px;
}

.affiliate-copy-field > label[b-yztkpsnxx9] {
    color: var(--text);
    font-size: .78rem;
    font-weight: 700;
}

.affiliate-copy-field > div[b-yztkpsnxx9] {
    display: flex;
    min-width: 0;
    padding: 8px 9px;
    align-items: center;
    gap: 10px;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.affiliate-copy-field code[b-yztkpsnxx9] {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    color: var(--text);
    font-size: .78rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.affiliate-copy-field .button[b-yztkpsnxx9] {
    flex: 0 0 auto;
}

.affiliate-tips[b-yztkpsnxx9] {
    margin-top: 18px;
    padding: 15px 17px;
    color: #24674e;
    background: var(--primary-soft);
    border: 1px solid #b9dfcf;
    border-radius: 8px;
}

.affiliate-tips strong[b-yztkpsnxx9] {
    font-size: .8rem;
}

.affiliate-tips ol[b-yztkpsnxx9] {
    display: grid;
    margin: 8px 0 0;
    padding-left: 20px;
    gap: 4px;
    font-size: .75rem;
    line-height: 1.5;
}

.affiliate-transfer-card .section-header[b-yztkpsnxx9] {
    margin-bottom: 0;
}

.affiliate-transfer-card .inline-alert[b-yztkpsnxx9] {
    margin-top: 14px;
}

.affiliate-table-wrap[b-yztkpsnxx9] {
    overflow-x: auto;
}

.affiliate-table[b-yztkpsnxx9] {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
}

.affiliate-table th[b-yztkpsnxx9],
.affiliate-table td[b-yztkpsnxx9] {
    padding: 11px 13px;
    border-bottom: 1px solid var(--line);
    font-size: .76rem;
    text-align: left;
}

.affiliate-table th[b-yztkpsnxx9] {
    color: var(--muted);
    background: var(--surface-soft);
    font-size: .68rem;
    font-weight: 750;
}

.affiliate-table tbody tr:last-child td[b-yztkpsnxx9] {
    border-bottom: 0;
}

.affiliate-table .number-cell[b-yztkpsnxx9] {
    text-align: right;
}

.affiliate-table .rebate-value[b-yztkpsnxx9] {
    font-weight: 700;
}

@media (max-width: 980px) {
    .affiliate-metrics[b-yztkpsnxx9] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .affiliate-share-grid[b-yztkpsnxx9],
    .affiliate-metrics[b-yztkpsnxx9] {
        grid-template-columns: 1fr;
    }

    .affiliate-copy-field > div[b-yztkpsnxx9],
    .affiliate-transfer-card .section-header[b-yztkpsnxx9] {
        align-items: stretch;
        flex-direction: column;
    }

    .affiliate-copy-field code[b-yztkpsnxx9] {
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .affiliate-copy-field .button[b-yztkpsnxx9],
    .affiliate-transfer-card .button[b-yztkpsnxx9] {
        width: 100%;
    }
}
/* /Pages/ApiKeys.razor.rz.scp.css */
.keys-workspace[b-5hrhmuty5r] {
    display: grid;
    gap: 0;
}

/* 连体卡（2026-11-10 工具栏统一批次）：工具栏 + DxGrid 壳 + ListPagination 连成一张卡（对齐上游厂商序列）。 */
.keys-workspace[b-5hrhmuty5r]  .keys-data-grid.dxbl-grid { border-top: 0; border-radius: 0; }
.keys-workspace[b-5hrhmuty5r]  .table-pagination { border-radius: 0 0 10px 10px; }

/* 工具栏统一（2026-11-10 全站批次）：外壳复用全局 .model-sequence-toolbar，
   搜索/状态筛选/计数/动作组全部来自全局类；页内只保留 API 接入地址整行与连体衔接。
   菜单弹层（menu-anchor/settings-menu）也已收敛到全局单一来源。 */
.keys-toolbar[b-5hrhmuty5r]  .api-endpoint-list {
    flex: 1 0 100%;
    margin-top: 2px;
}

.keys-inline-error[b-5hrhmuty5r] {
    margin: 10px 0;
}

.keys-table-card[b-5hrhmuty5r] {
    position: relative;
    overflow: hidden;
    background: var(--surface);
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.sort-header[b-5hrhmuty5r] {
    display: inline-flex;
    padding: 0;
    align-items: center;
    gap: 4px;
    color: inherit;
    background: none;
    border: 0;
    font: inherit;
    font-weight: inherit;
}

.name-cell[b-5hrhmuty5r] {
    min-width: 160px;
}

.name-cell strong[b-5hrhmuty5r] {
    display: inline-block;
    max-width: 210px;
    overflow: hidden;
    color: var(--ink);
    text-overflow: ellipsis;
    vertical-align: middle;
}

.restriction-mark[b-5hrhmuty5r] {
    display: inline-flex;
    margin-left: 6px;
    color: #3478b8;
    vertical-align: middle;
}

.numeric-cell[b-5hrhmuty5r],
.key-copy-cell code[b-5hrhmuty5r] {
    color: var(--muted);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: .64rem;
}

.key-copy-cell[b-5hrhmuty5r] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.key-copy-cell code[b-5hrhmuty5r] {
    padding: 4px 7px;
    color: var(--ink);
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.mini-icon-button[b-5hrhmuty5r] {
    display: inline-grid;
    width: 27px;
    height: 27px;
    padding: 0;
    place-items: center;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 6px;
}

.mini-icon-button:hover[b-5hrhmuty5r],
.mini-icon-button.copied[b-5hrhmuty5r] {
    color: var(--primary);
    background: var(--primary-soft);
}

.group-select-cell[b-5hrhmuty5r] {
    display: flex;
    min-width: 210px;
    align-items: center;
    gap: 7px;
}

.group-select-cell select[b-5hrhmuty5r] {
    width: 100%;
    min-height: 34px;
    padding: 5px 26px 5px 7px;
    color: var(--ink);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 7px;
    font-size: .66rem;
}

.group-select-cell select:hover[b-5hrhmuty5r],
.group-select-cell select:focus[b-5hrhmuty5r] {
    background: var(--surface-muted);
    border-color: var(--line);
}

.platform-dot[b-5hrhmuty5r] {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    background: #6d7d78;
    border-radius: 50%;
}

.platform-dot.openai[b-5hrhmuty5r] { background: #279b72; }
.platform-dot.anthropic[b-5hrhmuty5r] { background: #c47a3e; }
.platform-dot.gemini[b-5hrhmuty5r] { background: #397bd8; }
.platform-dot.antigravity[b-5hrhmuty5r] { background: #885ac1; }
.platform-dot.grok[b-5hrhmuty5r] { background: #343d3a; }

.concurrency-badge[b-5hrhmuty5r] {
    display: inline-flex;
    min-width: 32px;
    padding: 4px 8px;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: 6px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.concurrency-badge.active[b-5hrhmuty5r] {
    color: #087f5b;
    background: #e8f7f1;
    border-color: #b9e2d2;
}

.usage-cell[b-5hrhmuty5r] {
    display: grid;
    min-width: 155px;
    gap: 4px;
    color: var(--muted);
    font-size: .64rem;
}

.usage-cell strong[b-5hrhmuty5r] {
    color: var(--ink);
    font-weight: 680;
}

.usage-cell .quota-line[b-5hrhmuty5r] {
    margin-top: 2px;
}

.usage-progress[b-5hrhmuty5r] {
    display: block;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: var(--line);
    border-radius: 999px;
}

.usage-progress i[b-5hrhmuty5r] {
    display: block;
    height: 100%;
    background: var(--primary);
    border-radius: inherit;
}

.usage-progress i.warning[b-5hrhmuty5r] { background: #d99a2b; }
.usage-progress i.danger[b-5hrhmuty5r] { background: var(--danger); }
.warning[b-5hrhmuty5r] { color: #b77716 !important; }
.danger[b-5hrhmuty5r] { color: var(--danger) !important; }
.normal[b-5hrhmuty5r] { color: var(--ink) !important; }

.rate-limit-cell[b-5hrhmuty5r] {
    display: grid;
    min-width: 145px;
    gap: 8px;
}

.rate-window[b-5hrhmuty5r] {
    display: grid;
    gap: 3px;
}

.rate-window > div[b-5hrhmuty5r] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: .61rem;
}

.rate-window strong[b-5hrhmuty5r] {
    font-weight: 680;
    font-variant-numeric: tabular-nums;
}

.rate-window small[b-5hrhmuty5r] {
    color: var(--muted);
    font-size: .56rem;
}

.usage-progress.compact[b-5hrhmuty5r] {
    height: 4px;
}

.text-action[b-5hrhmuty5r] {
    display: inline-flex;
    width: fit-content;
    padding: 3px 5px;
    align-items: center;
    gap: 4px;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-radius: 5px;
    font-size: .59rem;
}

.text-action:hover[b-5hrhmuty5r] {
    color: var(--primary);
    background: var(--surface-muted);
}

.muted-dash[b-5hrhmuty5r],
.date-cell[b-5hrhmuty5r] {
    color: var(--muted);
    font-size: .63rem;
}

.date-cell.expired[b-5hrhmuty5r] {
    color: var(--danger);
}

.key-status[b-5hrhmuty5r] {
    display: inline-flex;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: .61rem;
    font-weight: 680;
}

.key-status.active[b-5hrhmuty5r] {
    color: var(--primary);
    background: var(--primary-soft);
}

.key-status.inactive[b-5hrhmuty5r] {
    color: var(--muted);
    background: var(--surface-muted);
}

.key-status.warning[b-5hrhmuty5r] {
    color: #a9650b !important;
    background: rgba(217, 154, 43, .13);
}

.key-status.danger[b-5hrhmuty5r] {
    color: var(--danger) !important;
    background: rgba(197, 62, 62, .1);
}

.actions-column[b-5hrhmuty5r] {
    position: sticky;
    z-index: 2;
    right: 0;
    min-width: 264px;
    background: var(--surface) !important;
}

thead .actions-column[b-5hrhmuty5r] {
    z-index: 3;
    background: var(--surface-muted) !important;
}

/* row-actions/row-action 及 use/test/ccs/toggle/danger 变体收敛（2026-10-27 操作栏统一）：
   行内按钮改用 app.css 全局 .row-action（基准=上游厂商序列页签），页内变体删除。 */
.row-actions button:disabled[b-5hrhmuty5r] {
    opacity: .48;
    cursor: wait;
}

.table-refresh-mask[b-5hrhmuty5r] {
    display: grid;
    position: absolute;
    z-index: 8;
    inset: 42px 0 0;
    place-items: start center;
    padding-top: 24px;
    pointer-events: none;
    background: color-mix(in srgb, var(--surface) 55%, transparent);
}

.key-editor-section[b-5hrhmuty5r] {
    display: grid;
    margin-bottom: 18px;
    padding-bottom: 18px;
    gap: 12px;
    border-bottom: 1px solid var(--line);
}

/* 字段统一 label 左置 / 输入右置（2026-10-20 用户反馈风格统一）：
   与基础配置区（app.css 弹窗行式字段配方）同款两列行内布局，
   模型范围 / 高级配置各区的字段不再 label 上置。 */
.key-editor-section .form-field[b-5hrhmuty5r] {
    display: grid;
    grid-template-columns: minmax(118px, 150px) minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    row-gap: 6px;
}

.key-editor-section .form-field > label:first-child[b-5hrhmuty5r],
.key-editor-section .form-field > .field-label-row[b-5hrhmuty5r] {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
}

.key-editor-section .form-field > :not(label):not(.field-label-row)[b-5hrhmuty5r] {
    grid-column: 2;
    min-width: 0;
}

.key-editor-section:last-child[b-5hrhmuty5r] {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.key-editor-section h3[b-5hrhmuty5r] {
    margin: 0;
    color: var(--ink);
    font-size: .77rem;
}

.key-toggle-row[b-5hrhmuty5r] {
    display: flex;
    padding: 10px 12px;
    align-items: center;
    gap: 11px;
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: 6px;
    cursor: pointer;
}

.key-toggle-row input[b-5hrhmuty5r] {
    width: 17px;
    height: 17px;
    accent-color: var(--primary);
}

.key-toggle-row span[b-5hrhmuty5r] {
    display: grid;
    gap: 2px;
}

.key-toggle-row strong[b-5hrhmuty5r] {
    color: var(--ink);
    font-size: .72rem;
}

.key-toggle-row small[b-5hrhmuty5r],
.form-field small[b-5hrhmuty5r] {
    color: var(--muted);
    font-size: .61rem;
    line-height: 1.45;
}

.key-editor-nested[b-5hrhmuty5r] {
    padding: 2px 2px 0;
}

.mono-input[b-5hrhmuty5r] {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.currency-input[b-5hrhmuty5r] {
    display: grid;
    position: relative;
}

.currency-input > span[b-5hrhmuty5r] {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 11px;
    color: var(--muted);
    transform: translateY(-50%);
}

.currency-input[b-5hrhmuty5r]  input {
    padding-left: 27px;
}

.editor-usage-row[b-5hrhmuty5r] {
    display: flex;
    padding: 9px 11px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    background: var(--surface-muted);
    border-radius: 8px;
    font-size: .67rem;
}

.editor-usage-row strong[b-5hrhmuty5r] {
    color: var(--ink);
}

.rate-editor-grid[b-5hrhmuty5r] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.editor-rate-usage[b-5hrhmuty5r] {
    display: grid;
    margin-top: 7px;
    gap: 5px;
    color: var(--muted);
    font-size: .58rem;
}

.reset-editor-button[b-5hrhmuty5r] {
    width: fit-content;
}

.expiration-options[b-5hrhmuty5r] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.expiration-options button[b-5hrhmuty5r] {
    min-height: 32px;
    padding: 5px 11px;
    color: var(--muted);
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: 7px;
    font-size: .66rem;
}

.expiration-options button.active[b-5hrhmuty5r] {
    color: var(--primary);
    background: var(--primary-soft);
    border-color: color-mix(in srgb, var(--primary) 32%, var(--line));
}

.current-expiration[b-5hrhmuty5r] {
    margin: 0;
    color: var(--muted);
    font-size: .65rem;
}

.current-expiration strong[b-5hrhmuty5r] {
    color: var(--ink);
}

.delete-confirm[b-5hrhmuty5r] {
    display: grid;
    grid-template-columns: auto 1fr;
    padding: 4px 0 12px;
    gap: 12px;
}

.delete-icon[b-5hrhmuty5r] {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    color: var(--danger);
    background: rgba(197, 62, 62, .1);
    border-radius: 50%;
}

.delete-confirm strong[b-5hrhmuty5r] { color: var(--ink); font-size: .76rem; }
.delete-confirm p[b-5hrhmuty5r], .confirm-copy[b-5hrhmuty5r], .ccs-description[b-5hrhmuty5r] { margin: 6px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.55; }

/* CCS 弹窗默认模型行（2026-11-09）：与 UseApiKeyModal 的 use-key-model-row 同构同量
   （该样式 scoped 在 UseApiKeyModal 内，这里按同款令牌值落地）。 */
.ccs-model-row[b-5hrhmuty5r] { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 12px; }
.ccs-model-row label[b-5hrhmuty5r] { flex: none; font-size: .7rem; font-weight: 700; color: var(--ink); }
.ccs-model-row code[b-5hrhmuty5r] { font-size: .72rem; color: var(--ink); }
.ccs-model-row small[b-5hrhmuty5r] { color: var(--muted); font-size: .64rem; line-height: 1.5; }

.ccs-client-grid[b-5hrhmuty5r] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 16px;
    gap: 12px;
}

.ccs-client-grid button[b-5hrhmuty5r] {
    display: flex;
    min-height: 130px;
    padding: 18px 14px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--muted);
    background: var(--surface);
    border: 2px solid var(--line);
    border-radius: 6px;
}

.ccs-client-grid button:hover[b-5hrhmuty5r] {
    color: var(--primary);
    background: var(--primary-soft);
    border-color: var(--primary);
}

.ccs-client-grid strong[b-5hrhmuty5r] { color: var(--ink); font-size: .72rem; }
.ccs-client-grid small[b-5hrhmuty5r] { font-size: .61rem; }

@media (max-width: 960px) {
    .actions-column[b-5hrhmuty5r] {
        position: static;
    }

    .rate-editor-grid[b-5hrhmuty5r] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .ccs-client-grid[b-5hrhmuty5r] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/AuditLogs.razor.rz.scp.css */
.audit-page[b-x5essr8o9v] { display: grid; width: min(100%, 1600px); margin: 0 auto; gap: 16px; color: var(--ink); }
.audit-heading[b-x5essr8o9v], .audit-filter-actions[b-x5essr8o9v], .audit-filter-actions > div[b-x5essr8o9v], .audit-pagination[b-x5essr8o9v], .audit-pagination > div[b-x5essr8o9v], .detail-hero > div[b-x5essr8o9v] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
/* 2026-10-15 用户需求：筛选按钮统一从左往右排——筛选动作区不再 space-between 两端分家。 */
.audit-filter-actions[b-x5essr8o9v], .audit-filter-actions > div[b-x5essr8o9v] { justify-content: flex-start; }
.audit-heading > div > span[b-x5essr8o9v] { color: var(--primary); font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.audit-heading h1[b-x5essr8o9v] { margin: 3px 0 0; font-size: 1.42rem; font-weight: 800; }
.audit-heading p[b-x5essr8o9v] { max-width: 800px; margin: 6px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.audit-filter-card[b-x5essr8o9v], .audit-table-card[b-x5essr8o9v] { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-sm); }
.audit-filter-card[b-x5essr8o9v] { padding: 18px; }
.audit-filter-grid[b-x5essr8o9v] { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 13px; }
.audit-filter-grid label[b-x5essr8o9v], .custom-time-form label[b-x5essr8o9v] { display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: .68rem; font-weight: 700; }
.audit-filter-grid input[b-x5essr8o9v], .audit-filter-grid select[b-x5essr8o9v], .custom-time-form input[b-x5essr8o9v], .audit-pagination select[b-x5essr8o9v], .totp-form input[b-x5essr8o9v] { width: 100%; min-height: 36px; padding: 7px 10px; color: var(--ink); font-size: .75rem; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; outline: none; }
.audit-filter-grid input:focus[b-x5essr8o9v], .audit-filter-grid select:focus[b-x5essr8o9v], .custom-time-form input:focus[b-x5essr8o9v], .totp-form input:focus[b-x5essr8o9v] { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); }
.wide-filter[b-x5essr8o9v] { grid-column: span 2; }
.audit-search-control[b-x5essr8o9v] { display: grid; width: 100%; min-width: 0; min-height: 36px; overflow: hidden; grid-template-columns: 34px minmax(0, 1fr); align-items: stretch; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; }
.audit-search-control:focus-within[b-x5essr8o9v] { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); }
.audit-search-icon[b-x5essr8o9v] { display: inline-flex; min-width: 34px; align-items: center; justify-content: center; color: var(--muted); border-right: 1px solid var(--line); }
.audit-search-control input[b-x5essr8o9v] { min-width: 0; min-height: 34px; padding: 7px 10px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.audit-search-control input:focus[b-x5essr8o9v] { border-color: transparent; box-shadow: none; }
.audit-filter-actions[b-x5essr8o9v] { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.audit-table-card[b-x5essr8o9v] { overflow: hidden; }
.audit-table-scroll[b-x5essr8o9v] { overflow: auto; }
.audit-table[b-x5essr8o9v] { width: 100%; min-width: 1080px; border-collapse: collapse; font-size: .83rem; }
.audit-table th[b-x5essr8o9v] { padding: 11px 13px; color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .04em; text-align: left; background: var(--surface-alt); border-bottom: 1px solid var(--line); }
.audit-table td[b-x5essr8o9v] { max-width: 320px; padding: 11px 13px; vertical-align: middle; border-bottom: 1px solid var(--line); }
.audit-table tbody tr:hover[b-x5essr8o9v] { background: color-mix(in srgb, var(--primary) 3%, var(--surface)); }
.actor-cell[b-x5essr8o9v], .action-cell[b-x5essr8o9v] { display: grid; gap: 3px; min-width: 0; }.actor-cell b[b-x5essr8o9v], .action-cell code[b-x5essr8o9v], .action-cell small[b-x5essr8o9v] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.actor-cell small[b-x5essr8o9v], .action-cell small[b-x5essr8o9v] { color: var(--muted); }.action-cell code[b-x5essr8o9v] { color: var(--ink); font-size: .8rem; }.action-cell small b[b-x5essr8o9v] { display: inline-block; margin-right: 4px; font-size: .75rem; }
.nowrap[b-x5essr8o9v] { white-space: nowrap; }
.status-pill[b-x5essr8o9v] { display: inline-flex; align-items: center; gap: 6px; width: max-content; padding: 4px 8px; font-size: .75rem; font-weight: 800; border-radius: 999px; }.status-pill i[b-x5essr8o9v] { width: 6px; height: 6px; border-radius: 50%; }.status-pill.success[b-x5essr8o9v] { color: #087a55; background: #eaf8f2; }.status-pill.success i[b-x5essr8o9v] { background: #0a9469; }.status-pill.warning[b-x5essr8o9v] { color: #9a5b00; background: #fff6df; }.status-pill.warning i[b-x5essr8o9v] { background: #d68a00; }.status-pill.danger[b-x5essr8o9v] { color: #b4233d; background: #fff0f2; }.status-pill.danger i[b-x5essr8o9v] { background: #d92d4b; }
/* text-action 收敛（2026-10-27 操作栏统一）：行内按钮改用 app.css 全局 .row-action。 */
.audit-empty[b-x5essr8o9v] { display: grid; justify-items: center; gap: 6px; padding: 46px 20px; color: var(--muted); text-align: center; }.audit-empty b[b-x5essr8o9v] { color: var(--ink); }.audit-empty span[b-x5essr8o9v] { font-size: .75rem; }
.audit-pagination[b-x5essr8o9v] { padding: 12px 15px; color: var(--muted); font-size: .8rem; background: var(--surface-alt); }.audit-pagination label[b-x5essr8o9v] { display: flex; align-items: center; gap: 7px; }.audit-pagination select[b-x5essr8o9v] { width: auto; min-height: 30px; padding: 4px 7px; }.audit-pagination button[b-x5essr8o9v] { min-height: 30px; padding: 5px 9px; color: var(--ink); background: var(--surface); border: 1px solid var(--line-strong); border-radius: 6px; }.audit-pagination button:disabled[b-x5essr8o9v] { opacity: .45; }
.audit-detail[b-x5essr8o9v] { display: grid; gap: 15px; }.detail-hero[b-x5essr8o9v] { padding: 17px; background: var(--surface-alt); border: 1px solid var(--line); border-radius: 10px; }.detail-hero > div[b-x5essr8o9v] { justify-content: flex-start; flex-wrap: wrap; }.detail-hero > div > code[b-x5essr8o9v] { color: var(--ink); font-size: .85rem; font-weight: 800; }.detail-hero p[b-x5essr8o9v] { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0 8px; padding: 8px 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }.detail-hero p b[b-x5essr8o9v] { padding: 2px 5px; font-size: .6rem; background: var(--surface-alt); border-radius: 4px; }.detail-hero p span[b-x5essr8o9v] { min-width: 0; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .7rem; }.detail-hero > small[b-x5essr8o9v] { color: var(--muted); font-size: .67rem; }.detail-hero > small code[b-x5essr8o9v] { overflow-wrap: anywhere; }
.detail-overview[b-x5essr8o9v] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }.detail-overview article[b-x5essr8o9v] { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 13px; background: var(--surface-alt); border-radius: 8px; }.detail-overview small[b-x5essr8o9v], .detail-block h3[b-x5essr8o9v] { color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.detail-overview b[b-x5essr8o9v], .detail-overview code[b-x5essr8o9v] { min-width: 0; overflow-wrap: anywhere; font-size: .72rem; }.detail-overview span[b-x5essr8o9v] { color: var(--muted); font-size: .65rem; }
.detail-block h3[b-x5essr8o9v] { margin: 0 0 7px; }.detail-block pre[b-x5essr8o9v] { max-height: 300px; margin: 0; padding: 13px; overflow: auto; color: var(--ink); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .68rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; background: var(--surface-alt); border-radius: 8px; }
.custom-time-form[b-x5essr8o9v] { display: grid; gap: 13px; }.clear-warning[b-x5essr8o9v] { display: flex; align-items: flex-start; gap: 12px; padding: 14px; color: #9d263c; background: #fff3f5; border: 1px solid #ffd3db; border-radius: 6px; }.clear-warning b[b-x5essr8o9v] { font-size: .8rem; }.clear-warning p[b-x5essr8o9v] { margin: 5px 0 0; font-size: .7rem; line-height: 1.55; }
.totp-form p[b-x5essr8o9v] { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }.totp-form input[b-x5essr8o9v] { display: block; width: min(100%, 260px); margin: 16px auto 0; padding-left: 1.8em; font-size: 1.08rem; font-weight: 800; letter-spacing: .8em; text-align: center; }

@media (max-width: 1080px) { .audit-filter-grid[b-x5essr8o9v] { grid-template-columns: repeat(2, minmax(0, 1fr)); }.wide-filter[b-x5essr8o9v] { grid-column: span 2; } }
@media (max-width: 700px) { .audit-heading[b-x5essr8o9v], .audit-filter-actions[b-x5essr8o9v], .audit-pagination[b-x5essr8o9v] { align-items: flex-start; flex-direction: column; }.audit-heading .button[b-x5essr8o9v] { width: 100%; }.audit-filter-grid[b-x5essr8o9v], .detail-overview[b-x5essr8o9v] { grid-template-columns: 1fr; }.wide-filter[b-x5essr8o9v] { grid-column: auto; }.audit-filter-actions > div[b-x5essr8o9v] { width: 100%; }.audit-filter-actions > div .button[b-x5essr8o9v] { flex: 1; }.audit-pagination > div[b-x5essr8o9v] { flex-wrap: wrap; }.detail-hero p[b-x5essr8o9v] { flex-direction: column; } }
/* /Pages/BatchImage.razor.rz.scp.css */
.batch-list-actions[b-1iwuq3bcef] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .6rem;
}

.batch-filter-section[b-1iwuq3bcef] {
    padding: 1rem 1.2rem;
}

.batch-filters[b-1iwuq3bcef] {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(150px, .8fr)) auto;
    align-items: end;
    gap: .8rem;
}

.batch-filters .form-field[b-1iwuq3bcef] {
    margin: 0;
}

/* 筛选区输入统一 36px：DX 封装字段由 app.css 筛选容器登记表回落，原生搜索框（.form-field 表单口径 40px）在此对齐。 */
.batch-filters .form-field input:not(.dxbl-text-edit-input)[b-1iwuq3bcef] {
    height: auto;
    min-height: 36px;
}

.batch-filter-actions[b-1iwuq3bcef] {
    display: flex;
    gap: .5rem;
    padding-bottom: 1px;
}

.batch-selection-bar[b-1iwuq3bcef] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1.1rem;
    border-color: color-mix(in srgb, var(--primary) 34%, var(--border));
    background: color-mix(in srgb, var(--primary) 6%, var(--surface));
}

.batch-selection-bar .button-row[b-1iwuq3bcef] {
    margin: 0;
}

.danger-text[b-1iwuq3bcef] {
    color: var(--danger) !important;
}

.batch-select-all[b-1iwuq3bcef] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--muted);
    font-size: .86rem;
    cursor: pointer;
}

.batch-select-all input[b-1iwuq3bcef],
[b-1iwuq3bcef] .dxbl-grid input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    accent-color: var(--primary);
}

.batch-task-cell[b-1iwuq3bcef] {
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}

.batch-task-cell.child[b-1iwuq3bcef] {
    padding-left: 1.15rem;
}

.batch-indent[b-1iwuq3bcef] {
    flex: 0 0 30px;
}

.batch-task-link[b-1iwuq3bcef] {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: .15rem;
    padding: .25rem .35rem;
    border: 0;
    border-radius: .45rem;
    background: transparent;
    text-align: left;
    color: var(--text);
}

.batch-task-link:hover[b-1iwuq3bcef] {
    background: var(--surface-subtle);
}

.batch-task-link strong[b-1iwuq3bcef],
.batch-task-link small[b-1iwuq3bcef] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.batch-task-link small[b-1iwuq3bcef] {
    color: var(--muted);
    font-weight: 400;
}

.batch-count[b-1iwuq3bcef] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.batch-count.success[b-1iwuq3bcef],
.batch-detail-summary .success[b-1iwuq3bcef] {
    color: var(--success);
}

.batch-count.failed[b-1iwuq3bcef],
.batch-detail-summary .failed[b-1iwuq3bcef] {
    color: var(--danger);
}

.batch-count-separator[b-1iwuq3bcef] {
    margin: 0 .35rem;
    color: var(--border-strong);
}

.batch-pagination[b-1iwuq3bcef] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 1rem -1.25rem -1.25rem;
    padding: .9rem 1.25rem;
    border-top: 1px solid var(--border);
    color: var(--muted);
    font-size: .88rem;
}

.batch-pagination label[b-1iwuq3bcef] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.batch-pagination select[b-1iwuq3bcef] {
    min-width: 70px;
    padding: .38rem .55rem;
}

.batch-pagination .button-row[b-1iwuq3bcef] {
    margin: 0;
}

.batch-empty-action[b-1iwuq3bcef] {
    display: grid;
    justify-items: center;
    gap: 1rem;
}

.batch-create-grid[b-1iwuq3bcef] {
    margin-bottom: 1.1rem;
}

.batch-prompt-editor[b-1iwuq3bcef] {
    display: grid;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: .75rem;
    background: var(--surface-subtle);
}

.batch-prompt-editor .section-header[b-1iwuq3bcef] {
    margin: 0;
    padding: 0;
    border: 0;
}

.batch-prompt-editor textarea[b-1iwuq3bcef] {
    min-height: 86px;
    resize: vertical;
}

.batch-prompt-controls[b-1iwuq3bcef] {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 105px 130px 100px;
    gap: .55rem;
    align-items: center;
}

.batch-file-button[b-1iwuq3bcef] {
    position: relative;
    overflow: hidden;
    justify-content: center;
    cursor: pointer;
}

.batch-file-button.disabled[b-1iwuq3bcef] {
    pointer-events: none;
    opacity: .55;
}

.batch-file-button[b-1iwuq3bcef]  input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    opacity: 0;
    cursor: pointer;
}

.batch-reference-list[b-1iwuq3bcef] {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.batch-reference-list > span[b-1iwuq3bcef] {
    display: inline-flex;
    align-items: center;
    max-width: 260px;
    gap: .4rem;
    padding: .35rem .55rem;
    border: 1px solid var(--border);
    border-radius: .45rem;
    background: var(--surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .8rem;
}

.batch-reference-list small[b-1iwuq3bcef] {
    color: var(--muted);
}

.batch-reference-list button[b-1iwuq3bcef] {
    display: inline-flex;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--muted);
}

.batch-prompt-empty[b-1iwuq3bcef] {
    padding: 1.4rem;
    border: 1px dashed var(--border);
    border-radius: .6rem;
    color: var(--muted);
    text-align: center;
}

.batch-prompt-rows[b-1iwuq3bcef] {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: .6rem;
    background: var(--surface);
}

.batch-prompt-rows > div[b-1iwuq3bcef] {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr) auto 38px;
    align-items: center;
    gap: .65rem;
    padding: .65rem .75rem;
    border-bottom: 1px solid var(--border);
}

.batch-prompt-rows > div:last-child[b-1iwuq3bcef] {
    border-bottom: 0;
}

.batch-prompt-rows > div > span[b-1iwuq3bcef] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.batch-prompt-rows small[b-1iwuq3bcef] {
    color: var(--muted);
    white-space: nowrap;
}

.error-text[b-1iwuq3bcef] {
    color: var(--danger);
}

.batch-detail-summary[b-1iwuq3bcef] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    padding: .9rem;
    border: 1px solid var(--border);
    border-radius: .7rem;
    background: var(--surface-subtle);
}

.batch-detail-summary > div[b-1iwuq3bcef] {
    display: grid;
    justify-items: center;
    gap: .35rem;
    min-width: 0;
}

.batch-detail-summary span:first-child[b-1iwuq3bcef] {
    color: var(--muted);
    font-size: .78rem;
}

.batch-detail-summary strong[b-1iwuq3bcef] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.batch-detail-heading[b-1iwuq3bcef] {
    margin-top: 1rem;
}

.batch-detail-table-wrap[b-1iwuq3bcef] {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: .7rem;
}

.batch-detail-table[b-1iwuq3bcef] {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
    table-layout: fixed;
}

.batch-detail-table th[b-1iwuq3bcef],
.batch-detail-table td[b-1iwuq3bcef] {
    padding: .7rem .75rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

.batch-detail-table th[b-1iwuq3bcef] {
    background: var(--surface-subtle);
    color: var(--muted);
    font-size: .8rem;
    font-weight: 650;
}

.batch-detail-table th:nth-child(1)[b-1iwuq3bcef] { width: 18%; }
.batch-detail-table th:nth-child(2)[b-1iwuq3bcef] { width: 34%; }
.batch-detail-table th:nth-child(3)[b-1iwuq3bcef] { width: 13%; }
.batch-detail-table th:nth-child(4)[b-1iwuq3bcef] { width: 11%; }
.batch-detail-table th:nth-child(5)[b-1iwuq3bcef] { width: 24%; }

.batch-detail-table tr:last-child td[b-1iwuq3bcef] {
    border-bottom: 0;
}

.batch-detail-table td:first-child code[b-1iwuq3bcef],
.batch-detail-table td:first-child small[b-1iwuq3bcef] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.batch-detail-table td:first-child small[b-1iwuq3bcef] {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .72rem;
}

.batch-prompt-preview[b-1iwuq3bcef] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.copy-link[b-1iwuq3bcef] {
    margin-top: .2rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--primary);
    font-size: .72rem;
}

.batch-thumbnail[b-1iwuq3bcef] {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: .45rem;
    background: var(--surface-subtle);
    color: var(--muted);
}

.batch-thumbnail button[b-1iwuq3bcef],
.batch-thumbnail img[b-1iwuq3bcef] {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    object-fit: cover;
}

.batch-item-result[b-1iwuq3bcef] {
    display: inline-flex;
    max-width: 100%;
    padding: .28rem .5rem;
    border-radius: .4rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .76rem;
}

.batch-item-result.success[b-1iwuq3bcef] { background: color-mix(in srgb, var(--success) 11%, transparent); color: var(--success); }
.batch-item-result.failed[b-1iwuq3bcef] { background: color-mix(in srgb, var(--danger) 11%, transparent); color: var(--danger); }
.batch-item-result.pending[b-1iwuq3bcef] { background: var(--surface-subtle); color: var(--muted); }

.batch-large-preview[b-1iwuq3bcef] {
    display: grid;
    min-height: 420px;
    place-items: center;
    margin-top: 1rem;
    padding: 1rem;
    border-radius: .7rem;
    background: var(--surface-subtle);
}

.batch-large-preview img[b-1iwuq3bcef] {
    max-width: 100%;
    max-height: 72vh;
    object-fit: contain;
    border-radius: .5rem;
}

.batch-guide-steps[b-1iwuq3bcef] {
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: .7rem;
    background: var(--surface-subtle);
}

.batch-guide-steps ol[b-1iwuq3bcef] {
    margin: .75rem 0 0;
    padding-left: 1.4rem;
    color: var(--muted);
    line-height: 1.8;
}

.batch-guide-text[b-1iwuq3bcef] {
    width: 100%;
    min-height: 390px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: .82rem;
    line-height: 1.65;
}

@media (max-width: 1180px) {
    .batch-filters[b-1iwuq3bcef] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .batch-filter-actions[b-1iwuq3bcef] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .batch-selection-bar[b-1iwuq3bcef],
    .batch-pagination[b-1iwuq3bcef] {
        align-items: stretch;
        flex-direction: column;
    }

    .batch-list-actions[b-1iwuq3bcef] {
        width: 100%;
        align-items: stretch;
        justify-content: flex-start;
    }

    .batch-filters[b-1iwuq3bcef],
    .batch-prompt-controls[b-1iwuq3bcef],
    .batch-detail-summary[b-1iwuq3bcef] {
        grid-template-columns: 1fr;
    }

    .batch-prompt-rows > div[b-1iwuq3bcef] {
        grid-template-columns: 90px minmax(0, 1fr) 34px;
    }

    .batch-prompt-rows small[b-1iwuq3bcef] {
        grid-column: 2;
    }
}
/* /Pages/Departments.razor.rz.scp.css */
/* 部门管理：左侧组织树 + 右侧成员面板的两栏布局。 */
.departments-layout[b-ohesmeogvu] {
    display: grid;
    grid-template-columns: minmax(320px, 2fr) minmax(360px, 3fr);
    gap: 20px;
    align-items: start;
}

@media (max-width: 1080px) {
    .departments-layout[b-ohesmeogvu] { grid-template-columns: 1fr; }
}

.departments-tree-section[b-ohesmeogvu], .departments-members-section[b-ohesmeogvu] { min-width: 0; }

.department-tree[b-ohesmeogvu] {
    list-style: none;
    margin: 0;
    padding: 0;
}

    .department-tree ul[role="group"][b-ohesmeogvu] {
        list-style: none;
        margin: 0;
        padding-left: 22px;
        border-left: 1px solid var(--border-color, #e5e7eb);
    }

.department-node[b-ohesmeogvu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 6px;
    border-radius: 8px;
}

    .department-node:hover[b-ohesmeogvu] { background: var(--hover-bg, #f3f4f6); }

.department-label[b-ohesmeogvu] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border: none;
    background: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
    border-radius: 6px;
    text-align: left;
}

    .department-label small[b-ohesmeogvu] { color: var(--muted-color, #6b7280); }

    li.selected > .department-node[b-ohesmeogvu] { background: var(--active-bg, #e0eaff); }
    li.selected > .department-node .department-label[b-ohesmeogvu] { font-weight: 600; }

    .node-revenue[b-ohesmeogvu] { color: var(--success-color, #059669); }
    .node-over-budget[b-ohesmeogvu] {
        padding: 1px 6px;
        border-radius: 999px;
        background: var(--danger-bg, #fee2e2);
        color: var(--danger-color, #dc2626);
        font-size: 11px;
    }

/* 阶段三：部门用量汇总条 + 统计范围选择器。 */
.department-usage-strip[b-ohesmeogvu] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.usage-stat[b-ohesmeogvu] {
    min-width: 0;
    padding: 10px 12px;
    background: var(--surface, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
}

    .usage-stat span[b-ohesmeogvu] { display: block; font-size: 12px; color: var(--muted-color, #6b7280); }
    .usage-stat strong[b-ohesmeogvu] { font-size: 16px; font-weight: 600; }

.usage-range[b-ohesmeogvu] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--muted-color, #6b7280);
}

/* 软预算：本月已用/预算进度条，80% 预警、100% 超支变色（不拦截请求）。 */
.budget-stat[b-ohesmeogvu] { grid-column: span 2; }

.budget-bar[b-ohesmeogvu] {
    margin: 6px 0 4px;
    height: 8px;
    border-radius: 999px;
    background: var(--border-color, #e5e7eb);
    overflow: hidden;
}

.budget-bar-fill[b-ohesmeogvu] {
    height: 100%;
    border-radius: 999px;
    background: var(--success-color, #059669);
    transition: width .3s ease;
}

    .budget-bar-fill.warn[b-ohesmeogvu], .usage-stat.warn strong[b-ohesmeogvu] { background: var(--warning-color, #d97706); }
    .budget-bar-fill.over[b-ohesmeogvu], .usage-stat.over strong[b-ohesmeogvu] { background: var(--danger-color, #dc2626); }
    .budget-stat.warn span[b-ohesmeogvu], .budget-stat.over span[b-ohesmeogvu] { color: var(--warning-color, #d97706); }
    .budget-stat.over span[b-ohesmeogvu] { color: var(--danger-color, #dc2626); }
/* /Pages/DocsCenter.razor.rz.scp.css */
/* 文档中心：对齐 Kimi 开放平台文档站版式（公告条 + 左栏 / 正文 / 右侧 TOC，站点头部由控制台顶栏承担）。 */

/* ===== 顶部公告条 ===== */
.kdocs[b-hz258fpb1k] { display: flex; flex-direction: column; min-height: 100vh; background: var(--surface); color: #1a1a1a; }
.kdocs-announce[b-hz258fpb1k] { position: sticky; top: 64px; z-index: 20; display: flex; min-height: 38px; align-items: center; justify-content: center; gap: 6px; padding: 8px 16px; background: #111; color: #fff; font-size: 13px; }
.kdocs-announce a[b-hz258fpb1k] { color: #fff; font-weight: 600; text-underline-offset: 3px; }

/* ===== 三栏骨架 ===== */
.kdocs-shell[b-hz258fpb1k] { display: grid; flex: 1; grid-template-columns: 268px minmax(0, 1fr) 218px; align-items: start; width: 100%; max-width: 1680px; margin: 0 auto; }
.kdocs-shell-no-toc[b-hz258fpb1k] { grid-template-columns: 268px minmax(0, 1fr); }

/* ===== 左侧栏 ===== */
.kdocs-sidebar[b-hz258fpb1k] { position: sticky; top: 116px; max-height: calc(100vh - 128px); padding: 22px 14px 48px 24px; border-right: 1px solid #f2f2f1; overflow-y: auto; /* 滚动条隐藏（2026-10-21 用户反馈滚动条杂乱）：滚轮/拖拽滚动保留，全页只留主滚动条 */ scrollbar-width: none; }
.kdocs-sidebar[b-hz258fpb1k]::-webkit-scrollbar { display: none; }
.kdocs-nav-group[b-hz258fpb1k] { margin-bottom: 20px; }
.kdocs-nav-group-label[b-hz258fpb1k] { margin: 0 10px 10px; color: #111; font-size: 15.5px; font-weight: 700; }
.kdocs-sidebar a[b-hz258fpb1k] { display: flex; align-items: center; gap: 6px; margin: 2px 0; padding: 9px 12px; border-radius: 9px; color: #4d4d4c; font-size: 14px; line-height: 1.5; text-decoration: none; }
.kdocs-sidebar a:hover[b-hz258fpb1k] { background: #f5f5f4; color: #111; }
.kdocs-sidebar a.active[b-hz258fpb1k] { background: #efefee; color: #111; font-weight: 650; }
.kdocs-badge[b-hz258fpb1k] { margin-left: 7px; padding: 2px 7px; background: #ececeb; border-radius: 6px; color: #55575a; font-size: 10.5px; font-weight: 700; }

/* ===== 正文列 ===== */
.kdocs-main[b-hz258fpb1k] { min-width: 0; max-width: 920px; padding: 22px 48px 48px; }
.kdocs-crumb[b-hz258fpb1k] { color: #a0a5a3; font-size: 13px; }
.kdocs-title-row[b-hz258fpb1k] { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin: 8px 0 6px; }
.kdocs-title-row h1[b-hz258fpb1k] { margin: 0; color: #111; font-size: 34px; font-weight: 800; letter-spacing: -.02em; }
.kdocs-subtitle[b-hz258fpb1k] { margin: 12px 0 0; color: #66686a; font-size: 15px; }
.kdocs-copy-page[b-hz258fpb1k] { display: inline-flex; align-items: center; gap: 6px; flex: none; margin-top: 8px; padding: 8px 13px; border: 1px solid #e7e7e5; border-radius: 10px; background: var(--surface); color: #444; font-size: 13px; cursor: pointer; }
.kdocs-copy-page:hover[b-hz258fpb1k] { background: #f5f5f4; color: #111; }

.kdocs-article[b-hz258fpb1k] { display: block; }
.kdocs-richtext p[b-hz258fpb1k] { margin: 18px 0; color: #333; font-size: 14.5px; line-height: 1.9; }
.kdocs-richtext a[b-hz258fpb1k], .kdocs-step-body a[b-hz258fpb1k], .kdocs-ol a[b-hz258fpb1k] { color: inherit; text-underline-offset: 3px; }
.kdocs-article h2[b-hz258fpb1k] { margin: 44px 0 6px; color: #111; font-size: 25px; font-weight: 750; letter-spacing: -.01em; }
.kdocs-article .kdocs-h3[b-hz258fpb1k] { margin: 34px 0 6px; color: #111; font-size: 19px; font-weight: 700; }
.kdocs-article code[b-hz258fpb1k] { padding: 2px 6px; background: #f4f4f3; border-radius: 6px; color: #1f1f1f; font-size: .86em; }
.kdocs-article a[b-hz258fpb1k] { text-decoration: underline; text-underline-offset: 3px; }
.kdocs-article .kdocs-card a[b-hz258fpb1k] { text-decoration: none; }
.kdocs-article pre code[b-hz258fpb1k] { padding: 0; background: transparent; border-radius: 0; font-size: inherit; }

/* 提示块 */
.kdocs-notice[b-hz258fpb1k], .kdocs-info[b-hz258fpb1k], .kdocs-tip[b-hz258fpb1k] { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0; padding: 13px 16px; border-radius: 12px; font-size: 13.5px; line-height: 1.75; }
.kdocs-notice[b-hz258fpb1k] { background: #f6f6f5; color: #55575a; }
.kdocs-notice svg[b-hz258fpb1k] { flex: none; margin-top: 2px; color: #8a8a88; }
.kdocs-notice strong[b-hz258fpb1k] { color: #1a1a1a; }
.kdocs-info[b-hz258fpb1k] { background: #edf3fe; color: #3a66a8; }
.kdocs-info svg[b-hz258fpb1k] { flex: none; margin-top: 2px; color: #4a83e8; }
.kdocs-tip[b-hz258fpb1k] { background: #ebf7ee; color: #3c7d52; }
.kdocs-tip svg[b-hz258fpb1k] { flex: none; margin-top: 2px; color: #35a05c; }
.kdocs-notice a[b-hz258fpb1k], .kdocs-info a[b-hz258fpb1k], .kdocs-tip a[b-hz258fpb1k] { color: inherit; font-weight: 600; }
.kdocs-notice code[b-hz258fpb1k], .kdocs-info code[b-hz258fpb1k], .kdocs-tip code[b-hz258fpb1k] { background: rgba(255, 255, 255, .72); color: inherit; }

/* 编号步骤 */
.kdocs-step[b-hz258fpb1k] { display: grid; grid-template-columns: 36px minmax(0, 1fr); margin-top: 30px; }
.kdocs-step-no[b-hz258fpb1k] { display: grid; width: 27px; height: 27px; margin-top: 1px; place-items: center; border: 1px solid #dddddb; border-radius: 50%; background: var(--surface); color: #333; font-size: 13px; }
.kdocs-step-body h3[b-hz258fpb1k] { margin: 4px 0 0; color: #111; font-size: 16.5px; font-weight: 700; }
.kdocs-step-body p[b-hz258fpb1k] { margin: 14px 0; color: #333; font-size: 14.5px; line-height: 1.9; }
.kdocs-ol[b-hz258fpb1k] { margin: 14px 0; padding-left: 22px; color: #333; font-size: 14.5px; line-height: 1.9; }
.kdocs-ol li[b-hz258fpb1k] { margin: 7px 0; }
.kdocs-note[b-hz258fpb1k] { margin: 14px 0 0; color: #66686a; font-size: 13px; font-style: italic; }

/* 卡片网格 */
.kdocs-card-grid[b-hz258fpb1k] { display: grid; gap: 14px; margin: 16px 0; }
.kdocs-card-grid-2[b-hz258fpb1k] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kdocs-card-grid-3[b-hz258fpb1k] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kdocs-card[b-hz258fpb1k] { display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid #ececeb; border-radius: 12px; color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.kdocs-card:hover[b-hz258fpb1k] { border-color: #d8d8d6; box-shadow: 0 4px 14px rgba(17, 17, 17, .05); }
.kdocs-card-icon[b-hz258fpb1k] { display: inline-flex; color: #1a1a1a; }
.kdocs-card-icon svg[b-hz258fpb1k] { width: 22px; height: 22px; }
.kdocs-card strong[b-hz258fpb1k] { color: #111; font-size: 15px; }
.kdocs-card-desc[b-hz258fpb1k] { color: #8a8f8d; font-size: 13px; line-height: 1.7; }
.kdocs-card-desc code[b-hz258fpb1k] { font-size: .9em; }

/* 代码块 */
.kdocs-codeblock[b-hz258fpb1k] { margin: 18px 0 8px; }
.kdocs-code-tabs[b-hz258fpb1k] { display: flex; gap: 20px; margin-bottom: 12px; }
.kdocs-code-tabs button[b-hz258fpb1k] { padding: 6px 2px; border: 0; background: transparent; color: var(--muted); font-size: 13.5px; cursor: pointer; border-bottom: 2px solid transparent; }
.kdocs-code-tabs button.active[b-hz258fpb1k] { color: var(--primary-strong); font-weight: 650; border-bottom-color: var(--primary-strong); }
.kdocs-code[b-hz258fpb1k] { position: relative; margin: 16px 0; padding: 16px 56px 16px 18px; overflow-x: auto; border: 1px solid #e9e9e7; border-radius: 12px; background: var(--surface); color: #24292f; font-size: 12.5px; line-height: 1.8; tab-size: 4; }
.kdocs-code-actions[b-hz258fpb1k] { position: absolute; top: 10px; right: 10px; display: inline-flex; gap: 4px; }
.kdocs-code-actions button[b-hz258fpb1k] { display: grid; width: 28px; height: 28px; place-items: center; border: 0; background: transparent; border-radius: 7px; color: #9aa0a6; cursor: pointer; }
.kdocs-code-actions button:hover[b-hz258fpb1k] { background: #f2f2f1; color: #333; }
.tok-kw[b-hz258fpb1k] { color: #c1513b; }
.tok-str[b-hz258fpb1k] { color: #6f7d2c; }
.tok-typ[b-hz258fpb1k] { color: #3558c8; }
.tok-cmt[b-hz258fpb1k] { color: #9aa0a6; }
.tok-num[b-hz258fpb1k] { color: #1a6aa8; }

/* 页面反馈 / 翻页 / 页脚 */
/* 反馈按钮（2026-10-20 重样式）：改走设计令牌（原 #e7e7e5/#f5f5f4 等硬编码浅色在暗色主题下违和），
   胶囊形 + 主色 hover，与平台按钮观感一致。 */
.kdocs-feedback[b-hz258fpb1k] { display: flex; align-items: center; gap: 12px; margin: 48px 0 8px; }
.kdocs-feedback > span[b-hz258fpb1k] { color: var(--muted); font-size: 13.5px; }
.kdocs-feedback button[b-hz258fpb1k] {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    gap: 6px;
    padding: 4px 16px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 999px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.kdocs-feedback button:hover[b-hz258fpb1k] { color: var(--primary); background: var(--primary-soft); border-color: var(--primary); }
.kdocs-feedback-done[b-hz258fpb1k] { color: var(--success); font-size: 13.5px; }
.kdocs-pager[b-hz258fpb1k] { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: min(320px, 100%); margin: 28px 0 0 auto; padding: 15px 18px; border: 1px solid #ececeb; border-radius: 12px; color: inherit; text-decoration: none; }
.kdocs-pager:hover[b-hz258fpb1k] { border-color: #d8d8d6; }
.kdocs-pager-label[b-hz258fpb1k] { display: grid; gap: 3px; text-align: left; }
.kdocs-pager-label small[b-hz258fpb1k] { color: #a0a5a3; font-size: 12px; }
.kdocs-pager-label strong[b-hz258fpb1k] { color: #111; font-size: 15px; }
.kdocs-pager svg[b-hz258fpb1k] { color: #666; }
.kdocs-footer[b-hz258fpb1k] { display: flex; align-items: center; margin: 44px 0 4px; padding-top: 18px; border-top: 1px solid #f2f2f1; }
.kdocs-footer a[b-hz258fpb1k] { color: #9aa0a6; }
.kdocs-footer a:hover[b-hz258fpb1k] { color: #333; }

/* 右侧 TOC */
.kdocs-toc[b-hz258fpb1k] { position: sticky; top: 116px; max-height: calc(100vh - 128px); padding: 26px 24px 48px 12px; overflow-y: auto; scrollbar-width: none; }
.kdocs-toc[b-hz258fpb1k]::-webkit-scrollbar { display: none; }
.kdocs-toc-title[b-hz258fpb1k] { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; color: #55575a; font-size: 13px; }
.kdocs-toc ul[b-hz258fpb1k] { margin: 0; padding: 0; list-style: none; }
.kdocs-toc li[b-hz258fpb1k] { margin: 3px 0; }
.kdocs-toc li.nested[b-hz258fpb1k] { padding-left: 16px; }
.kdocs-toc a[b-hz258fpb1k] { display: inline-block; padding: 4px 0; color: #66686a; font-size: 13px; text-decoration: none; }
.kdocs-toc a:hover[b-hz258fpb1k] { color: #111; }
.kdocs-toc a.active[b-hz258fpb1k] { color: #111; font-weight: 650; }
.kdocs-toc a.active[b-hz258fpb1k]::before { content: "• "; }

/* 模型列表表格 */
.kdocs-table-wrap[b-hz258fpb1k] { margin: 16px 0; overflow-x: auto; border: 1px solid #ececeb; border-radius: 12px; }
.kdocs-table[b-hz258fpb1k] { width: 100%; min-width: 760px; border-collapse: collapse; background: var(--surface); color: #1a1a1a; font-size: 13px; }
.kdocs-table th[b-hz258fpb1k], .kdocs-table td[b-hz258fpb1k] { padding: 11px 14px; border-bottom: 1px solid #f0f0ef; text-align: left; vertical-align: top; line-height: 1.6; }
.kdocs-table th[b-hz258fpb1k] { background: #f7f7f6; color: #66686a; font-size: 12px; font-weight: 650; white-space: nowrap; }
.kdocs-table tbody tr:last-child td[b-hz258fpb1k] { border-bottom: 0; }
.kdocs-table strong[b-hz258fpb1k] { display: block; color: #111; font-size: 13px; }
.kdocs-table td code[b-hz258fpb1k] { display: inline-block; margin-top: 3px; padding: 1px 6px; background: #f4f4f3; border-radius: 5px; color: #55575a; font-size: 11.5px; }
.kdocs-cap-chips[b-hz258fpb1k] { display: flex; flex-wrap: wrap; gap: 4px; }
.kdocs-cap-chips span[b-hz258fpb1k] { padding: 2px 8px; background: #f4f4f3; border-radius: 999px; color: #55575a; font-size: 11.5px; }

/* ===== 既有内容页样式（保留） ===== */
.docs-section[b-hz258fpb1k] { display: grid; gap: 16px; padding: 12px 0 4px; }
.docs-section h2[b-hz258fpb1k] { margin: 0; color: var(--ink); font-size: 24px; letter-spacing: -.01em; }
.docs-lead[b-hz258fpb1k] { max-width: 760px; margin: -3px 0 2px; color: var(--muted); font-size: 13.5px; line-height: 1.8; }
.docs-section-kicker[b-hz258fpb1k] { color: #a0a5a3; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: none; }
.docs-steps[b-hz258fpb1k] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.docs-steps article[b-hz258fpb1k], .docs-feature-card[b-hz258fpb1k], .docs-tool-card[b-hz258fpb1k] { padding: 17px; border: 1px solid #ececeb; border-radius: 12px; background: var(--surface); }
.docs-steps article[b-hz258fpb1k] { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 11px; }
.docs-steps article > b[b-hz258fpb1k] { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: 12px; }
.docs-steps h3[b-hz258fpb1k], .docs-feature-card h3[b-hz258fpb1k], .docs-tool-card h3[b-hz258fpb1k] { margin: 0; color: var(--ink); font-size: 14px; }
.docs-steps p[b-hz258fpb1k], .docs-feature-card p[b-hz258fpb1k], .docs-tool-card p[b-hz258fpb1k] { margin: 7px 0 10px; color: var(--muted); font-size: 12.5px; line-height: 1.65; }
.docs-steps a[b-hz258fpb1k], .docs-feature-card a[b-hz258fpb1k] { display: inline-flex; align-items: center; gap: 5px; color: var(--primary); font-size: 12.5px; text-decoration: none; }
.docs-feature-grid[b-hz258fpb1k] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.docs-feature-card[b-hz258fpb1k] { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 3px 10px; }
.docs-feature-card > svg[b-hz258fpb1k] { grid-row: span 3; margin-top: 2px; color: var(--primary); }
.docs-feature-card p[b-hz258fpb1k], .docs-feature-card a[b-hz258fpb1k] { grid-column: 2; }
.docs-procedure[b-hz258fpb1k] { padding: 16px 18px; border: 1px solid #ececeb; border-radius: 12px; background: #fafaf9; }
.docs-procedure ol[b-hz258fpb1k] { display: grid; gap: 17px; margin: 0; padding-left: 21px; }
.docs-procedure li[b-hz258fpb1k] { padding-left: 5px; color: var(--ink); }
.docs-procedure strong[b-hz258fpb1k], .docs-procedure span[b-hz258fpb1k] { display: block; }
.docs-procedure span[b-hz258fpb1k] { margin-top: 4px; color: var(--muted); font-size: 12.5px; line-height: 1.6; }
.docs-callout[b-hz258fpb1k] { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 12px; background: #f6f6f5; color: #55575a; font-size: 13px; line-height: 1.7; }
.docs-callout svg[b-hz258fpb1k] { flex: none; margin-top: 2px; color: #8a8a88; }
.docs-callout a[b-hz258fpb1k] { color: #2e6be6; }
.docs-reading-grid[b-hz258fpb1k] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.docs-reading-grid > div[b-hz258fpb1k] { padding: 15px 16px; border: 1px solid #ececeb; border-left: 3px solid #2e6be6; border-radius: 12px; background: #fafaf9; }
.docs-reading-grid h3[b-hz258fpb1k] { margin: 0; color: var(--ink); font-size: 13.5px; }
.docs-reading-grid p[b-hz258fpb1k] { margin: 6px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.7; }
.docs-tool-grid[b-hz258fpb1k] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.docs-tool-card[b-hz258fpb1k] { display: grid; gap: 10px; }
.docs-tool-card header[b-hz258fpb1k] { display: flex; align-items: center; gap: 10px; }
.docs-tool-card header small[b-hz258fpb1k] { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.docs-tool-icon[b-hz258fpb1k] { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #f4f4f3; font-size: 17px; }
.docs-tool-card p[b-hz258fpb1k] { margin: 0; min-height: 38px; }
.docs-tool-actions[b-hz258fpb1k] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.docs-tool-note[b-hz258fpb1k] { color: var(--muted); font-size: 11px; }
.docs-api-facts[b-hz258fpb1k] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.docs-api-facts > div[b-hz258fpb1k] { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid #ececeb; border-radius: 10px; }
.docs-api-facts strong[b-hz258fpb1k] { font-size: 12.5px; }
.docs-api-facts code[b-hz258fpb1k] { overflow-wrap: anywhere; font-size: 11px; }
.docs-api-facts span[b-hz258fpb1k], .docs-code-note[b-hz258fpb1k] { color: var(--muted); font-size: 12.5px; line-height: 1.6; }
.docs-subheading[b-hz258fpb1k] { margin: 8px 0 0; color: var(--ink); font-size: 15.5px; }
.docs-code[b-hz258fpb1k] { position: relative; margin: 0; padding: 14px; overflow-x: auto; border: 1px solid #e9e9e7; border-radius: 12px; background: var(--surface); color: #24292f; font-size: 12.5px; line-height: 1.7; }
.docs-code-note[b-hz258fpb1k] { margin: -4px 0 0; }
.docs-error-table-wrap[b-hz258fpb1k] { overflow-x: auto; border: 1px solid #ececeb; border-radius: 12px; }
.docs-error-table[b-hz258fpb1k] { width: 100%; min-width: 680px; border-collapse: collapse; background: var(--surface); color: var(--ink); font-size: 12.5px; }
.docs-error-table th[b-hz258fpb1k], .docs-error-table td[b-hz258fpb1k] { padding: 10px 12px; border-bottom: 1px solid #f0f0ef; text-align: left; vertical-align: top; line-height: 1.55; }
.docs-error-table th[b-hz258fpb1k] { background: #f7f7f6; color: var(--muted); font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.docs-error-table tr:last-child td[b-hz258fpb1k] { border-bottom: 0; }
.docs-error-table td:first-child[b-hz258fpb1k] { width: 120px; white-space: nowrap; }
.docs-error-table td:nth-child(2)[b-hz258fpb1k] { width: 120px; white-space: nowrap; }
.docs-http-status[b-hz258fpb1k] { display: inline-flex; min-width: 34px; justify-content: center; padding: 2px 7px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); font-size: 11px; font-weight: 700; }
.docs-error-table code[b-hz258fpb1k] { font-size: 11px; }
.docs-concept-list[b-hz258fpb1k], .docs-troubleshoot-list[b-hz258fpb1k] { display: grid; gap: 10px; }
.docs-concept-list article[b-hz258fpb1k], .docs-troubleshoot-list article[b-hz258fpb1k] { padding: 13px 15px; border: 1px solid #ececeb; border-radius: 12px; }
.docs-concept-list strong[b-hz258fpb1k], .docs-troubleshoot-list strong[b-hz258fpb1k] { color: var(--ink); font-size: 13.5px; }
.docs-concept-list p[b-hz258fpb1k], .docs-troubleshoot-list p[b-hz258fpb1k] { margin: 5px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.7; }
.docs-guide-meta[b-hz258fpb1k], .docs-downloads[b-hz258fpb1k], .docs-tool-actions[b-hz258fpb1k] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.docs-guide-meta span[b-hz258fpb1k] { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12.5px; }
.docs-checklist[b-hz258fpb1k] { display: grid; gap: 8px; margin: 0; padding-left: 20px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.docs-checklist a[b-hz258fpb1k], .docs-guide-copy a[b-hz258fpb1k] { color: #2e6be6; }
.docs-guide-copy[b-hz258fpb1k] { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.8; }
.docs-guide-copy a[b-hz258fpb1k] { display: inline-flex; align-items: center; gap: 3px; }
.docs-config-line[b-hz258fpb1k] { display: flex; flex-wrap: wrap; gap: 7px; padding: 12px 14px; border: 1px solid #ececeb; border-radius: 10px; }
.docs-config-line code[b-hz258fpb1k] { padding: 3px 6px; border-radius: 5px; background: #f4f4f3; color: var(--ink); font-size: 11px; }
.docs-config-line span[b-hz258fpb1k] { flex-basis: 100%; color: var(--muted); font-size: 12.5px; line-height: 1.6; }
.docs-guide-figure[b-hz258fpb1k] { max-width: 640px; margin: 0; }
.docs-guide-figure img[b-hz258fpb1k] { display: block; max-width: 100%; max-height: 340px; object-fit: contain; border: 1px solid #ececeb; border-radius: 8px; }
.docs-guide-figure figcaption[b-hz258fpb1k] { margin-top: 5px; color: var(--muted); font-size: 11px; }

/* ===== 响应式 ===== */
@media (max-width: 1320px) {
    .kdocs-shell[b-hz258fpb1k], .kdocs-shell-no-toc[b-hz258fpb1k] { grid-template-columns: 244px minmax(0, 1fr); }
    .kdocs-toc[b-hz258fpb1k] { display: none; }
}
@media (max-width: 860px) {
    .kdocs-shell[b-hz258fpb1k], .kdocs-shell-no-toc[b-hz258fpb1k] { display: block; }
    .kdocs-sidebar[b-hz258fpb1k] { position: static; max-height: none; padding: 14px 16px 0; border-right: 0; border-bottom: 1px solid #f2f2f1; }
    .kdocs-nav-group[b-hz258fpb1k] { display: flex; align-items: center; flex-wrap: nowrap; gap: 4px; margin: 0 0 10px; overflow-x: auto; }
    .kdocs-nav-group-label[b-hz258fpb1k] { flex: none; margin: 0 6px 0 0; font-size: 12px; }
    .kdocs-sidebar a[b-hz258fpb1k] { flex: none; margin: 0; padding: 6px 10px; white-space: nowrap; font-size: 12.5px; }
    .kdocs-main[b-hz258fpb1k] { padding: 18px 18px 40px; }
    .kdocs-title-row h1[b-hz258fpb1k] { font-size: 27px; }
    .kdocs-step[b-hz258fpb1k] { grid-template-columns: 30px minmax(0, 1fr); }
    .kdocs-card-grid-2[b-hz258fpb1k], .kdocs-card-grid-3[b-hz258fpb1k] { grid-template-columns: 1fr; }
    .kdocs-steps[b-hz258fpb1k], .docs-tool-grid[b-hz258fpb1k], .docs-api-facts[b-hz258fpb1k] { grid-template-columns: 1fr; }
    .docs-feature-grid[b-hz258fpb1k], .docs-reading-grid[b-hz258fpb1k] { grid-template-columns: 1fr; }
    .kdocs-copy-page span[b-hz258fpb1k] { display: none; }
}
/* /Pages/ModelChat.razor.rz.scp.css */
/* 模型对话工作台（豆包式布局）：左栏会话 + 居中对话列（DxAIChat 主体）。
   令牌全部来自 app.css 根令牌（--line 系），暗色主题由令牌自动镜像。
   注意：DxAIChat 内部元素不带本页 scope 属性，规则一律经锚点 ::deep 下钻；
   本页自身元素（模板内容 chat-reasoning/chat-markdown 等）直接命中。 */

/* 全幅工作台（2026-10-09 定稿；2026-10-14 用户定稿改回控制台框架内）：page-content
   的零 padding 由 MainLayout.razor.css 的 .page-content:has(> .model-chat-page) 负责
   （scoped CSS 无法上溯布局层元素）；页面自身高度 = 视口 - 控制台顶栏（64px），
   滚动收进对话记录区与左栏，页面本身不出滚动条。 */
.model-chat-page[b-an3vx0yfrd]{display:grid;grid-template-columns:minmax(240px,260px) minmax(0,1fr);height:calc(100vh - 64px);min-height:520px;margin:0 auto;background:var(--surface)}
.model-chat-page.sidebar-collapsed[b-an3vx0yfrd]{grid-template-columns:44px minmax(0,1fr)}

/* ---- 左栏（会话边栏）---- */
.chat-side[b-an3vx0yfrd]{display:flex;min-height:0;border-right:1px solid var(--line);background:var(--surface-soft);position:relative}
.chat-side.collapsed[b-an3vx0yfrd]{border-right:1px solid var(--line);background:var(--surface-soft)}
.chat-side-toggle[b-an3vx0yfrd]{position:absolute;right:-13px;top:14px;z-index:3;width:26px;height:26px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);display:grid;place-items:center}
.chat-side-toggle:hover[b-an3vx0yfrd]{color:var(--primary);border-color:var(--primary)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar{display:flex;flex-direction:column;width:100%;min-height:0;padding:0 16px 14px;overflow-y:auto;scrollbar-width:thin}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-header{margin:0 -16px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-tabs{display:grid;grid-template-columns:1fr 1fr;min-height:58px}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-tab{display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-size:.82rem;cursor:pointer}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-tab:hover{color:var(--primary);background:var(--surface-hover)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-tab.active{border-bottom-color:var(--primary);color:var(--primary);font-weight:650}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-runtime{display:grid;gap:8px;padding:14px 10px 0}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-runtime strong{color:var(--text);font-size:.86rem}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-model-picker{position:relative}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-model{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:.8rem;text-align:left;cursor:pointer}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-model:hover,.chat-side[b-an3vx0yfrd]  .chat-sidebar-model-picker.open .chat-sidebar-model{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-model span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-model-picker .chat-model-pop{top:calc(100% + 8px);bottom:auto;left:0;width:100%;z-index:20}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-new{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;border:1px solid var(--primary);border-radius:9px;background:var(--primary);color:#fff;padding:11px;font-weight:650;font-size:.82rem}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-history-heading{display:flex;align-items:center;justify-content:space-between;width:100%;margin:18px 0 7px;padding:7px 2px;border:0;background:transparent;color:var(--text);font-size:.9rem;text-align:left;cursor:pointer}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-history-heading:hover{color:var(--primary);background:var(--surface-hover)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-history-heading span{display:grid;place-items:center;color:var(--primary);font-size:.78rem}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-new:hover{background:var(--primary-hover)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-empty{color:var(--muted);font-size:.74rem;padding:16px 8px;text-align:center}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-group{color:var(--muted);font-size:.66rem;margin:16px 8px 6px;text-transform:uppercase;letter-spacing:.06em}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-history{display:flex;flex-direction:column;gap:1px}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-item{display:flex;align-items:center;border-radius:6px;position:relative}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-item:hover{background:var(--surface-hover)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-item.active{background:var(--primary-soft)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-select{flex:1;min-width:0;border:0;background:transparent;text-align:left;padding:8px 10px;color:var(--text);font-size:.78rem}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-item.active .chat-sidebar-select{color:var(--primary);font-weight:600}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-actions{display:none;gap:2px;padding-right:6px}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-item:hover .chat-sidebar-actions{display:flex}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-icon{border:0;background:transparent;color:var(--muted);padding:3px;border-radius:4px;display:grid;place-items:center}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-icon:hover{color:var(--primary);background:var(--primary-soft)}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-rename{width:100%;border:1px solid var(--primary);border-radius:5px;background:var(--surface);color:var(--text);padding:6px 8px;font-size:.78rem;outline:0}
.chat-side[b-an3vx0yfrd]  .chat-sidebar-foot{margin-top:auto;color:var(--muted);font-size:.66rem;line-height:1.7;padding:12px 8px 4px;border-top:1px solid var(--line)}

/* ---- 主区 ---- */
.chat-main[b-an3vx0yfrd]{display:flex;flex-direction:column;min-width:0;min-height:0}
.chat-topbar[b-an3vx0yfrd]{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line)}
.chat-topbar-model[b-an3vx0yfrd]{display:flex;align-items:center;gap:8px;min-width:0}

/* ---- 模型选择（输入框左下角 chip + 向上弹出下拉，豆包式 2026-10-10 定稿）----
   2026-10-14 布局重排：chip 移入工具条（chat-modebar-inner）内，与场景页签同行。
   2026-10-15 回归修复：chip 从输入框脚部移到顶部工具条后，向上弹出（bottom 定位）
   会穿过 chat-topbar 伸到全局顶栏（z:30 sticky）下面被盖死点不了——改为向下弹出。 */
.chat-composer-picker[b-an3vx0yfrd]{display:block;position:relative;margin-left:auto}
.chat-composer-model[b-an3vx0yfrd]{display:inline-flex;align-items:center;gap:5px;max-width:260px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);padding:7px 10px;font-size:.76rem;font-weight:600;cursor:pointer}
.chat-composer-model:hover[b-an3vx0yfrd]{color:var(--text);background:var(--surface-hover)}
.chat-composer-picker.open .chat-composer-model[b-an3vx0yfrd]{color:var(--primary);background:var(--primary-soft)}
.chat-composer-model-name[b-an3vx0yfrd]{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-composer-model[b-an3vx0yfrd]  svg{transition:transform .15s}
.chat-composer-picker.open .chat-composer-model[b-an3vx0yfrd]  svg{transform:rotate(180deg)}
.chat-model-pop[b-an3vx0yfrd]{position:absolute;left:0;width:300px;max-height:340px;overflow-y:auto;scrollbar-width:thin;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:var(--popover-shadow);padding:5px;z-index:20}
/* 工具条变体：chip 在页面顶部，必须向下弹且右对齐，否则向上弹会伸进全局顶栏底下被盖死。 */
.chat-modebar .chat-model-pop[b-an3vx0yfrd]{top:calc(100% + 8px);bottom:auto;left:auto;right:0}
.chat-model-pop-group[b-an3vx0yfrd]{color:var(--muted);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:8px 9px 4px}
.chat-model-pop-item[b-an3vx0yfrd]{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:6px;background:transparent;color:var(--text);padding:7px 9px;font-size:.78rem;text-align:left;cursor:pointer}
.chat-model-pop-item:hover[b-an3vx0yfrd]{background:var(--surface-hover)}
.chat-model-pop-item.selected[b-an3vx0yfrd]{color:var(--primary);background:var(--primary-soft)}
.chat-model-pop-name[b-an3vx0yfrd]{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.chat-model-pop-item small[b-an3vx0yfrd]{color:var(--muted);font-size:.66rem;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-model-pop-item.selected small[b-an3vx0yfrd]{color:var(--primary)}
.chat-model-pop-empty[b-an3vx0yfrd]{color:var(--muted);font-size:.74rem;padding:14px 10px;text-align:center}
.chat-scenario-chip[b-an3vx0yfrd]{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--primary);border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:4px 6px 4px 10px;font-size:.72rem;font-weight:600;white-space:nowrap}
.chat-scenario-chip-x[b-an3vx0yfrd]{border:0;background:transparent;color:var(--primary);width:16px;height:16px;border-radius:50%;display:grid;place-items:center;padding:0}
.chat-scenario-chip-x:hover[b-an3vx0yfrd]{background:var(--primary);color:#fff}
.chat-topbar-title[b-an3vx0yfrd]{margin-left:auto;color:var(--muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 工具条（2026-10-14 布局重排）：从绝对定位覆盖改为文档流内常驻行——占据自身高度，
   消息区随 flex 收缩，内容不再被盖住；对话记录区自身滚动。 */
.chat-modebar[b-an3vx0yfrd]{display:flex;padding:10px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent)}
.chat-modebar-inner[b-an3vx0yfrd]{display:flex;align-items:center;gap:4px;width:min(100%,1440px);margin:0 auto;overflow-x:auto;scrollbar-width:none}
.chat-modebar-inner[b-an3vx0yfrd]::-webkit-scrollbar{display:none}
.chat-mode-tab[b-an3vx0yfrd]{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 14px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);font-size:.78rem;cursor:pointer;flex:0 0 auto}
.chat-mode-tab:hover[b-an3vx0yfrd]{background:var(--surface-hover);color:var(--text)}
.chat-mode-tab.active[b-an3vx0yfrd]{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:650}
.chat-mode-new[b-an3vx0yfrd]{width:34px;padding-inline:0;justify-content:center}
.chat-mode-divider[b-an3vx0yfrd]{width:1px;height:22px;margin:0 5px;background:var(--line);flex:0 0 auto}
.chat-category-tab[b-an3vx0yfrd]{font-size:.72rem;padding-inline:11px;white-space:nowrap}

/* ---- DxAIChat 主体（DevExpress 渲染，::deep 下钻）---- */
.chat-body[b-an3vx0yfrd]{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;padding:0}
.chat-body[b-an3vx0yfrd]  .pg-dxchat{display:flex;flex:1;flex-direction:column;min-height:0;width:100%;height:100%;overflow:hidden}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-root{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dx-chat{height:100%;background:transparent}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-messages{flex:1;min-height:0;max-width:1440px;margin:0 auto;width:100%;overflow-y:auto;padding:18px 28px 24px}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-container{margin-bottom:14px}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message{border-radius:12px}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-assistant,
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-user{border:0 !important;background:transparent !important;box-shadow:none !important;color:var(--text) !important}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-submitarea{flex:0 0 auto;border-top:1px solid var(--line);background:var(--surface);padding:12px 18px 16px}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-submitarea-container{width:100%;max-width:none;margin:0 auto}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-input{width:100%;min-width:0}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-chat-button{width:34px;height:34px;min-width:34px;border:1px solid var(--primary) !important;border-radius:6px;background:var(--primary) !important;color:#fff !important;box-shadow:none !important}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-chat-button:not(:disabled):hover{border-color:var(--primary-hover) !important;background:var(--primary-hover) !important}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-chat-button:disabled{border-color:var(--line) !important;background:var(--surface-muted) !important;color:var(--muted) !important;opacity:1}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-buttons-container{position:relative;z-index:6;display:flex;align-items:center;gap:8px;width:min(100%,1180px);margin:6px auto 0;padding-left:52px;pointer-events:auto}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-buttons-container .dxbl-chat-message-button{width:30px;height:30px;color:var(--muted);border:1px solid transparent;border-radius:6px;background:transparent}
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-message-buttons-container .dxbl-chat-message-button:hover{color:var(--primary);border-color:var(--line);background:var(--primary-soft)}
/* 空屏问候（EmptyMessageAreaTemplate）居中 */
.chat-body[b-an3vx0yfrd]  .pg-dxchat .dx-chat__empty{display:flex;align-items:center;justify-content:center}

/* ---- 空屏问候（模板内容在本页 render tree 内，直接命中）----
   2026-10-14：hero 图标与大标题已去（左侧菜单已有入口，页面内不重复），保留引导语与场景卡片。 */
.chat-welcome[b-an3vx0yfrd]{display:flex;flex-direction:column;align-items:center;max-width:640px;margin:auto;text-align:center;padding:24px 16px}
.chat-welcome p[b-an3vx0yfrd]{margin:0 0 18px;color:var(--muted);font-size:.8rem}
.chat-welcome[b-an3vx0yfrd]  .chat-scenarios{display:grid;gap:10px;width:min(920px,100%);text-align:left}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-card{display:flex;align-items:flex-start;gap:9px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px;color:var(--text);min-width:0;cursor:pointer}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-card:hover{border-color:var(--primary);background:var(--primary-soft)}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-icon{width:28px;height:28px;border-radius:7px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex-shrink:0}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-copy{display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-copy strong{font-size:.76rem}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-copy small{color:var(--muted);font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-meta{display:flex;align-items:center;gap:4px;min-width:0}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-meta em,.chat-welcome[b-an3vx0yfrd]  .chat-scenario-meta i{font-style:normal;font-size:.59rem;line-height:1.4;padding:1px 5px;border-radius:4px;background:var(--surface-muted);color:var(--muted);white-space:nowrap}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-meta em{color:var(--primary);background:var(--primary-soft);font-weight:650}
.chat-welcome[b-an3vx0yfrd]  .chat-scenario-action{align-self:center;color:var(--primary);font-size:.62rem;font-weight:650;white-space:nowrap}

/* ---- 助手消息（ChatAssistantContent，模板内容直接命中）---- */
.chat-body[b-an3vx0yfrd]  .chat-message{display:flex;flex-direction:column;min-width:0}
.chat-body[b-an3vx0yfrd]  .chat-message-assistant{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(100%,1180px)}
.chat-body[b-an3vx0yfrd]  :is(.chat-assistant-avatar,.chat-user-avatar){width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-size:18px}
.chat-body[b-an3vx0yfrd]  .chat-assistant-avatar{background:color-mix(in srgb,var(--primary) 14%,var(--surface));color:var(--primary-strong)}
.chat-body[b-an3vx0yfrd]  .chat-assistant-header{display:flex;align-items:center;gap:12px;min-width:0;padding-right:4px}
.chat-body[b-an3vx0yfrd]  .chat-assistant-stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--muted);font-size:.7rem;line-height:1.25;white-space:nowrap}
.chat-body[b-an3vx0yfrd]  .chat-assistant-stats .metric-help-trigger{width:22px;height:22px;padding:3px;color:var(--muted);border:1px solid var(--line);border-radius:50%;background:var(--surface)}
.chat-body[b-an3vx0yfrd]  .chat-assistant-column{min-width:0;margin-left:52px}
.chat-body[b-an3vx0yfrd]  .chat-assistant-meta{color:var(--muted);font-size:.75rem;white-space:nowrap}
.chat-body[b-an3vx0yfrd]  .chat-assistant-card{border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);padding:18px 24px}
.chat-body[b-an3vx0yfrd]  .chat-user-row{display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;width:100%}
.chat-body[b-an3vx0yfrd]  .chat-user-bubble{max-width:min(72%,760px);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 4px 14px;padding:12px 18px;box-shadow:var(--shadow-sm)}
.chat-body[b-an3vx0yfrd]  .chat-user-meta{margin-bottom:4px;color:var(--muted);font-size:.7rem;text-align:right}
.chat-body[b-an3vx0yfrd]  .chat-user-avatar{background:var(--surface-muted);color:var(--text)}
.chat-body[b-an3vx0yfrd]  .chat-markdown{font-size:.82rem;line-height:1.7;word-break:break-word}
.chat-body[b-an3vx0yfrd]  .chat-markdown :is(pre,code){background:var(--surface-muted);border-radius:6px}
.chat-body[b-an3vx0yfrd]  .chat-markdown pre{padding:10px;overflow-x:auto}
.chat-body[b-an3vx0yfrd]  .chat-markdown code{padding:1px 5px;font-size:.78rem}
.chat-body[b-an3vx0yfrd]  .chat-user-bubble .chat-markdown,.chat-body[b-an3vx0yfrd]  .chat-user-bubble .chat-markdown p{color:var(--text)}
.chat-body[b-an3vx0yfrd]  .chat-user-bubble .chat-markdown :is(pre,code){color:var(--text);background:var(--surface-muted)}
.chat-body[b-an3vx0yfrd]  .chat-reasoning{margin:0 0 14px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--primary-soft) 60%,var(--surface));overflow:hidden}
.chat-body[b-an3vx0yfrd]  .chat-reasoning summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 16px;color:var(--primary-strong);font-size:.95rem;font-weight:650;cursor:pointer;list-style:none}
.chat-body[b-an3vx0yfrd]  .chat-reasoning summary::marker,.chat-body[b-an3vx0yfrd]  .chat-reasoning summary::-webkit-details-marker{display:none}
.chat-body[b-an3vx0yfrd]  .chat-reasoning summary::after{content:"";flex:1}
.chat-body[b-an3vx0yfrd]  .chat-reasoning summary svg:last-child{color:#9aa9bb}
.chat-body[b-an3vx0yfrd]  .chat-reasoning pre{margin:0;padding:12px 16px 16px;border-top:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));color:var(--muted);font-size:.75rem;line-height:1.6;white-space:pre-wrap;max-height:260px;overflow-y:auto}
.chat-body[b-an3vx0yfrd]  .chat-cursor{display:flex;gap:4px;padding:6px 0}
.chat-body[b-an3vx0yfrd]  .chat-cursor span{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:chat-cursor-blink-b-an3vx0yfrd 1.2s infinite}
.chat-body[b-an3vx0yfrd]  .chat-cursor span:nth-child(2){animation-delay:.2s}
.chat-body[b-an3vx0yfrd]  .chat-cursor span:nth-child(3){animation-delay:.4s}
@keyframes chat-cursor-blink-b-an3vx0yfrd{0%,80%,100%{opacity:.25}40%{opacity:1}}
.chat-body[b-an3vx0yfrd]  .chat-error{display:flex;align-items:center;gap:6px;color:var(--danger);font-size:.74rem;margin-top:6px}
.chat-body[b-an3vx0yfrd]  .chat-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--muted);font-size:.68rem;margin-top:8px;padding-top:6px;border-top:1px solid var(--line-soft,var(--line))}

/* ---- Key 引导弹窗 ---- */
.chat-key-modal p[b-an3vx0yfrd]{margin:0 0 10px;font-size:.82rem}
.chat-key-hint[b-an3vx0yfrd]{color:var(--muted);font-size:.72rem}

/* ---- 响应式 ---- */
@media(max-width:900px){
  .model-chat-page[b-an3vx0yfrd]{grid-template-columns:minmax(0,1fr)}
  .model-chat-page.sidebar-collapsed[b-an3vx0yfrd]{grid-template-columns:minmax(0,1fr)}
  .chat-side[b-an3vx0yfrd]{display:none}
  .chat-welcome[b-an3vx0yfrd]  .chat-scenario-grid{grid-template-columns:1fr}
  .chat-body[b-an3vx0yfrd]{padding:0}
  .chat-modebar[b-an3vx0yfrd]{padding-inline:12px}
  .chat-body[b-an3vx0yfrd]  .pg-dxchat .dxbl-chatui-messages{padding-inline:12px}
}

/* ---- 模型分类栏（2026-10-20 对齐百炼体验中心）：文本/语音/视觉/全模态/向量 ---- */
.model-chat-page[b-an3vx0yfrd]{grid-template-columns:150px minmax(240px,260px) minmax(0,1fr)}
.model-chat-page.sidebar-collapsed[b-an3vx0yfrd]{grid-template-columns:150px 44px minmax(0,1fr)}
.chat-cat-rail[b-an3vx0yfrd]{display:flex;min-height:0;flex-direction:column;gap:4px;padding:14px 10px;border-right:1px solid var(--line);background:var(--surface-soft);overflow-y:auto;scrollbar-width:thin}
.chat-cat-item[b-an3vx0yfrd]{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 12px;color:var(--muted);background:transparent;border:0;border-radius:8px;font:inherit;font-size:.8rem;font-weight:650;text-align:left;cursor:pointer}
.chat-cat-item span[b-an3vx0yfrd]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-cat-item:hover[b-an3vx0yfrd]{color:var(--primary);background:var(--surface-hover)}
.chat-cat-item.active[b-an3vx0yfrd]{color:var(--primary);background:var(--primary-soft)}


/* 分类体验面板（语音/视觉/向量）：隐藏会话栏，内容占满剩余宽度。 */
.model-chat-page.category-panel[b-an3vx0yfrd]{grid-template-columns:150px minmax(0,1fr)}
.model-chat-page.category-panel .chat-side[b-an3vx0yfrd]{display:none}
/* /Pages/ModelEvaluationReport.razor.rz.scp.css */
.report-summary-heading[b-1peeygz70x] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    padding: 22px 24px;
}

.report-summary-actions[b-1peeygz70x] {
    display: flex;
    flex: none;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.report-eyebrow[b-1peeygz70x] { color: var(--muted); font-size: .78rem; }
.report-summary-heading h2[b-1peeygz70x] { margin: 8px 0 5px; color: var(--ink); font-size: 1.3rem; line-height: 1.35; overflow-wrap: anywhere; }
.report-summary-heading p[b-1peeygz70x] { margin: 0; color: var(--muted); font-size: .86rem; }

.report-status[b-1peeygz70x] {
    flex: none;
    padding: 6px 11px;
    border-radius: 999px;
    background: var(--surface-muted);
    color: var(--muted);
    font-size: .8rem;
    font-weight: 700;
}
.report-status.completed[b-1peeygz70x] { background: var(--primary-soft); color: var(--primary-strong); }
.report-status.failed[b-1peeygz70x] { background: color-mix(in srgb, var(--danger) 12%, var(--surface)); color: var(--danger); }

.report-meta[b-1peeygz70x] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 16px 24px;
    border-top: 1px solid var(--line);
    background: var(--surface-soft);
}
.report-meta div[b-1peeygz70x] { min-width: 0; }
.report-meta dt[b-1peeygz70x] { color: var(--muted); font-size: .75rem; }
.report-meta dd[b-1peeygz70x] { margin: 5px 0 0; color: var(--ink); font-size: .86rem; font-weight: 650; overflow-wrap: anywhere; }

/* 报表总览改用 DxGrid + DxGridBandColumn（自带横向滚动），图表样式由 ModelEvaluationReportCharts.razor.css 承载。 */
.report-grid[b-1peeygz70x] { margin: 16px 24px 24px; }
.report-grid[b-1peeygz70x]  .report-name { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; }
.report-grid[b-1peeygz70x]  .report-success { color: var(--danger); font-weight: 750; }
.report-grid[b-1peeygz70x]  .report-total { color: var(--primary); font-weight: 750; }

@media (max-width: 960px) {
    .report-meta[b-1peeygz70x] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .report-summary-heading[b-1peeygz70x] { padding: 18px 16px; }
    .report-summary-actions[b-1peeygz70x] { width: 100%; justify-content: flex-start; }
    .report-meta[b-1peeygz70x] { padding: 15px 16px; }
    .report-grid[b-1peeygz70x] { margin: 12px 16px 18px; }
}
/* /Pages/ModelEvaluations.razor.rz.scp.css */
.evaluation-page[b-qnfm9v6aww] { display: grid; gap: 0; }
/* 页签统一（2026-11-10 全站批次）：upstream-tabs/upstream-tab 全局类接管（下划线式），
   自装 evaluation-view-tabs 与白底条容器样式删除；页签直接坐在画布上（与上游管理同款）。 */
.evaluation-tabs-row[b-qnfm9v6aww] { margin-bottom: 12px; }
@media (max-width: 820px) {
    .evaluation-tabs-row[b-qnfm9v6aww] { width: 100%; }
    .evaluation-tabs-row .upstream-tab[b-qnfm9v6aww] { flex: 1 1 0; }
}

.evaluation-form-body[b-qnfm9v6aww] {
    padding: 0 22px 8px;
}

/* DxTabs 容器：外层留白 + 页签字号与项目风格对齐。 */
.evaluation-tabs[b-qnfm9v6aww] { overflow-x: hidden; overflow-y: hidden; }

/* 三个面板组件的页面级包装：让页面 scoped CSS 的 ::deep 规则可以命中面板内部元素。 */
.evaluation-tab-panel[b-qnfm9v6aww] { animation: evaluation-fade-b-qnfm9v6aww .16s ease-out; display: grid; }

@keyframes evaluation-fade-b-qnfm9v6aww { from { opacity: .65; transform: translateY(3px); } to { opacity: 1; transform: none; } }

/* 评测源 / 广场 / 竞技场结果改为 DxGrid，统一内容区左右留白。 */
[b-qnfm9v6aww] .evaluation-source-grid { margin: 16px 22px 20px; }
[b-qnfm9v6aww] .evaluation-source-grid { max-width: calc(100% - 44px); overflow-x: auto; }
[b-qnfm9v6aww] .source-name-cell { display: grid; gap: 2px; min-width: 0; }
[b-qnfm9v6aww] .source-name-cell strong { color: var(--ink); }
[b-qnfm9v6aww] .source-name-cell small { color: var(--muted); overflow-wrap: anywhere; }
[b-qnfm9v6aww] .source-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
[b-qnfm9v6aww] .platform-key-picker { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .78rem; }
[b-qnfm9v6aww] .platform-key-picker .dxbl-combo-box { min-width: 220px; }

[b-qnfm9v6aww] .status-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; font-size: .72rem; font-weight: 700; }
[b-qnfm9v6aww] .status-pill.ok { background: rgba(34, 197, 94, .12); color: #15803d; }
[b-qnfm9v6aww] .status-pill.muted { background: var(--surface-muted); color: var(--muted); }
[b-qnfm9v6aww] .source-model-preview { display: flex; flex-wrap: wrap; gap: 6px; }
[b-qnfm9v6aww] .source-model-preview span { max-width: 220px; overflow: hidden; padding: 3px 7px; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }

[b-qnfm9v6aww] .arena-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: 16px; padding: 0 22px 16px; }
[b-qnfm9v6aww] .arena-config { align-content: start; padding: 0; }
[b-qnfm9v6aww] .arena-model-picker { display: grid; align-content: start; gap: 10px; min-height: 320px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
[b-qnfm9v6aww] .arena-model-picker header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
[b-qnfm9v6aww] .arena-model-picker header strong { color: var(--ink); }
[b-qnfm9v6aww] .arena-model-picker header span { color: var(--muted); font-size: .78rem; }
/* DxListBox 复选多选列表：限高滚动，字号与项目一致。 */
[b-qnfm9v6aww] .arena-model-listbox { max-height: 360px; }
[b-qnfm9v6aww] .arena-model-listbox .dxbl-listbox-item { font-size: .78rem; }
[b-qnfm9v6aww] .arena-note { display: flex; align-items: center; gap: 7px; margin: 0 22px 20px; padding: 10px 12px; border-radius: 6px; background: var(--surface-soft); color: var(--muted); font-size: .78rem; }
[b-qnfm9v6aww] .quick-test-state { display: flex; align-items: center; gap: 10px; padding: 18px 6px; color: var(--muted); font-size: .82rem; }
[b-qnfm9v6aww] .quick-test-picker { display: grid; gap: 16px; }
[b-qnfm9v6aww] .quick-test-source { display: grid; gap: 4px; padding: 12px; border-radius: 8px; background: var(--surface-soft); }
[b-qnfm9v6aww] .quick-test-source span { color: var(--muted); font-size: .72rem; }
[b-qnfm9v6aww] .quick-test-source strong { color: var(--ink); font-size: .88rem; }
[b-qnfm9v6aww] .quick-test-picker-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
[b-qnfm9v6aww] .quick-test-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
[b-qnfm9v6aww] .quick-test-summary div { display: grid; gap: 4px; padding: 10px; border-radius: 8px; background: var(--surface-soft); }
[b-qnfm9v6aww] .quick-test-summary span { color: var(--muted); font-size: .7rem; }
[b-qnfm9v6aww] .quick-test-summary strong { color: var(--ink); font-size: .78rem; overflow-wrap: anywhere; }
[b-qnfm9v6aww] .quick-test-response { max-height: 320px; margin: 12px 0 0; padding: 12px; border-radius: 8px; background: var(--surface-soft); color: var(--ink); font-size: .76rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; overflow: auto; }
[b-qnfm9v6aww] .arena-results { display: grid; gap: 12px; margin: 0 22px 16px; }
[b-qnfm9v6aww] .arena-results-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
[b-qnfm9v6aww] .arena-results-header strong { color: var(--ink); font-size: .9rem; }
[b-qnfm9v6aww] .arena-results-header span { color: var(--muted); font-size: .76rem; }
[b-qnfm9v6aww] .arena-model-cell { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
[b-qnfm9v6aww] .arena-model-cell strong { color: var(--ink); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[b-qnfm9v6aww] .arena-badge { display: inline-flex; align-items: center; gap: 4px; flex: none; padding: 3px 8px; border-radius: 999px; font-size: .68rem; font-weight: 700; }
[b-qnfm9v6aww] .arena-badge.speed { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
[b-qnfm9v6aww] .arena-badge.throughput { background: color-mix(in srgb, #d78a42 16%, transparent); color: #b06f31; }
[b-qnfm9v6aww] .arena-result-status { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: .78rem; }
[b-qnfm9v6aww] .arena-result-status.failed { align-items: flex-start; color: var(--danger); overflow-wrap: anywhere; }
[b-qnfm9v6aww] .plaza-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 22px 14px; }
[b-qnfm9v6aww] .plaza-summary-grid div { display: grid; gap: 5px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
[b-qnfm9v6aww] .plaza-summary-grid span { color: var(--muted); font-size: .72rem; }
[b-qnfm9v6aww] .plaza-summary-grid strong { color: var(--ink); font-size: 1.15rem; }
[b-qnfm9v6aww] .plaza-mini-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 22px 14px; }
[b-qnfm9v6aww] .plaza-grid { margin: 0 22px 20px; }
[b-qnfm9v6aww] .plaza-group-cell { display: grid; gap: 2px; min-width: 0; }
[b-qnfm9v6aww] .plaza-group-cell strong { color: var(--ink); }
[b-qnfm9v6aww] .plaza-group-cell small { color: var(--muted); }
[b-qnfm9v6aww] .plaza-rate { color: var(--accent); font-weight: 800; }
[b-qnfm9v6aww] .plaza-desc { color: var(--muted); }

@media (max-width: 860px) {
    [b-qnfm9v6aww] .arena-layout { grid-template-columns: 1fr; }
    [b-qnfm9v6aww] .plaza-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    [b-qnfm9v6aww] .arena-layout, [b-qnfm9v6aww] .plaza-grid, [b-qnfm9v6aww] .evaluation-source-grid { margin-right: 14px; margin-left: 14px; padding-right: 0; padding-left: 0; }
    [b-qnfm9v6aww] .arena-note, [b-qnfm9v6aww] .plaza-summary-grid, [b-qnfm9v6aww] .plaza-mini-toolbar { margin-right: 14px; margin-left: 14px; padding-right: 0; padding-left: 0; }
    [b-qnfm9v6aww] .evaluation-source-grid { max-width: calc(100% - 28px); }
}

.evaluation-source-editor[b-qnfm9v6aww] {
    display: grid;
    gap: 16px;
    padding: 2px 2px 4px;
}

.evaluation-source-editor .form-actions[b-qnfm9v6aww] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 14px;
}

.source-modal-intro[b-qnfm9v6aww], .source-modal-toolbar p[b-qnfm9v6aww] {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
}

.source-modal-intro[b-qnfm9v6aww] {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--line));
    border-radius: 10px;
    background: color-mix(in srgb, var(--primary-soft) 62%, var(--surface));
}

.source-modal-intro .source-intro-icon[b-qnfm9v6aww] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: var(--primary);
    border-radius: 8px;
    background: var(--surface);
}

.source-modal-intro strong[b-qnfm9v6aww] {
    display: block;
    margin-bottom: 3px;
    color: var(--ink);
    font-size: .82rem;
}

.source-modal-intro p[b-qnfm9v6aww] {
    margin: 0;
    line-height: 1.55;
}

.source-config-card[b-qnfm9v6aww] {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface);
    box-shadow: 0 2px 8px rgba(18, 28, 24, .04);
}

.source-config-heading[b-qnfm9v6aww] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line-soft);
}

.source-config-kicker[b-qnfm9v6aww] {
    display: block;
    margin-bottom: 3px;
    color: var(--primary);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.source-config-heading h3[b-qnfm9v6aww] {
    margin: 0;
    color: var(--ink);
    font-size: .95rem;
}

.source-config-note[b-qnfm9v6aww] {
    padding-top: 4px;
    color: var(--muted);
    font-size: .72rem;
    text-align: right;
}

.source-form-grid[b-qnfm9v6aww] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.source-form-field[b-qnfm9v6aww] {
    display: grid;
    min-width: 0;
    gap: 6px;
    align-content: start;
}

.source-form-field-wide[b-qnfm9v6aww] {
    grid-column: 1 / -1;
}

.source-form-field > label[b-qnfm9v6aww] {
    color: var(--ink);
    font-size: .76rem;
    font-weight: 650;
}

.source-form-field[b-qnfm9v6aww]  .dxbl-text-edit,
.source-form-field[b-qnfm9v6aww]  .dxbl-combo-box {
    width: 100%;
    min-height: 42px;
    height: 42px;
    box-sizing: border-box;
}

.source-form-field[b-qnfm9v6aww]  .dxbl-text-edit input,
.source-form-field[b-qnfm9v6aww]  .dxbl-combo-box input {
    height: 40px;
    box-sizing: border-box;
}

.source-form-field[b-qnfm9v6aww]  .dxbl-combo-box .dxbl-dropdown-button,
.source-form-field[b-qnfm9v6aww]  .dxbl-combo-box .dxbl-edit-btn-dropdown {
    height: 40px;
}

.source-enabled-card[b-qnfm9v6aww] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 15px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-soft);
    cursor: pointer;
}

.source-enabled-card:hover[b-qnfm9v6aww] {
    border-color: color-mix(in srgb, var(--primary) 38%, var(--line));
    background: var(--surface-hover);
}

.source-enabled-copy[b-qnfm9v6aww] {
    display: grid;
    gap: 3px;
}

.source-enabled-copy strong[b-qnfm9v6aww] {
    color: var(--ink);
    font-size: .8rem;
}

.source-enabled-copy small[b-qnfm9v6aww] {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.45;
}

.source-enabled-card[b-qnfm9v6aww]  .dxbl-checkbox {
    flex: 0 0 auto;
}

.source-modal-toolbar[b-qnfm9v6aww] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.source-modal-toolbar p[b-qnfm9v6aww] { margin: 0; }

.source-modal-list[b-qnfm9v6aww] { display: grid; gap: 8px; margin-top: 15px; }
.source-modal-item[b-qnfm9v6aww] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}
.source-modal-copy[b-qnfm9v6aww] { display: flex; flex-wrap: wrap; min-width: 0; align-items: center; gap: 6px 10px; }
.source-modal-copy strong[b-qnfm9v6aww] { color: var(--ink); }
.source-modal-copy small[b-qnfm9v6aww] { flex: 0 0 100%; color: var(--muted); overflow-wrap: anywhere; }
.source-modal-actions[b-qnfm9v6aww] { display: flex; flex: none; align-items: center; gap: 4px; }

.field-hint[b-qnfm9v6aww] {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: .72rem;
}

.model-picker-row[b-qnfm9v6aww] { display: flex; align-items: center; gap: 8px; }
.model-picker-row[b-qnfm9v6aww]  .model-picker-combo { flex: 1 1 auto; min-width: 0; }

.evaluation-progress[b-qnfm9v6aww] {
    display: grid;
    gap: 12px;
    padding: 6px 2px;
}
.evaluation-progress > button[b-qnfm9v6aww] { justify-self: end; }

.evaluation-progress-copy[b-qnfm9v6aww] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--ink);
    font-size: .82rem;
}

/* 进度弹窗实时统计卡片（对齐 Python 版 live-stats）。 */
.evaluation-progress-stats[b-qnfm9v6aww] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}
.evaluation-progress-stats div[b-qnfm9v6aww] {
    display: grid;
    gap: 5px;
    padding: 11px 13px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface-soft);
}
.evaluation-progress-stats span[b-qnfm9v6aww] {
    color: var(--muted);
    font-size: .7rem;
}
.evaluation-progress-stats strong[b-qnfm9v6aww] {
    color: var(--ink);
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}
.evaluation-progress-stats strong.ok[b-qnfm9v6aww] { color: var(--primary); }
.evaluation-progress-stats strong.danger[b-qnfm9v6aww] { color: var(--danger); }

.evaluation-progress small[b-qnfm9v6aww] {
    color: var(--muted);
    font-size: .72rem;
}

.selection-hint[b-qnfm9v6aww] { color: var(--muted); font-size: .78rem; }

/* 测试内容预览卡片（对齐 Python 版 message-block 样式）。 */
.evaluation-prompt-preview[b-qnfm9v6aww] {
    display: grid;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    box-shadow: 0 1px 3px rgba(18, 28, 24, .05);
}
.evaluation-prompt-preview header[b-qnfm9v6aww] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.evaluation-prompt-preview header strong[b-qnfm9v6aww] { color: var(--ink); font-size: .84rem; }
.evaluation-prompt-preview header span[b-qnfm9v6aww] { color: var(--muted); font-size: .72rem; }

.evaluation-prompt-preview .message-block[b-qnfm9v6aww] {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    overflow: hidden;
}
.evaluation-prompt-preview .role-bar[b-qnfm9v6aww] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border-bottom: 1px solid var(--line-soft);
    background: var(--surface-muted);
}
.evaluation-prompt-preview .role-tag[b-qnfm9v6aww] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .03em;
}
.evaluation-prompt-preview .role-tag.user[b-qnfm9v6aww] {
    color: var(--primary);
    background: var(--primary-soft);
}
.evaluation-prompt-preview pre.content[b-qnfm9v6aww] {
    margin: 0;
    padding: 12px 13px;
    max-height: 240px;
    overflow: auto;
    color: var(--ink);
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: .76rem;
    line-height: 1.65;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
@media (max-width: 720px) {
    .evaluation-prompt-preview .role-tag[b-qnfm9v6aww] { font-size: .64rem; }
    .evaluation-prompt-preview pre.content[b-qnfm9v6aww] { max-height: 180px; }
}
.comparison-intro[b-qnfm9v6aww] { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; color: var(--muted); font-size: .8rem; }
.comparison-intro strong[b-qnfm9v6aww] { color: var(--ink); }
.comparison-kpis[b-qnfm9v6aww] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.comparison-kpis div[b-qnfm9v6aww] { display: grid; gap: 5px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); }
.comparison-kpis span[b-qnfm9v6aww] { color: var(--muted); font-size: .72rem; }
.comparison-kpis strong[b-qnfm9v6aww] { color: var(--ink); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.comparison-grid[b-qnfm9v6aww]  .comparison-name { max-width: 200px; display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.comparison-explain[b-qnfm9v6aww] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.comparison-explain div[b-qnfm9v6aww] { display: grid; gap: 5px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); }
.comparison-explain strong[b-qnfm9v6aww] { color: var(--ink); font-size: .8rem; }
.comparison-explain span[b-qnfm9v6aww] { color: var(--muted); font-size: .76rem; line-height: 1.55; }
.comparison-trends[b-qnfm9v6aww] { display: grid; gap: 8px; margin-top: 16px; }
.comparison-trends h3[b-qnfm9v6aww] { margin: 0 0 3px; color: var(--ink); font-size: .86rem; }
.trend-row[b-qnfm9v6aww] { display: grid; grid-template-columns: 72px 36px minmax(80px, 1fr) 58px 36px minmax(80px, 1fr) 70px; align-items: center; gap: 7px; font-size: .74rem; }
.trend-row strong[b-qnfm9v6aww] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trend-label[b-qnfm9v6aww] { color: var(--muted); }
.trend-row b[b-qnfm9v6aww] { color: var(--ink); font-variant-numeric: tabular-nums; }
/* DxProgressBar 迷你条形：压扁高度；P95 延迟条沿用橙色反色方案。 */
.trend-row[b-qnfm9v6aww]  .trend-track .progress { height: 7px; }
.trend-row[b-qnfm9v6aww]  .trend-inverse .progress-bar { background-color: #d78a42; }
.comparison-analysis[b-qnfm9v6aww] { display: grid; grid-template-columns: 1fr auto; gap: 10px 16px; align-items: center; margin-top: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); }
.comparison-analysis div[b-qnfm9v6aww] { display: grid; gap: 4px; }
.comparison-analysis strong[b-qnfm9v6aww] { color: var(--ink); font-size: .8rem; }
.comparison-analysis span[b-qnfm9v6aww], .comparison-analysis p[b-qnfm9v6aww] { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.comparison-analysis p[b-qnfm9v6aww] { grid-column: 1 / -1; color: var(--ink); }
.comparison-analysis-controls[b-qnfm9v6aww] { display: flex; align-items: center; gap: 8px; grid-column: 2; grid-row: 1; }
.comparison-analysis-controls[b-qnfm9v6aww]  .analysis-combo { max-width: 180px; }
.comparison-analysis-controls + p[b-qnfm9v6aww] { grid-column: 1 / -1; }
.comparison-details[b-qnfm9v6aww] { display: grid; gap: 10px; margin-top: 24px; }
.comparison-details-heading[b-qnfm9v6aww] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.comparison-details-heading h3[b-qnfm9v6aww] { margin: 0; color: var(--ink); font-size: .86rem; }
.comparison-details-heading span[b-qnfm9v6aww] { color: var(--muted); font-size: .72rem; }
.comparison-history-item[b-qnfm9v6aww] { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.comparison-details header[b-qnfm9v6aww] { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: var(--surface-soft); }
.comparison-history-toggle[b-qnfm9v6aww] { display: inline-flex; min-width: 0; align-items: center; gap: 7px; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.comparison-history-toggle strong[b-qnfm9v6aww] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .8rem; }
.comparison-history-toggle svg[b-qnfm9v6aww] { flex: none; color: var(--muted); }
.comparison-history-status[b-qnfm9v6aww] { flex: none; color: var(--muted); font-size: .72rem; }
.comparison-history-item.expanded header[b-qnfm9v6aww] { border-bottom: 1px solid var(--line); }
.detail-grid[b-qnfm9v6aww] { margin: 10px 12px 12px; }
.detail-preview[b-qnfm9v6aww] { max-width: 280px; overflow: hidden; display: inline-block; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.detail-empty[b-qnfm9v6aww] { margin: 0; padding: 12px; color: var(--muted); font-size: .76rem; }

@media (max-width: 560px) {
    .evaluation-tabs-row[b-qnfm9v6aww] { align-items: stretch; flex-direction: column; }
    .evaluation-tabs-row[b-qnfm9v6aww] >  .dxbl-btn { align-self: flex-start; }
    .evaluation-form-body[b-qnfm9v6aww] {
        padding-left: 15px;
        padding-right: 15px;
    }

    .source-modal-toolbar[b-qnfm9v6aww], .source-modal-item[b-qnfm9v6aww], .comparison-intro[b-qnfm9v6aww] { align-items: flex-start; flex-direction: column; }
    .source-modal-actions[b-qnfm9v6aww] { align-self: flex-end; }
    .comparison-kpis[b-qnfm9v6aww] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .comparison-explain[b-qnfm9v6aww] { grid-template-columns: 1fr; }
    .trend-row[b-qnfm9v6aww] { grid-template-columns: 55px 30px minmax(60px, 1fr) 48px 30px minmax(60px, 1fr) 58px; }
}
/* /Pages/ModelMarket.razor.rz.scp.css */
/* 模型市场（用户侧 SKU 橱窗）：视觉口径沿用模型广场 —— 匿名站外壳 + 卡片栅格。 */

.market-public-nav[b-1pk5pri28h] {
    position: sticky;
    z-index: 30;
    top: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    background: color-mix(in srgb, var(--surface) 88%, transparent);
    backdrop-filter: blur(18px);
}

.market-public-nav-inner[b-1pk5pri28h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 1280px;
    min-height: 64px;
    margin: 0 auto;
    padding: 10px 24px;
}

.market-public-brand[b-1pk5pri28h] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
    color: var(--ink);
    text-decoration: none;
}

.market-public-brand strong[b-1pk5pri28h] {
    overflow: hidden;
    font-size: 1rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.market-logo-frame[b-1pk5pri28h] {
    display: grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 2px 8px rgba(20, 35, 29, .06);
}

.market-logo-frame img[b-1pk5pri28h] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.market-logo-frame[b-1pk5pri28h]  .brand-logo {
    width: 31px;
    height: 31px;
}

.market-nav-action[b-1pk5pri28h] {
    flex: 0 0 auto;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
    color: var(--ink);
    font-size: .8rem;
    font-weight: 650;
    text-decoration: none;
    transition: background-color .14s ease, border-color .14s ease;
}

.market-nav-action:hover[b-1pk5pri28h] {
    border-color: color-mix(in srgb, var(--ink) 24%, var(--line));
    background: var(--surface-hover);
}

.model-market-page.standalone[b-1pk5pri28h] {
    max-width: 1280px;
    min-height: calc(100vh - 64px);
    margin: 0 auto;
    padding: 28px 24px 48px;
}

.model-market-page[b-1pk5pri28h] {
    display: grid;
    gap: 18px;
    align-content: start;
}

.market-title h1[b-1pk5pri28h] {
    margin: 0;
    font-size: clamp(1.55rem, 3vw, 1.9rem);
    font-weight: 760;
    letter-spacing: -.025em;
}

.market-title p[b-1pk5pri28h] {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .88rem;
}

.market-anonymous-hint[b-1pk5pri28h] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: -6px 0 0;
    color: var(--muted);
    font-size: .74rem;
}

.market-loading[b-1pk5pri28h] {
    display: grid;
    min-height: 240px;
    place-items: center;
}

.market-loading .spinner[b-1pk5pri28h] {
    width: 32px;
    height: 32px;
}

.market-error[b-1pk5pri28h],
.market-empty[b-1pk5pri28h] {
    padding: 42px 20px;
    border: 1px dashed var(--line);
    border-radius: 14px;
    color: var(--muted);
    text-align: center;
}

.market-error[b-1pk5pri28h] {
    border-style: solid;
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
    background: color-mix(in srgb, var(--danger) 7%, transparent);
    color: var(--danger);
}

.market-toolbar[b-1pk5pri28h] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.market-search[b-1pk5pri28h] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: min(320px, 100%);
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: color-mix(in srgb, var(--surface) 90%, transparent);
    color: var(--muted);
}

.market-search input[b-1pk5pri28h] {
    flex: 1;
    min-width: 0;
    min-height: 38px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: .85rem;
    outline: none;
}

.market-search input[b-1pk5pri28h]::placeholder {
    color: var(--muted);
}

.market-search button[b-1pk5pri28h] {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.market-search button:hover[b-1pk5pri28h] {
    background: var(--surface-hover);
    color: var(--ink);
}

.market-filter-options[b-1pk5pri28h] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.filter-chip[b-1pk5pri28h] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 5px 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: color-mix(in srgb, var(--surface) 86%, transparent);
    color: var(--muted);
    font-size: .8rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}

.filter-chip:not(:disabled):hover[b-1pk5pri28h] {
    border-color: color-mix(in srgb, var(--ink) 22%, var(--line));
    background: var(--surface-hover);
    color: var(--ink);
    transform: translateY(-1px);
}

.filter-chip.active[b-1pk5pri28h] {
    border-color: transparent;
    background: var(--primary);
    box-shadow: none;
    color: #fff;
}

.market-card-list[b-1pk5pri28h] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px;
}

.market-card[b-1pk5pri28h] {
    display: grid;
    gap: 12px;
    align-content: start;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--surface) 93%, transparent);
    box-shadow: 0 5px 18px rgba(25, 42, 35, .035);
}

.market-card-header[b-1pk5pri28h] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.market-card-identity[b-1pk5pri28h] {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.market-card-identity strong[b-1pk5pri28h] {
    overflow-wrap: anywhere;
    font-size: .95rem;
    font-weight: 700;
}

.market-card-identity code[b-1pk5pri28h] {
    overflow-wrap: anywhere;
    padding: 2px 6px;
    border-radius: 5px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: .74rem;
}

.market-sku-no[b-1pk5pri28h] {
    flex: 0 0 auto;
    padding: 2px 7px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 600;
    white-space: nowrap;
}

.market-card-description[b-1pk5pri28h] {
    margin: 0;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.market-capabilities[b-1pk5pri28h] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.market-capability[b-1pk5pri28h] {
    padding: 3px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 9%, transparent);
    color: color-mix(in srgb, var(--primary) 78%, var(--ink));
    font-size: .68rem;
    font-weight: 650;
}

.market-pricing[b-1pk5pri28h] {
    display: grid;
    gap: 7px;
    padding-top: 12px;
    border-top: 1px dashed color-mix(in srgb, var(--line) 85%, transparent);
}

.market-price-row[b-1pk5pri28h] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    font-size: .8rem;
}

.market-price-row span[b-1pk5pri28h] {
    color: var(--muted);
}

.market-price-row b[b-1pk5pri28h] {
    font-size: .86rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.market-price-row.muted small[b-1pk5pri28h] {
    color: var(--muted);
    font-size: .72rem;
    text-align: right;
}

@media (max-width: 640px) {
    .market-toolbar[b-1pk5pri28h] {
        align-items: stretch;
        flex-direction: column;
    }

    .market-search[b-1pk5pri28h] {
        min-width: 0;
    }
}
/* /Pages/ModelPlaza.razor.rz.scp.css */
/* 模型广场（用户侧 SKU 目录）：匿名站外壳 + 分类页签 + 列表/卡片双视图。 */

.market-public-nav[b-acixta5edc] {
    position: sticky;
    z-index: 30;
    top: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    background: color-mix(in srgb, var(--surface) 88%, transparent);
    backdrop-filter: blur(18px);
}

.market-public-nav-inner[b-acixta5edc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 1280px;
    min-height: 64px;
    margin: 0 auto;
    padding: 10px 24px;
}

.market-public-brand[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
    color: var(--ink);
    text-decoration: none;
}

.market-public-brand strong[b-acixta5edc] {
    overflow: hidden;
    font-size: 1rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.market-logo-frame[b-acixta5edc] {
    display: grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 2px 8px rgba(20, 35, 29, .06);
}

.market-logo-frame img[b-acixta5edc] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.market-logo-frame[b-acixta5edc]  .brand-logo {
    width: 31px;
    height: 31px;
}

.market-nav-action[b-acixta5edc] {
    flex: 0 0 auto;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
    color: var(--ink);
    font-size: .8rem;
    font-weight: 650;
    text-decoration: none;
    transition: background-color .14s ease, border-color .14s ease;
}

.market-nav-action:hover[b-acixta5edc] {
    border-color: color-mix(in srgb, var(--ink) 24%, var(--line));
    background: var(--surface-hover);
}

.model-market-page.standalone[b-acixta5edc] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    max-width: 1440px;
    min-height: calc(100vh - 64px);
    margin: 0 auto;
    padding: 0;
}

.model-market-page[b-acixta5edc] {
    display: grid;
    /* minmax(0,1fr)：grid 子项 min-width:auto 会把隐式列撑到内容宽度（386px > 358px 容器），
       移动端 390px 视口下整页横向溢出 12px（2026-10-11 T4 视觉测试发现）。 */
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    align-content: start;
}
.market-side-nav[b-acixta5edc] { display: flex; flex-direction: column; gap: 5px; min-height: calc(100vh - 64px); padding: 24px 14px; border-right: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 92%, var(--surface-muted)); }
.market-side-title[b-acixta5edc] { display: flex; align-items: center; gap: 9px; padding: 4px 12px 24px; color: var(--ink); }
.market-side-mark[b-acixta5edc] { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: var(--primary); color: white; }
.market-side-mark[b-acixta5edc]  .brand-logo { width: 21px; height: 21px; filter: brightness(0) invert(1); }
.market-side-item[b-acixta5edc] { display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 12px; border-radius: 10px; color: var(--muted); font-size: .8rem; text-decoration: none; }
.market-side-item:hover[b-acixta5edc] { background: var(--surface-hover); color: var(--ink); }
.market-side-item.active[b-acixta5edc] { background: color-mix(in srgb, var(--primary) 12%, var(--surface)); color: var(--primary); font-weight: 700; }
.market-side-section[b-acixta5edc] { margin: 20px 12px 4px; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.market-main-column[b-acixta5edc] { display: grid; min-width: 0; gap: 28px; padding: 0 48px 56px; }
.model-market-page.standalone[b-acixta5edc] { grid-template-columns: minmax(0, 1fr); }
.market-hero[b-acixta5edc] { position: relative; display: grid; min-height: 280px; place-items: center; overflow: hidden; margin: 0 -48px 34px; border-bottom: 1px solid var(--line); background: #f7f9ff; }
.market-hero-copy[b-acixta5edc] { position: relative; z-index: 2; text-align: center; }
.market-hero-kicker[b-acixta5edc] { color: var(--primary); font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.market-hero h1[b-acixta5edc] { margin: 12px 0 7px; color: #172033; font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 780; letter-spacing: -.04em; }
.market-hero p[b-acixta5edc] { margin: 0; color: #748097; font-size: 1rem; }
.market-hero-panel[b-acixta5edc] { position: absolute; right: 11%; bottom: 24px; z-index: 1; display: grid; gap: 4px; padding: 13px 18px; border: 1px solid rgba(92, 112, 190, .18); border-radius: 12px; background: rgba(255,255,255,.8); box-shadow: 0 12px 34px rgba(74, 93, 145, .12); color: #435070; font-size: .72rem; }
.market-hero-panel strong[b-acixta5edc] { color: #202a45; font-size: .82rem; }
.market-hero-orbit[b-acixta5edc] { position: absolute; border: 1px solid rgba(100, 120, 220, .18); border-radius: 50%; }
.market-hero-orbit span[b-acixta5edc] { display: block; width: 34px; height: 34px; margin: 20px; border-radius: 10px; background: var(--primary); opacity: .82; box-shadow: 0 8px 18px rgba(73, 94, 201, .28); }
.orbit-one[b-acixta5edc] { width: 160px; height: 160px; left: 16%; top: 28px; transform: rotate(24deg); }
.orbit-two[b-acixta5edc] { width: 120px; height: 120px; right: 18%; top: 70px; transform: rotate(-18deg); }

.market-title h1[b-acixta5edc] {
    margin: 0;
    font-size: clamp(1.55rem, 3vw, 1.9rem);
    font-weight: 760;
    letter-spacing: -.025em;
}

.market-title p[b-acixta5edc] {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .88rem;
}

.market-anonymous-hint[b-acixta5edc] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: -6px 0 0;
    color: var(--muted);
    font-size: .74rem;
}

.market-loading[b-acixta5edc] {
    display: grid;
    min-height: 240px;
    place-items: center;
}

.market-loading .spinner[b-acixta5edc] {
    width: 32px;
    height: 32px;
}

.market-error[b-acixta5edc],
.market-empty[b-acixta5edc] {
    padding: 42px 20px;
    border: 1px dashed var(--line);
    border-radius: 14px;
    color: var(--muted);
    text-align: center;
}

.market-error[b-acixta5edc] {
    border-style: solid;
    border-color: color-mix(in srgb, var(--danger) 30%, transparent);
    background: color-mix(in srgb, var(--danger) 7%, transparent);
    color: var(--danger);
}

.market-toolbar[b-acixta5edc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
}

.market-search[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: min(320px, 100%);
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: color-mix(in srgb, var(--surface) 90%, transparent);
    color: var(--muted);
}

.market-search input[b-acixta5edc] {
    flex: 1;
    min-width: 0;
    min-height: 38px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: .85rem;
    outline: none;
}

.market-search input[b-acixta5edc]::placeholder {
    color: var(--muted);
}

.market-search button[b-acixta5edc] {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.market-search button:hover[b-acixta5edc] {
    background: var(--surface-hover);
    color: var(--ink);
}

/* 分类页签：全部/多模态/图像生成/向量嵌入/语音/视频生成，括号内为数量。
   与搜索框同行（紧挨搜索框右侧），宽屏不换行、窄屏自动折到下一行。 */
.market-tabs[b-acixta5edc] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
}

.market-tab .market-tab-count[b-acixta5edc] {
    margin-left: 1px;
    opacity: .72;
    font-size: .74rem;
    font-weight: 650;
}
.market-sort-control[b-acixta5edc] { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; color: var(--muted); font-size: .78rem; }
.market-sort-control select[b-acixta5edc] { min-height: 34px; padding: 0 28px 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font-size: .78rem; }

/* 视图切换：列表 / 卡片两个图标按钮，靠工具栏右端；偏好持久化到 localStorage。 */
.market-view-toggle[b-acixta5edc] {
    display: inline-flex;
    gap: 2px;
    margin-left: auto;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: color-mix(in srgb, var(--surface) 86%, transparent);
}

.market-view-button[b-acixta5edc] {
    display: grid;
    width: 32px;
    height: 30px;
    place-items: center;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.market-view-button:hover[b-acixta5edc] {
    background: var(--surface-hover);
    color: var(--ink);
}

.market-view-button.active[b-acixta5edc] {
    background: var(--surface-muted);
    color: var(--ink);
}

.market-compare-button[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
    color: var(--ink);
    font-size: .8rem;
    font-weight: 650;
    cursor: pointer;
}
.market-compare-button:disabled[b-acixta5edc] { opacity: .45; cursor: not-allowed; }
.market-compare-count[b-acixta5edc] { min-width: 18px; padding: 1px 5px; border-radius: 999px; background: var(--primary); color: white; font-size: .7rem; text-align: center; }
.market-card[b-acixta5edc] { position: relative; }
.market-card-select[b-acixta5edc] { position: absolute; top: 13px; right: 13px; display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: .72rem; cursor: pointer; }
.market-card-select input[b-acixta5edc] { accent-color: var(--primary); }

.model-compare-shell[b-acixta5edc] { display: grid; grid-template-columns: 196px minmax(0, 1fr); max-width: 1440px; min-height: calc(100vh - 64px); margin: 0 auto; }
.model-compare-page[b-acixta5edc] { min-width: 0; padding: 34px 48px 56px; }
.model-compare-header[b-acixta5edc] { display: grid; gap: 18px; margin-bottom: 24px; }
.model-compare-back[b-acixta5edc] { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: var(--muted); font-size: .82rem; text-decoration: none; }
.model-compare-header h1[b-acixta5edc] { margin: 0; font-size: 1.7rem; }
.model-compare-header p[b-acixta5edc] { margin: 6px 0 0; color: var(--muted); font-size: .86rem; }
.model-compare-table-wrap[b-acixta5edc] { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.model-compare-table[b-acixta5edc] { width: 100%; min-width: 780px; border-collapse: collapse; font-size: .82rem; }
.model-compare-table th[b-acixta5edc], .model-compare-table td[b-acixta5edc] { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.model-compare-table thead th[b-acixta5edc] { background: var(--surface-muted); }
.model-compare-table thead th:first-child[b-acixta5edc], .model-compare-table tbody th[b-acixta5edc] { width: 150px; color: var(--muted); font-weight: 650; }
.model-compare-table thead strong[b-acixta5edc], .model-compare-table thead small[b-acixta5edc] { display: block; }
.model-compare-table thead small[b-acixta5edc] { margin-top: 4px; color: var(--muted); font-weight: 500; }
.model-compare-table tbody tr:last-child th[b-acixta5edc], .model-compare-table tbody tr:last-child td[b-acixta5edc] { border-bottom: 0; }
.model-compare-tags[b-acixta5edc] { display: flex; flex-wrap: wrap; gap: 5px; }
.model-compare-tags span[b-acixta5edc] { padding: 3px 7px; border-radius: 999px; background: var(--surface-muted); color: var(--muted); font-size: .72rem; }
.model-compare-table th:first-child[b-acixta5edc] { position: sticky; left: 0; z-index: 2; background: var(--surface-muted); }
.model-compare-table tbody th[b-acixta5edc] { background: var(--surface); }

@media (max-width: 720px) {
    .model-market-page.standalone[b-acixta5edc] { display: block; }
    .market-main-column[b-acixta5edc] { padding: 0 14px 36px; }
    .market-hero[b-acixta5edc] { min-height: 220px; margin: 0 -14px 24px; }
    .market-hero-panel[b-acixta5edc] { right: 8%; bottom: 16px; }
    .market-toolbar[b-acixta5edc] { align-items: stretch; }
    .market-search[b-acixta5edc] { width: 100%; min-width: 0; }
    .market-tabs[b-acixta5edc] { order: 3; width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }
    .market-tab[b-acixta5edc] { flex: 0 0 auto; }
    .market-view-toggle[b-acixta5edc] { margin-left: 0; }
    .market-sort-control[b-acixta5edc] { margin-left: 0; }
    .market-compare-button[b-acixta5edc] { margin-left: auto; }
    .model-compare-page[b-acixta5edc] { padding: 22px 14px 40px; }
    .model-compare-shell[b-acixta5edc] { display: block; }
    .model-compare-shell .market-side-nav[b-acixta5edc] { display: none; }
}

/* 模态徽章：列表「模态」列与卡片头共用；文案来自后端模态字典（可自定义）。 */
.market-modality-badge[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 8%, transparent);
    color: var(--primary);
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}

.filter-chip[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 5px 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: color-mix(in srgb, var(--surface) 86%, transparent);
    color: var(--muted);
    font-size: .8rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}

.filter-chip:not(:disabled):hover[b-acixta5edc] {
    border-color: color-mix(in srgb, var(--ink) 22%, var(--line));
    background: var(--surface-hover);
    color: var(--ink);
    transform: translateY(-1px);
}

.filter-chip.active[b-acixta5edc] {
    border-color: transparent;
    background: var(--primary);
    box-shadow: none;
    color: #fff;
}

/* DxGrid 外观对齐【模型评测 · 模型价格】页签：网格自带排序/拖宽，容器只管横向滚动。 */
.market-model-grid[b-acixta5edc] {
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 12px;
    background: var(--surface);
}

/* 八列最小宽度之和约 1110px：容器放不下时整表横向滚动，保证右侧价格列可见。 */
.market-model-grid[b-acixta5edc]  .dxbl-grid {
    min-width: 1150px;
}

/* ---- 卡片视图：固定字段（图标+名称+上下文 / 模态徽章 / 能力标签前2+N / 输入输出价）。 ---- */
.market-cards[b-acixta5edc] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.market-card[b-acixta5edc] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: 100%;
    min-height: 210px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 12px;
    background: var(--surface);
}

.market-card:hover[b-acixta5edc] {
    border-color: color-mix(in srgb, var(--primary) 32%, var(--line));
}

.market-card-head[b-acixta5edc] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.market-card-modality[b-acixta5edc] {
    display: flex;
    align-items: center;
    min-height: 24px;
    padding-top: 1px;
}

.market-card-title[b-acixta5edc] {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.market-card-title strong[b-acixta5edc] {
    overflow: hidden;
    font-size: .86rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.market-card-title small[b-acixta5edc] {
    color: var(--muted);
    font-size: .68rem;
}
.market-card-description[b-acixta5edc] { display: -webkit-box; min-height: 42px; margin: 0; overflow: hidden; color: var(--muted); font-size: .76rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.market-card-actions[b-acixta5edc] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 9px; border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent); color: var(--muted); font-size: .7rem; }
.market-card-actions a[b-acixta5edc] { display: inline-flex; align-items: center; gap: 3px; color: var(--primary); font-weight: 650; text-decoration: none; }

/* 需求 #8 可用性联动：全部上游通道探活失败的产品在名称旁挂「不可用」角标（2026-10-15）。
   角标贴在名称行内，弱化视觉但一眼可见。 */
.market-card-unavailable[b-acixta5edc] {
    width: fit-content;
    margin-top: 3px;
}

.market-card .market-capability-tags[b-acixta5edc] {
    max-width: 100%;
}

.market-card-prices[b-acixta5edc] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px dashed color-mix(in srgb, var(--line) 70%, transparent);
}

.market-card-price[b-acixta5edc] {
    display: flex;
    flex: 1;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
}

.market-card-price:nth-child(n + 3)[b-acixta5edc] {
    padding-top: 2px;
}

.market-card-price small[b-acixta5edc] {
    color: var(--muted);
    font-size: .68rem;
}

.market-card-price strong[b-acixta5edc] {
    overflow: hidden;
    font-size: .82rem;
    font-variant-numeric: tabular-nums;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.market-model-name[b-acixta5edc] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.market-model-name strong[b-acixta5edc] {
    overflow: hidden;
    font-size: .86rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 厂商/产品图标：缺省回退品牌标（BrandMark），仅装饰——模型名就在旁边。 */
.market-model-icon[b-acixta5edc] {
    display: block;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    object-fit: contain;
    border-radius: 7px;
}

.market-model-icon-fallback[b-acixta5edc] {
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    background: var(--surface-soft);
}

.market-model-icon-fallback[b-acixta5edc]  .brand-logo {
    width: 19px;
    height: 19px;
}

/* 价格单元格：单位在列头，格内只放数字；「起」/「（1h …）」补充以小字缀在数字后。 */
.market-model-cell[b-acixta5edc] {
    font-variant-numeric: tabular-nums;
}

.market-model-cell small[b-acixta5edc] {
    margin-left: 3px;
    color: var(--muted);
    font-size: .7rem;
}

/* 能力标签列：默认前 2 个胶囊徽章，超出折叠 +N（悬停 title 看全部）；
   样式口径与管理端产品列表 .capability-tag 一致。 */
.market-capability-tags[b-acixta5edc] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 240px;
}

.market-capability-tag[b-acixta5edc] {
    padding: 2px 8px;
    border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
    border-radius: 999px;
    background: var(--surface-muted);
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.45;
    white-space: nowrap;
}

.market-capability-tag.more[b-acixta5edc] {
    border-style: dashed;
    cursor: help;
}

@media (max-width: 640px) {
    .market-toolbar[b-acixta5edc] {
        align-items: stretch;
        flex-direction: column;
    }

    /* column 排列下 inline-flex 子项不会被拉伸（基线是内容宽度），需显式 100%：
       否则 search/tabs/toggle 各自 386px，390px 视口下整页溢出 12px。 */
    .market-search[b-acixta5edc],
    .market-tabs[b-acixta5edc],
    .market-view-toggle[b-acixta5edc] {
        width: 100%;
    }

    .market-search[b-acixta5edc] {
        min-width: 0;
    }

    .market-view-toggle[b-acixta5edc] {
        margin-left: 0;
    }

    .market-tabs[b-acixta5edc] {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
    }

    .market-tab[b-acixta5edc] {
        flex: 0 0 auto;
    }

    .market-cards[b-acixta5edc] {
        grid-template-columns: 1fr;
    }
}


/* ===== 百炼模型市场卡片（2026-10-20 对齐 bailian model/market） ===== */
.market-card.bailian-card[b-acixta5edc] { display:flex; padding:18px; gap:4px; }
.bailian-card.is-picked[b-acixta5edc] { border-color:var(--accent-color,#2563eb); box-shadow:0 0 0 1px var(--accent-color,#2563eb); }
.bailian-card-head[b-acixta5edc] { display:flex; width:100%; align-items:center; justify-content:space-between; gap:10px; }
.bailian-card-head .status-badge[b-acixta5edc] { margin-left:8px; }
.bailian-card-add[b-acixta5edc] { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; margin-left:auto; color:var(--accent-color,#2563eb); background:var(--surface-soft); border:0; border-radius:50%; font-size:1rem; font-weight:700; line-height:1; cursor:pointer; }
.bailian-card-add:hover[b-acixta5edc] { background:var(--surface-hover); }
.bailian-card-name[b-acixta5edc] { display:block; margin-top:10px; overflow:hidden; color:var(--ink); font-size:1.02rem; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.bailian-card-version[b-acixta5edc] { display:flex; margin-top:5px; align-items:center; gap:6px; color:var(--muted); font-size:.72rem; }
.bailian-card-version code[b-acixta5edc] { max-width:230px; overflow:hidden; color:var(--muted); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.bailian-card-copy[b-acixta5edc] { display:grid; place-items:center; padding:2px; color:var(--muted); background:transparent; border:0; border-radius:4px; cursor:pointer; }
.bailian-card-copy:hover[b-acixta5edc] { color:var(--ink); background:var(--surface-soft); }
.market-card-description.bailian-card-desc[b-acixta5edc] { display:-webkit-box; overflow:hidden; margin-top:10px; -webkit-box-orient:vertical; -webkit-line-clamp:2; min-height:2.9em; }
.bailian-card-tags[b-acixta5edc] { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.bailian-card-tags span[b-acixta5edc] { padding:3px 9px; color:var(--muted); background:var(--surface-muted); border-radius:999px; font-size:.68rem; }
.bailian-card-prices[b-acixta5edc] { display:grid; margin-top:14px; gap:5px; }
.bailian-card-prices>div[b-acixta5edc] { display:flex; align-items:baseline; gap:6px; }
.bailian-card-prices span[b-acixta5edc] { color:var(--muted); font-size:.7rem; }
.bailian-card-prices b[b-acixta5edc] { color:var(--ink); font-size:.82rem; font-variant-numeric:tabular-nums; }
.bailian-card-prices small[b-acixta5edc] { color:var(--muted); font-size:.62rem; }
.bailian-card-prices a[b-acixta5edc] { margin-left:2px; color:var(--accent-color,#2563eb); font-size:.66rem; text-decoration:none; }
.bailian-card-prices a:hover[b-acixta5edc] { text-decoration:underline; }
.bailian-card-stats[b-acixta5edc] { display:flex; justify-content:space-between; gap:12px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.bailian-card-stats>div[b-acixta5edc] { display:grid; gap:2px; }
.bailian-card-stats b[b-acixta5edc] { color:var(--ink); font-size:1.05rem; font-weight:800; }
.bailian-card-stats span[b-acixta5edc] { color:var(--muted); font-size:.62rem; }
.bailian-card-actions[b-acixta5edc] { display:flex; margin-top:14px; gap:10px; }
.bailian-try[b-acixta5edc] { flex:1; padding:9px 0; color:var(--surface); background:var(--ink); border-radius:999px; font-size:.78rem; font-weight:700; text-align:center; text-decoration:none; }
.bailian-try:hover[b-acixta5edc] { opacity:.88; }
.bailian-api[b-acixta5edc] { flex:1; padding:9px 0; color:var(--ink); border:1px solid var(--line-strong,#cbd5e1); border-radius:999px; font-size:.78rem; font-weight:700; text-align:center; text-decoration:none; }
.bailian-api:hover[b-acixta5edc] { background:var(--surface-soft); }
/* /Pages/ModelPlazaCompare.razor.rz.scp.css */
.market-public-nav[b-czvvvpcw9n] { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--line); background: var(--surface); }
.market-public-nav-inner[b-czvvvpcw9n] { display: flex; align-items: center; justify-content: space-between; min-height: 64px; max-width: 1440px; margin: 0 auto; padding: 10px 24px; }
.market-public-brand[b-czvvvpcw9n] { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.market-public-brand strong[b-czvvvpcw9n] { font-size: 1rem; }
.market-logo-frame[b-czvvvpcw9n] { display: grid; width: 38px; height: 38px; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.market-logo-frame[b-czvvvpcw9n]  .brand-logo { width: 31px; height: 31px; }
.market-nav-action[b-czvvvpcw9n] { padding: 8px 14px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); font-size: .8rem; font-weight: 650; text-decoration: none; }
/* 对齐百炼对比页：页面自身固定为一屏（裸布局无顶栏，占满 100vh），不出现页面级滚动条；
   每张模型卡片高度撑满可用空间，头部与底部按钮固定，仅中间内容块各自滚动。 */
.model-compare-page[b-czvvvpcw9n] { display: flex; flex-direction: column; height: 100vh; min-height: 0; margin: 0 auto; padding: 22px 16px 20px; overflow: hidden; box-sizing: border-box; }
.model-compare-header[b-czvvvpcw9n] { display: grid; flex: none; gap: 18px; margin: 0 0 18px; }
.model-compare-header h1[b-czvvvpcw9n] { display: flex; align-items: center; gap: 10px; }
.model-compare-back[b-czvvvpcw9n] { display: inline-flex; align-items: center; gap: 6px; width: fit-content; color: var(--muted); font-size: .82rem; text-decoration: none; }
.model-compare-header h1[b-czvvvpcw9n] { margin: 0; font-size: 1.7rem; }
.model-compare-back-arrow[b-czvvvpcw9n] { color: var(--ink); font-size: 1.65rem; font-weight: 400; line-height: 1; }
.model-compare-header p[b-czvvvpcw9n] { margin: 6px 0 0; color: var(--muted); font-size: .86rem; }
.model-compare-cards[b-czvvvpcw9n] { display: grid; flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px; min-height: 0; padding: 0; overflow: hidden; }
.model-compare-card[b-czvvvpcw9n] { display: flex; flex-direction: column; height: 100%; min-height: 0; padding: 28px 28px 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 2px 10px rgba(20, 35, 29, .03); overflow: hidden; }
.model-compare-card-head[b-czvvvpcw9n] { display: flex; align-items: center; gap: 12px; min-height: 62px; }
.model-compare-card-body[b-czvvvpcw9n] { flex: 1; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; }
.model-compare-card-body[b-czvvvpcw9n]::-webkit-scrollbar { width: 6px; }
.model-compare-card-body[b-czvvvpcw9n]::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--line-strong); }
.model-compare-card-body[b-czvvvpcw9n]::-webkit-scrollbar-track { background: transparent; }
.model-compare-card-icon[b-czvvvpcw9n] { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; background: var(--surface-muted); }
.model-compare-card-icon[b-czvvvpcw9n]  .brand-logo { width: 25px; height: 25px; }
.model-compare-card-head strong[b-czvvvpcw9n], .model-compare-card-head small[b-czvvvpcw9n] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.model-compare-card-head strong[b-czvvvpcw9n] { font-size: 1rem; }
.model-compare-card-head small[b-czvvvpcw9n] { margin-top: 4px; color: var(--muted); font-size: .75rem; }
.model-compare-icon-button[b-czvvvpcw9n] { display: grid; width: 30px; height: 30px; margin-left: auto; place-items: center; border: 0; background: transparent; color: var(--muted); font-size: 1rem; line-height: 1; cursor: pointer; border-radius: 8px; }
.model-compare-icon-button:hover[b-czvvvpcw9n] { color: var(--ink); background: var(--surface-muted); }
.model-compare-section[b-czvvvpcw9n] { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.model-compare-section h2[b-czvvvpcw9n] { margin: 0 0 14px; font-size: 1.05rem; }
.model-compare-feature[b-czvvvpcw9n] { display: flex; align-items: center; justify-content: space-between; min-height: 32px; color: var(--muted); font-size: .82rem; }
.feature-state[b-czvvvpcw9n] { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 8px; font-size: .75rem; }
.feature-state.yes[b-czvvvpcw9n] { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success); }
.feature-state.no[b-czvvvpcw9n] { background: var(--surface-muted); color: var(--muted); }
.feature-state.no .feature-symbol[b-czvvvpcw9n] { border-color: var(--muted); color: var(--muted); }
.feature-symbol[b-czvvvpcw9n] { display: inline-grid; width: 14px; height: 14px; place-items: center; border: 1.5px solid currentColor; border-radius: 50%; font-size: 10px; font-weight: 800; line-height: 1; }
.model-compare-subtitle[b-czvvvpcw9n] { display: block; margin: 12px 0 8px; color: var(--muted); font-size: .78rem; }
.model-compare-pills[b-czvvvpcw9n] { display: flex; flex-wrap: wrap; gap: 8px; }
.model-compare-pill[b-czvvvpcw9n] { display: inline-flex; padding: 9px 13px; border-radius: 999px; background: var(--surface-muted); color: var(--muted); font-size: .8rem; }
.model-compare-performance div[b-czvvvpcw9n] { display: flex; justify-content: space-between; padding: 8px 0; color: var(--muted); font-size: .8rem; }
.model-compare-performance strong[b-czvvvpcw9n] { color: var(--ink); font-weight: 600; }
.model-compare-card-actions[b-czvvvpcw9n] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding-top: 22px; }
.model-compare-card-actions a[b-czvvvpcw9n] { padding: 9px 5px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .75rem; text-align: center; text-decoration: none; white-space: nowrap; }
.model-compare-card-actions a.primary[b-czvvvpcw9n] { border-color: var(--ink); background: var(--ink); color: #fff; }
.model-compare-table[b-czvvvpcw9n] { width: 100%; min-width: 860px; border-collapse: collapse; font-size: .82rem; }
.model-compare-table th[b-czvvvpcw9n], .model-compare-table td[b-czvvvpcw9n] { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.model-compare-table thead th[b-czvvvpcw9n] { background: var(--surface-muted); }
.model-compare-table thead th:first-child[b-czvvvpcw9n], .model-compare-table tbody th[b-czvvvpcw9n] { width: 150px; color: var(--muted); font-weight: 650; }
.model-compare-table thead strong[b-czvvvpcw9n], .model-compare-table thead small[b-czvvvpcw9n] { display: block; }
.model-compare-table thead small[b-czvvvpcw9n] { margin-top: 4px; color: var(--muted); font-weight: 500; }
.model-compare-table tbody tr:last-child th[b-czvvvpcw9n], .model-compare-table tbody tr:last-child td[b-czvvvpcw9n] { border-bottom: 0; }
.model-compare-table th:first-child[b-czvvvpcw9n] { position: sticky; left: 0; z-index: 2; background: var(--surface-muted); }
.model-compare-table tbody th[b-czvvvpcw9n] { background: var(--surface); }
.model-compare-tags[b-czvvvpcw9n] { display: flex; flex-wrap: wrap; gap: 5px; }
.model-compare-tags span[b-czvvvpcw9n] { padding: 3px 7px; border-radius: 999px; background: var(--surface-muted); color: var(--muted); font-size: .72rem; }
@media (max-width: 720px) {
    .model-compare-page[b-czvvvpcw9n] { height: auto; min-height: 100vh; padding: 22px 14px 40px; overflow: visible; }
    .model-compare-header[b-czvvvpcw9n] { margin: 0 0 22px; }
    .model-compare-cards[b-czvvvpcw9n] { grid-template-columns: minmax(280px, 1fr); gap: 16px; overflow: visible; }
    .model-compare-card[b-czvvvpcw9n] { height: auto; min-height: 0; overflow: visible; }
    .model-compare-card-body[b-czvvvpcw9n] { overflow: visible; }
}
/* /Pages/ModelRankings.razor.rz.scp.css */
/* 模型排行榜页（产品升级 2026-10 需求 #1，对标 OpenRouter Rankings）。
   设计语言对齐全站 content-section 卡片：圆角/边框/标题层级复用既有 token。 */
.rankings-page[b-1q5lqvcmof] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rankings-header[b-1q5lqvcmof] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

    .rankings-header h1[b-1q5lqvcmof] {
        font-size: 20px;
        font-weight: 700;
        margin: 0;
    }

.rankings-subtitle[b-1q5lqvcmof] {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--text-secondary, inherit);
    opacity: 0.75;
}

.rankings-toolbar[b-1q5lqvcmof] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rankings-loading[b-1q5lqvcmof] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-secondary, inherit);
}

.rankings-grid[b-1q5lqvcmof] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.rankings-card-wide[b-1q5lqvcmof] {
    grid-column: 1 / -1;
}

.rankings-card[b-1q5lqvcmof] {
    background: var(--bg-card, inherit);
    border: 1px solid var(--line, #e5e7eb);
    border-radius: var(--radius-lg, 12px);
    padding: 16px;
    min-width: 0;
}

.rankings-card-head[b-1q5lqvcmof] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}

    .rankings-card-head h2[b-1q5lqvcmof] {
        font-size: 15px;
        font-weight: 700;
        margin: 0;
    }

.rankings-card-meta[b-1q5lqvcmof] {
    font-size: 12px;
    color: var(--text-secondary, inherit);
    opacity: 0.7;
}

.rankings-table[b-1q5lqvcmof] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .rankings-table th[b-1q5lqvcmof] {
        text-align: left;
        font-size: 12px;
        font-weight: 600;
        color: var(--text-secondary, inherit);
        padding: 6px 8px;
        border-bottom: 1px solid var(--line, #e5e7eb);
        white-space: nowrap;
    }

    .rankings-table td[b-1q5lqvcmof] {
        padding: 8px;
        border-bottom: 1px solid var(--line, rgba(229, 231, 235, 0.6));
        vertical-align: middle;
    }

    .rankings-table tr:last-child td[b-1q5lqvcmof] {
        border-bottom: none;
    }

.rank-cell[b-1q5lqvcmof] {
    width: 44px;
    text-align: center;
}

.rank-badge[b-1q5lqvcmof] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: var(--radius-full, 999px);
    font-size: 12px;
    font-weight: 700;
    background: var(--bg-muted, rgba(0, 0, 0, 0.06));
    color: var(--text-secondary, inherit);
}

    /* 前三名金银铜：OpenRouter 榜单同款强调。 */
    .rank-badge.top1[b-1q5lqvcmof] { background: #f59e0b22; color: #b45309; }
    .rank-badge.top2[b-1q5lqvcmof] { background: #94a3b822; color: #475569; }
    .rank-badge.top3[b-1q5lqvcmof] { background: #d977061e; color: #92400e; }

.rank-model[b-1q5lqvcmof] {
    font-weight: 600;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-model-sub[b-1q5lqvcmof] {
    display: block;
    font-size: 11px;
    color: var(--text-secondary, inherit);
    opacity: 0.7;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-vendor[b-1q5lqvcmof] {
    font-size: 12px;
    color: var(--text-secondary, inherit);
    opacity: 0.75;
}

.num-cell[b-1q5lqvcmof] {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.bar-cell[b-1q5lqvcmof] {
    width: 30%;
}

/* 份额条：纯 div，比例宽度由内联 style 指定。 */
.share-bar[b-1q5lqvcmof] {
    position: relative;
    height: 8px;
    border-radius: var(--radius-full, 999px);
    background: var(--bg-muted, rgba(0, 0, 0, 0.06));
    overflow: hidden;
    min-width: 80px;
}

    .share-bar span[b-1q5lqvcmof] {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg, var(--accent, #3b82f6), color-mix(in srgb, var(--accent, #3b82f6) 60%, transparent));
    }

.vendor-bars[b-1q5lqvcmof] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.vendor-bar-row[b-1q5lqvcmof] {
    display: grid;
    grid-template-columns: 110px 1fr 90px;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.vendor-bar-name[b-1q5lqvcmof] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.vendor-bar-value[b-1q5lqvcmof] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-size: 12px;
    color: var(--text-secondary, inherit);
}

/* 窄屏退化单列。 */
@media (max-width: 1080px) {
    .rankings-grid[b-1q5lqvcmof] {
        grid-template-columns: 1fr;
    }

    .rankings-card-wide[b-1q5lqvcmof] {
        grid-column: auto;
    }
}
/* /Pages/ModelTools.razor.rz.scp.css */
.model-tools-page[b-yznubc2m85] {
    display: grid;
    gap: 18px;
}

.model-tools-head[b-yznubc2m85] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

    .model-tools-head h1[b-yznubc2m85] {
        margin: 0 0 4px;
        font-size: 22px;
        color: var(--ink);
    }

    .model-tools-head p[b-yznubc2m85] {
        margin: 0;
        max-width: 640px;
        color: var(--muted);
        font-size: 13px;
        line-height: 1.7;
    }

.model-tools-filter[b-yznubc2m85] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.model-tools-count[b-yznubc2m85] {
    margin-left: 2px;
    color: var(--muted);
}

.model-tools-cards[b-yznubc2m85] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 16px;
}

.model-tools-card[b-yznubc2m85] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px 20px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
}

    .model-tools-card.recommended[b-yznubc2m85] {
        border-color: var(--primary);
        box-shadow: 0 0 0 1px var(--primary);
    }

.model-tools-card-head[b-yznubc2m85] {
    display: flex;
    align-items: center;
    gap: 12px;
}

    .model-tools-card-head h3[b-yznubc2m85] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        font-size: 16px;
        color: var(--ink);
    }

    .model-tools-card-head small[b-yznubc2m85] {
        display: block;
        color: var(--muted);
        font-size: 12px;
    }

.model-tools-logo[b-yznubc2m85] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: none;
    font-size: 20px;
    background: var(--surface-soft);
    border-radius: 10px;
}

.model-tools-badge[b-yznubc2m85] {
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--primary);
    background: var(--primary-soft);
    border-radius: 4px;
}

.model-tools-meta[b-yznubc2m85] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

    .model-tools-meta .pill[b-yznubc2m85] {
        padding: 2px 10px;
        font-size: 12px;
        color: var(--muted);
        border: 1px solid var(--line);
        border-radius: 10px;
    }

    .model-tools-meta .pill.ok[b-yznubc2m85] {
        color: var(--primary);
        border-color: var(--line-strong);
        background: var(--primary-soft);
    }

.model-tools-desc[b-yznubc2m85] {
    margin: 0;
    min-height: 40px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.7;
}

.model-tools-foot[b-yznubc2m85] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 6px;
}

.model-tools-verify[b-yznubc2m85] {
    margin-left: auto;
    padding: 2px 8px;
    font-size: 12px;
    color: var(--muted);
    background: var(--surface-muted);
    border-radius: 4px;
}

.model-tools-note[b-yznubc2m85] {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}
/* /Pages/OAuthLab.razor.rz.scp.css */
.oauth-profile-grid[b-9mdi188unt] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.oauth-profile[b-9mdi188unt] {
    display: grid;
    min-width: 0;
    padding: 20px;
    gap: 20px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
}

.oauth-profile header[b-9mdi188unt] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.oauth-profile header > div[b-9mdi188unt] {
    display: flex;
    min-width: 0;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.oauth-profile h2[b-9mdi188unt] {
    margin: 0;
    font-size: 1rem;
}

.oauth-profile-mark[b-9mdi188unt] {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    color: #fff;
    background: #273c35;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 750;
}

.oauth-protocol[b-9mdi188unt],
.oauth-result dl[b-9mdi188unt] {
    display: grid;
    margin: 0;
    gap: 0;
}

.oauth-protocol > div[b-9mdi188unt],
.oauth-result dl > div[b-9mdi188unt] {
    display: grid;
    min-width: 0;
    padding: 9px 0;
    grid-template-columns: minmax(92px, 36%) minmax(0, 1fr);
    gap: 12px;
    border-bottom: 1px solid var(--line-soft);
}

.oauth-protocol > div:last-child[b-9mdi188unt],
.oauth-result dl > div:last-child[b-9mdi188unt] {
    border-bottom: 0;
}

.oauth-protocol dt[b-9mdi188unt],
.oauth-result dt[b-9mdi188unt] {
    color: var(--muted);
    font-size: .73rem;
}

.oauth-protocol dd[b-9mdi188unt],
.oauth-result dd[b-9mdi188unt] {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    font-size: .78rem;
    text-align: right;
}

.oauth-profile .button[b-9mdi188unt] {
    width: 100%;
}

.oauth-result[b-9mdi188unt] {
    display: grid;
    margin-bottom: 14px;
    padding: 18px 20px;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
    align-items: center;
    gap: 24px;
    background: #f7faf8;
    border: 1px solid #cfdad5;
    border-radius: 6px;
}

.oauth-result > div[b-9mdi188unt] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.oauth-callback-band[b-9mdi188unt] {
    display: grid;
    margin-top: 14px;
    padding: 13px 16px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    color: var(--muted);
    background: #f5f7f6;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: .75rem;
}

.oauth-callback-band code[b-9mdi188unt] {
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

@media (max-width: 760px) {
    .oauth-profile-grid[b-9mdi188unt] {
        grid-template-columns: 1fr;
    }

    .oauth-result[b-9mdi188unt] {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

@media (max-width: 560px) {
    .oauth-callback-band[b-9mdi188unt] {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .oauth-callback-band code[b-9mdi188unt] {
        text-align: left;
    }
}
/* /Pages/Projects.razor.rz.scp.css */
/* 项目组管理（企业内部预算单元）：双栏布局复用 Departments 形态；
   预算进度条与部门软预算同构（80% 预警 / 100% 超支变色，令牌带 fallback 对齐 Departments.razor.css）。 */
.projects-layout[b-rg1bxk8r0z] {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

@media (max-width: 1100px) {
    .projects-layout[b-rg1bxk8r0z] {
        grid-template-columns: 1fr;
    }
}

.policy-badge[b-rg1bxk8r0z] {
    display: inline-block;
    padding: 2px 9px;
    font-size: .64rem;
    color: var(--ink-color, var(--ink, #1f2937));
    background: var(--surface-soft, rgba(59, 130, 246, .08));
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 999px;
}

.budget-bar[b-rg1bxk8r0z] {
    max-width: 180px;
    margin: 4px 0 3px;
    height: 8px;
    border-radius: 999px;
    background: var(--border-color, #e5e7eb);
    overflow: hidden;
}

.budget-bar-fill[b-rg1bxk8r0z] {
    height: 100%;
    border-radius: 999px;
    background: var(--success-color, #059669);
    transition: width .3s ease;
}

    .budget-bar-fill.warn[b-rg1bxk8r0z] { background: var(--warning-color, #d97706); }
    .budget-bar-fill.over[b-rg1bxk8r0z] { background: var(--danger-color, #dc2626); }
/* /Pages/ProviderOAuth.razor.rz.scp.css */
.oauth-connect-section[b-gpqy6vitei] {
    display: grid;
    padding: 24px 0;
    gap: 18px;
    border-top: 1px solid var(--line);
}

.section-heading[b-gpqy6vitei] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.section-heading h2[b-gpqy6vitei] {
    margin: 0;
    font-size: 1rem;
}

.section-heading p[b-gpqy6vitei] {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .8rem;
}

.step-index[b-gpqy6vitei] {
    display: grid;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    place-items: center;
    color: #fff;
    background: #273c35;
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 750;
}

.oauth-segments[b-gpqy6vitei] {
    display: grid;
    width: min(440px, 100%);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 3px;
    background: #edf1ef;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.oauth-segments button[b-gpqy6vitei] {
    min-height: 38px;
    border: 0;
    border-radius: 4px;
    color: var(--muted);
    background: transparent;
    font: inherit;
    font-size: .82rem;
    font-weight: 650;
    cursor: pointer;
}

.oauth-segments button.active[b-gpqy6vitei] {
    color: var(--text);
    background: var(--surface);
    box-shadow: 0 1px 3px rgba(24, 39, 34, .12);
}

.oauth-provider-facts[b-gpqy6vitei] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    color: var(--muted);
    font-size: .78rem;
}

.oauth-provider-facts span[b-gpqy6vitei] {
    display: flex;
    gap: 8px;
}

.oauth-provider-facts strong[b-gpqy6vitei] {
    color: var(--text);
}

.oauth-form-row[b-gpqy6vitei] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
}

.oauth-action-band[b-gpqy6vitei],
.oauth-submit-row[b-gpqy6vitei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.oauth-action-band[b-gpqy6vitei] {
    padding: 14px 16px;
    background: #f5f8f6;
    border: 1px solid #cfdbd5;
    border-radius: 6px;
}

.oauth-action-band > div[b-gpqy6vitei] {
    display: grid;
    gap: 3px;
}

.oauth-action-band span[b-gpqy6vitei],
.oauth-submit-row span[b-gpqy6vitei],
.oauth-note[b-gpqy6vitei] {
    color: var(--muted);
    font-size: .78rem;
}

.device-code[b-gpqy6vitei] {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
}

.oauth-note[b-gpqy6vitei] {
    margin: -6px 0 0;
}

textarea[b-gpqy6vitei] {
    width: 100%;
    min-height: 104px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

@media (max-width: 680px) {
    .oauth-form-row[b-gpqy6vitei] {
        grid-template-columns: 1fr;
    }

    .oauth-form-row .button[b-gpqy6vitei],
    .oauth-action-band .button[b-gpqy6vitei],
    .oauth-submit-row .button[b-gpqy6vitei] {
        width: 100%;
    }

    .oauth-action-band[b-gpqy6vitei],
    .oauth-submit-row[b-gpqy6vitei] {
        align-items: stretch;
        flex-direction: column;
    }
}
/* /Pages/Providers.razor.rz.scp.css */
.accounts-page[b-3p4yg1nxp0] { width: 100%; font-size: 1rem; }
.upstream-tabs[b-3p4yg1nxp0] { display: flex; margin-bottom: 12px; gap: 4px; border-bottom: 1px solid var(--line); }
.upstream-tab[b-3p4yg1nxp0] { min-height: 38px; padding: 7px 15px; color: var(--muted); background: transparent; border: 0; border-bottom: 2px solid transparent; font-size: .86rem; font-weight: 680; cursor: pointer; }
.upstream-tab:hover[b-3p4yg1nxp0] { color: var(--ink); background: var(--surface-muted); }
.upstream-tab.active[b-3p4yg1nxp0] { color: var(--primary-strong); border-bottom-color: var(--primary-strong); }
.accounts-toolbar[b-3p4yg1nxp0] { display: flex; min-height: 64px; padding: 12px 14px; align-items: center; justify-content: space-between; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px 10px 0 0; }
.account-filter-row[b-3p4yg1nxp0], .account-toolbar-actions[b-3p4yg1nxp0] { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.account-filter-row[b-3p4yg1nxp0] { flex: 1 1 760px; }
.account-toolbar-actions[b-3p4yg1nxp0] { flex: 0 0 auto; justify-content: flex-end; }
.account-result-count[b-3p4yg1nxp0] { padding: 4px 8px; color: var(--muted); background: var(--surface-muted); border-radius: 999px; font-size: .8rem; white-space: nowrap; }
.account-search[b-3p4yg1nxp0] { width: min(100%, 255px); height: 38px; flex: 0 1 255px; background: var(--surface); border-radius: 8px; }
.account-search input[b-3p4yg1nxp0] { font-size: .8rem; }
.account-filter-row select[b-3p4yg1nxp0] { min-width: 128px; min-height: 38px; padding: 7px 28px 7px 10px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; font-size: .8rem; }
.button.compact[b-3p4yg1nxp0] { min-height: 38px; padding: 7px 10px; font-size: .8rem; }
.toolbar-popover-wrap[b-3p4yg1nxp0] { position: relative; }
.toolbar-popover[b-3p4yg1nxp0] { display: grid; position: absolute; z-index: 55; top: calc(100% + 6px); right: 0; min-width: 210px; max-height: min(620px, 75vh); padding: 6px; overflow-y: auto; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 18px 42px rgba(0,0,0,.2); }
.account-tools-menu[b-3p4yg1nxp0] { width: 300px; }
.menu-check-row[b-3p4yg1nxp0], .tool-menu-row[b-3p4yg1nxp0] { display: flex; width: 100%; min-height: 36px; padding: 7px 9px; align-items: center; justify-content: space-between; gap: 10px; color: var(--ink); background: transparent; border: 0; border-radius: 7px; text-align: left; font-size: .8rem; text-decoration: none; cursor: pointer; }
.tool-menu-row[b-3p4yg1nxp0] { justify-content: flex-start; }
.tool-menu-row span[b-3p4yg1nxp0] { flex: 1 1 auto; }
.tool-menu-row small[b-3p4yg1nxp0] { padding: 1px 6px; color: var(--primary); background: var(--primary-soft); border-radius: 999px; font-size: .68rem; }
.menu-check-row:hover[b-3p4yg1nxp0], .tool-menu-row:hover[b-3p4yg1nxp0] { background: var(--surface-muted); }
.menu-section-title[b-3p4yg1nxp0] { margin: 0; padding: 7px 9px 4px; color: var(--muted); font-size: .7rem; font-weight: 760; letter-spacing: 0; }
.menu-divider[b-3p4yg1nxp0] { height: 1px; margin: 5px 4px; background: var(--line); }
.menu-toggle-row[b-3p4yg1nxp0] { display: flex; min-height: 34px; padding: 6px 9px; align-items: center; gap: 8px; color: var(--muted); font-size: .76rem; cursor: pointer; }
.menu-toggle-row input[b-3p4yg1nxp0] { accent-color: var(--primary); }
.file-menu-row[b-3p4yg1nxp0] { position: relative; }
.visually-hidden[b-3p4yg1nxp0] { position: absolute !important; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.account-bulk-bar[b-3p4yg1nxp0] { display: flex; min-height: 50px; padding: 9px 14px; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--ink); background: color-mix(in srgb, var(--primary-soft) 62%, var(--surface)); border-right: 1px solid var(--line); border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .8rem; }
.account-bulk-bar strong[b-3p4yg1nxp0] { color: var(--primary); }
.text-button[b-3p4yg1nxp0] { padding: 4px 6px; color: var(--primary); background: transparent; border: 0; font-size: .76rem; font-weight: 680; }
.text-button:hover[b-3p4yg1nxp0] { text-decoration: underline; }
.bulk-spacer[b-3p4yg1nxp0] { flex: 1 1 auto; }

.accounts-table-shell[b-3p4yg1nxp0] { overflow: visible; background: var(--surface); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.accounts-table-scroll[b-3p4yg1nxp0] { width: 100%; overflow-x: auto; overflow-y: visible; }
.accounts-data-table[b-3p4yg1nxp0] { width: 100%; min-width: 1480px; border-collapse: collapse; color: var(--ink); font-size: .83rem; }
.accounts-data-table th[b-3p4yg1nxp0], .accounts-data-table td[b-3p4yg1nxp0] { height: 48px; padding: 9px 11px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; white-space: nowrap; }
.accounts-data-table th[b-3p4yg1nxp0] { height: 43px; color: var(--muted); background: var(--surface-muted); font-size: .76rem; font-weight: 700; }
.accounts-data-table tbody tr:hover[b-3p4yg1nxp0], .accounts-data-table tbody tr.selected[b-3p4yg1nxp0] { background: color-mix(in srgb, var(--surface-muted) 60%, transparent); }
.accounts-data-table tbody tr:last-child td[b-3p4yg1nxp0] { border-bottom: 0; }
.accounts-data-table input[type="checkbox"][b-3p4yg1nxp0] { width: 15px; height: 15px; accent-color: var(--primary); }
.select-column[b-3p4yg1nxp0] { width: 42px; min-width: 42px; text-align: center !important; }
.table-sort[b-3p4yg1nxp0] { display: inline-flex; padding: 0; align-items: center; gap: 4px; color: inherit; background: transparent; border: 0; font: inherit; font-weight: inherit; }
.account-name-cell[b-3p4yg1nxp0], .capacity-cell[b-3p4yg1nxp0], .today-stats[b-3p4yg1nxp0], .proxy-cell[b-3p4yg1nxp0], .expiry-cell[b-3p4yg1nxp0] { display: grid; min-width: 130px; gap: 3px; }
.account-name-cell[b-3p4yg1nxp0] { min-width: 180px; }
.account-name-cell strong[b-3p4yg1nxp0] { overflow: hidden; max-width: 240px; text-overflow: ellipsis; font-size: .85rem; font-weight: 650; }
.account-name-cell small[b-3p4yg1nxp0], .capacity-cell small[b-3p4yg1nxp0], .today-stats small[b-3p4yg1nxp0], .proxy-cell small[b-3p4yg1nxp0], .expiry-cell small[b-3p4yg1nxp0] { color: var(--muted); font-size: .8rem; }
.copilot-billing-capacity[b-3p4yg1nxp0] { width: fit-content; padding: 3px 6px; color: #2878b8; background: color-mix(in srgb, #3b82f6 14%, transparent); border-radius: 5px; font-size: .78rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.accounts-data-table code[b-3p4yg1nxp0] { color: var(--muted); background: transparent; font-size: .83rem; }
.platform-stack[b-3p4yg1nxp0] { display: grid; min-width: 145px; justify-items: start; gap: 3px; }
.platform-meta-row[b-3p4yg1nxp0], .subscription-meta-row[b-3p4yg1nxp0] { display: flex; max-width: 180px; align-items: center; flex-wrap: wrap; gap: 4px; }
.account-type-label[b-3p4yg1nxp0], .platform-stack > small[b-3p4yg1nxp0] { color: var(--muted); font-size: .76rem; }
.platform-badge[b-3p4yg1nxp0], .shadow-badge[b-3p4yg1nxp0] { display: inline-flex; padding: 3px 7px; align-items: center; border-radius: 6px; font-size: .8rem; font-weight: 720; }
.platform-badge[b-3p4yg1nxp0] { color: #247b5a; background: rgba(36,123,90,.11); }
.platform-anthropic[b-3p4yg1nxp0] { color: #a8662f; background: rgba(168,102,47,.12); }
.platform-gemini[b-3p4yg1nxp0] { color: #3175a8; background: rgba(49,117,168,.12); }
.platform-antigravity[b-3p4yg1nxp0] { color: #744eb0; background: rgba(116,78,176,.12); }
.platform-grok[b-3p4yg1nxp0] { color: var(--ink); background: var(--surface-muted); }
.platform-copilot[b-3p4yg1nxp0] { color: #24292f; background: rgba(36,41,47,.1); }
.subscription-plan[b-3p4yg1nxp0] { display: inline-flex; max-width: 160px; padding: 2px 6px; align-items: center; overflow: hidden; color: var(--ink); background: color-mix(in srgb, #3b647c 13%, var(--surface)); border: 1px solid color-mix(in srgb, #3b647c 28%, var(--line)); border-radius: 5px; font-size: .72rem; font-weight: 720; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.subscription-plan-free[b-3p4yg1nxp0] { background: var(--surface-muted); border-color: var(--line); }
.subscription-plan-plus[b-3p4yg1nxp0] { background: color-mix(in srgb, #2c93c7 14%, var(--surface)); border-color: color-mix(in srgb, #2c93c7 32%, var(--line)); }
.subscription-plan-team[b-3p4yg1nxp0] { background: color-mix(in srgb, #6a78cf 14%, var(--surface)); border-color: color-mix(in srgb, #6a78cf 32%, var(--line)); }
.subscription-plan-pro[b-3p4yg1nxp0] { background: color-mix(in srgb, #9167d5 14%, var(--surface)); border-color: color-mix(in srgb, #9167d5 32%, var(--line)); }
.subscription-plan-max[b-3p4yg1nxp0] { background: color-mix(in srgb, #c35b91 14%, var(--surface)); border-color: color-mix(in srgb, #c35b91 32%, var(--line)); }
.subscription-plan-business[b-3p4yg1nxp0] { background: color-mix(in srgb, #b48a29 14%, var(--surface)); border-color: color-mix(in srgb, #b48a29 32%, var(--line)); }
.platform-stack > .subscription-expiry[b-3p4yg1nxp0] { color: var(--muted); font-size: .7rem; font-variant-numeric: tabular-nums; line-height: 1.25; }
.shadow-badge[b-3p4yg1nxp0] { color: #9a681d; background: rgba(181,119,28,.11); font-size: .74rem; }
.endpoint-cell[b-3p4yg1nxp0] { width: 220px; min-width: 180px; }
.endpoint-cell code[b-3p4yg1nxp0] { display: block; max-width: 250px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.auth-cell[b-3p4yg1nxp0] { display: grid; min-width: 145px; gap: 3px; }
.auth-cell strong[b-3p4yg1nxp0] { color: var(--ink); font-size: .85rem; font-weight: 650; }
.auth-cell small[b-3p4yg1nxp0] { font-size: .78rem; }
.auth-cell small.configured[b-3p4yg1nxp0] { color: var(--primary); }
.auth-cell small.missing[b-3p4yg1nxp0] { color: var(--danger); }
.status-badge[b-3p4yg1nxp0] { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: .8rem; font-weight: 720; }
.status-badge.success[b-3p4yg1nxp0] { color: var(--primary); background: var(--primary-soft); }
.status-badge.warning[b-3p4yg1nxp0] { color: #b06d18; background: rgba(196,126,27,.13); }
.status-badge.danger[b-3p4yg1nxp0] { color: var(--danger); background: rgba(197,62,62,.11); }
.status-badge.neutral[b-3p4yg1nxp0] { color: var(--muted); background: var(--surface-muted); }
.schedule-column[b-3p4yg1nxp0] { width: 84px; min-width: 84px; text-align: center !important; }
.schedule-column .table-sort[b-3p4yg1nxp0] { width: 100%; justify-content: center; }
.schedule-switch[b-3p4yg1nxp0] { display: block; position: relative; width: 38px; height: 22px; margin: 0 auto; padding: 0; appearance: none; overflow: hidden; background: var(--line); border: 0; border-radius: 999px; box-sizing: border-box; line-height: 0; vertical-align: middle; cursor: pointer; transition: background-color .18s ease; }
.schedule-switch[b-3p4yg1nxp0]::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; content: ""; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.25); transform: translateX(0); transition: transform .18s ease; }
.schedule-switch.on[b-3p4yg1nxp0] { background: var(--primary); }
.schedule-switch.on[b-3p4yg1nxp0]::after { transform: translateX(16px); }
.schedule-switch:disabled[b-3p4yg1nxp0] { opacity: .55; }
.usage-windows[b-3p4yg1nxp0] { display: grid; min-width: 175px; gap: 5px; }
.usage-windows > span[b-3p4yg1nxp0] { display: grid; grid-template-columns: 24px 68px 68px; align-items: center; gap: 5px; }
.usage-windows small[b-3p4yg1nxp0] { color: var(--muted); font-size: .74rem; }
.usage-windows b[b-3p4yg1nxp0] { color: var(--ink); text-align: right; font-size: .76rem; font-weight: 620; font-variant-numeric: tabular-nums; }
.usage-windows i[b-3p4yg1nxp0] { display: block; height: 5px; overflow: hidden; background: var(--line); border-radius: 99px; }
.usage-windows em[b-3p4yg1nxp0] { display: block; height: 100%; background: var(--primary); border-radius: inherit; }
.muted-cell[b-3p4yg1nxp0] { color: var(--muted); font-size: .8rem; }
.danger-text[b-3p4yg1nxp0] { color: var(--danger) !important; }
.notes-cell[b-3p4yg1nxp0] { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.actions-column[b-3p4yg1nxp0] { position: sticky; z-index: 4; right: 0; min-width: 220px; background: var(--surface) !important; }
thead .actions-column[b-3p4yg1nxp0] { z-index: 5; background: var(--surface-muted) !important; }
/* row-actions/row-action 已由 app.css 全局提供（2026-10-27 操作栏统一，基准=上游厂商序列页签）。 */
.row-more-wrap[b-3p4yg1nxp0] { position: relative; }
.row-action-menu-backdrop[b-3p4yg1nxp0] { position: fixed; z-index: 150; inset: 0; width: auto; height: auto; padding: 0; background: transparent; border: 0; cursor: default; }
.row-action-menu[b-3p4yg1nxp0] { display: grid; position: fixed; z-index: 151; width: min(190px, calc(100vw - 16px)); max-height: calc(100dvh - 16px); padding: 5px; overflow-y: auto; overscroll-behavior: contain; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 34px rgba(0,0,0,.22); box-sizing: border-box; }
.row-action-menu button[b-3p4yg1nxp0], .row-action-menu a[b-3p4yg1nxp0] { min-height: 32px; padding: 6px 9px; color: var(--ink); background: transparent; border: 0; border-radius: 6px; text-align: left; text-decoration: none; font-size: .8rem; }
.row-action-menu button:hover[b-3p4yg1nxp0], .row-action-menu a:hover[b-3p4yg1nxp0] { background: var(--surface-muted); }
.account-empty-state[b-3p4yg1nxp0] { display: grid; min-height: 280px; place-items: center; align-content: center; gap: 8px; color: var(--muted); text-align: center; }
.account-empty-state strong[b-3p4yg1nxp0] { color: var(--ink); font-size: .88rem; }
.account-empty-state span[b-3p4yg1nxp0] { font-size: .8rem; }

.accounts-pagination[b-3p4yg1nxp0] { display: flex; min-height: 54px; padding: 9px 14px; align-items: center; justify-content: space-between; gap: 14px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 10px 10px; font-size: .8rem; }
.pagination-controls[b-3p4yg1nxp0] { display: flex; align-items: center; gap: 6px; }
.pagination-controls label[b-3p4yg1nxp0] { display: flex; margin-right: 8px; align-items: center; gap: 5px; }
.pagination-controls select[b-3p4yg1nxp0] { min-height: 31px; padding: 4px 22px 4px 7px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 7px; }

.account-editor-grid[b-3p4yg1nxp0] { align-items: start; }
.account-editor-grid .inline-alert.full[b-3p4yg1nxp0] { display: flex; align-items: center; grid-column: 1 / -1; }
.account-editor-grid .inline-alert.full span[b-3p4yg1nxp0] { flex: 1 1 auto; }
.account-editor-grid .form-hint[b-3p4yg1nxp0] { display: block; margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.json-preview[b-3p4yg1nxp0] { max-height: 480px; margin: 0; padding: 14px; overflow: auto; color: var(--ink); background: var(--surface-muted); border: 1px solid var(--line); border-radius: 6px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .61rem; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.compact-json[b-3p4yg1nxp0] { max-height: 260px; margin-top: 14px; }

@media (max-width: 1180px) {
    .accounts-toolbar[b-3p4yg1nxp0] { align-items: stretch; flex-direction: column; }
    .account-filter-row[b-3p4yg1nxp0] { width: 100%; flex: 1 1 auto; }
    .account-toolbar-actions[b-3p4yg1nxp0] { width: 100%; justify-content: flex-start; }
}
@media (max-width: 720px) {
    .accounts-toolbar[b-3p4yg1nxp0] { padding: 12px; }
    .account-filter-row[b-3p4yg1nxp0] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .account-filter-row > *[b-3p4yg1nxp0], .account-search[b-3p4yg1nxp0] { width: 100%; min-width: 0; }
    .account-search[b-3p4yg1nxp0] { grid-column: 1 / -1; flex-basis: 100%; }
    .account-filter-row select[b-3p4yg1nxp0] { width: 100%; }
    .account-toolbar-actions[b-3p4yg1nxp0] { display: grid; grid-template-columns: 42px repeat(3,minmax(0,1fr)); }
    .account-toolbar-actions > .icon-button[b-3p4yg1nxp0], .account-toolbar-actions > .button[b-3p4yg1nxp0], .account-toolbar-actions > .toolbar-popover-wrap > .button[b-3p4yg1nxp0] { width: 100%; justify-content: center; }
    .account-toolbar-actions > .toolbar-popover-wrap[b-3p4yg1nxp0] { min-width: 0; }
    .account-toolbar-actions > .toolbar-popover-wrap > .button[b-3p4yg1nxp0] { padding-right: 8px; padding-left: 8px; }
    .toolbar-popover[b-3p4yg1nxp0] { right: auto; left: 0; max-width: 90vw; }
    .account-bulk-bar[b-3p4yg1nxp0] { align-items: stretch; }
    .bulk-spacer[b-3p4yg1nxp0] { display: none; }
    .accounts-pagination[b-3p4yg1nxp0] { align-items: flex-start; flex-direction: column; }
    .accounts-data-table[b-3p4yg1nxp0] { min-width: 1280px; }
}
@media (max-width: 520px) {
    .account-filter-row[b-3p4yg1nxp0], .account-toolbar-actions[b-3p4yg1nxp0] { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .account-result-count[b-3p4yg1nxp0], .account-toolbar-actions > .button.primary[b-3p4yg1nxp0] { grid-column: 1 / -1; }
    .accounts-data-table[b-3p4yg1nxp0] { min-width: 1180px; }
}
.model-restriction-field[b-3p4yg1nxp0] {
    grid-column: 1 / -1;
}
.account-test-summary[b-3p4yg1nxp0] { display: flex; min-height: 64px; margin-bottom: 22px; padding: 14px 16px; align-items: center; justify-content: space-between; gap: 16px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 6px; }
.account-test-summary > div[b-3p4yg1nxp0] { display: grid; min-width: 0; gap: 4px; }
.account-test-summary strong[b-3p4yg1nxp0] { overflow: hidden; color: var(--ink); font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.account-test-summary small[b-3p4yg1nxp0] { color: var(--muted); font-size: .78rem; }
/* /Pages/Recharge.razor.rz.scp.css */
/* 管理员直充页（/recharge）局部样式：卡片、目标用户摘要、金额快捷档。 */
.recharge-admin-card[b-w8krtfh7da] {
    display: grid;
    max-width: 640px;
    padding: 18px;
    gap: 14px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
}

.recharge-amount-row[b-w8krtfh7da] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.recharge-amount-row input[b-w8krtfh7da] {
    width: 180px;
}

.recharge-target-summary[b-w8krtfh7da] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: var(--surface-muted);
    border-radius: 10px;
}

.recharge-target-copy[b-w8krtfh7da] {
    display: grid;
    flex: 1 1 auto;
    min-width: 0;
    gap: 2px;
}

.recharge-target-copy strong[b-w8krtfh7da] {
    overflow: hidden;
    color: var(--ink);
    font-weight: 650;
    text-overflow: ellipsis;
}

.recharge-target-copy small[b-w8krtfh7da] {
    color: var(--muted);
}

.recharge-target-balance[b-w8krtfh7da] {
    display: grid;
    gap: 2px;
    color: var(--muted);
    font-size: .82rem;
    text-align: right;
}

.recharge-target-balance strong[b-w8krtfh7da] {
    color: var(--ink);
    font-size: 1rem;
}

.user-avatar[b-w8krtfh7da] {
    display: inline-flex;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    color: var(--primary-strong);
    background: var(--primary-soft);
    border-radius: 50%;
    font-size: .76rem;
    font-weight: 650;
}

.balance-preview[b-w8krtfh7da] {
    display: flex;
    padding: 11px 12px;
    align-items: center;
    justify-content: space-between;
    background: var(--primary-soft);
    border: 1px solid rgba(39, 121, 88, .2);
    border-radius: 9px;
}

.balance-preview span[b-w8krtfh7da] {
    color: var(--muted);
    font-size: .85rem;
}

.balance-preview strong[b-w8krtfh7da] {
    font-size: 1.08rem;
}

.recharge-actions[b-w8krtfh7da] {
    display: flex;
    justify-content: flex-end;
}
/* /Pages/Redeem.razor.rz.scp.css */
.redeem-layout[b-atds78q2hg] {
    display: grid;
    width: min(760px, 100%);
    margin: 0 auto;
    gap: 18px;
}

.redeem-balance-card[b-atds78q2hg] {
    display: grid;
    min-height: 230px;
    padding: 28px;
    place-items: center;
    align-content: center;
    gap: 7px;
    color: #fff;
    background: var(--primary);
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(35, 114, 84, .2);
}

.redeem-balance-icon[b-atds78q2hg] {
    display: grid;
    width: 58px;
    height: 58px;
    margin-bottom: 6px;
    place-items: center;
    background: rgba(255, 255, 255, .18);
    border-radius: 14px;
}

.redeem-balance-card > span:not(.redeem-balance-icon)[b-atds78q2hg],
.redeem-balance-card small[b-atds78q2hg] {
    color: rgba(255, 255, 255, .82);
    font-size: .78rem;
}

.redeem-balance-card strong[b-atds78q2hg] {
    font-size: 2.35rem;
    line-height: 1.15;
}

.redeem-form-card form[b-atds78q2hg] {
    display: grid;
    gap: 16px;
}

.redeem-input-wrap[b-atds78q2hg] {
    position: relative;
}

.redeem-input-wrap > :first-child[b-atds78q2hg] {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 13px;
    color: var(--muted);
    transform: translateY(-50%);
}

.redeem-input-wrap input[b-atds78q2hg] {
    min-height: 48px;
    padding-left: 43px;
    font-size: .92rem;
}

.redeem-submit[b-atds78q2hg] {
    width: 100%;
    min-height: 45px;
}

.redeem-result[b-atds78q2hg],
.redeem-info-card[b-atds78q2hg] {
    display: flex;
    padding: 18px;
    align-items: flex-start;
    gap: 13px;
    border: 1px solid;
    border-radius: 9px;
}

.redeem-result.success[b-atds78q2hg] { color: #176c4d; background: #eef9f4; border-color: #bce3d3; }
.redeem-result.danger[b-atds78q2hg] { color: #a33636; background: #fff3f3; border-color: #eccaca; }

.redeem-result .result-icon[b-atds78q2hg],
.redeem-info-card > span[b-atds78q2hg] {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    place-items: center;
    background: rgba(255, 255, 255, .55);
    border-radius: 9px;
}

.redeem-result > div[b-atds78q2hg],
.redeem-info-card > div[b-atds78q2hg] { display: grid; gap: 5px; }
.redeem-result strong[b-atds78q2hg],
.redeem-info-card strong[b-atds78q2hg] { font-size: .82rem; }
.redeem-result p[b-atds78q2hg],
.redeem-result span[b-atds78q2hg],
.redeem-info-card li[b-atds78q2hg] { margin: 0; font-size: .75rem; line-height: 1.5; }

.redeem-info-card[b-atds78q2hg] {
    color: #24674e;
    background: var(--primary-soft);
    border-color: #b9dfcf;
}

.redeem-info-card ul[b-atds78q2hg] { display: grid; margin: 2px 0 0; padding-left: 18px; gap: 4px; }
.redeem-history-list[b-atds78q2hg] { display: grid; gap: 9px; }

.redeem-history-item[b-atds78q2hg] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(120px, auto);
    padding: 12px 14px;
    align-items: center;
    gap: 12px;
    background: var(--surface-soft);
    border-radius: 8px;
}

.history-icon[b-atds78q2hg] {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 9px;
}

.history-icon.positive[b-atds78q2hg] { color: #16845c; background: #dff4eb; }
.history-icon.negative[b-atds78q2hg] { color: #b74343; background: #fae4e4; }
.history-icon.purple[b-atds78q2hg] { color: #7652ad; background: #eee7f8; }

.history-copy[b-atds78q2hg],
.history-value[b-atds78q2hg] { display: grid; min-width: 0; gap: 3px; }
.history-copy strong[b-atds78q2hg],
.history-value strong[b-atds78q2hg] { font-size: .76rem; }
.history-copy span[b-atds78q2hg],
.history-value span[b-atds78q2hg],
.history-value code[b-atds78q2hg] { overflow: hidden; color: var(--muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.history-value[b-atds78q2hg] { text-align: right; }
.history-value.positive strong[b-atds78q2hg] { color: #16845c; }
.history-value.negative strong[b-atds78q2hg] { color: #b74343; }
.history-value.purple strong[b-atds78q2hg] { color: #7652ad; }

@media (max-width: 620px) {
    .redeem-balance-card[b-atds78q2hg] { min-height: 200px; }
    .redeem-history-item[b-atds78q2hg] { grid-template-columns: auto minmax(0, 1fr); }
    .history-value[b-atds78q2hg] { grid-column: 2; text-align: left; }
}
/* /Pages/UserAnnouncements.razor.rz.scp.css */
.announcement-summary-strip[b-ron2wbx5wu] {
    display: grid;
    margin-bottom: 16px;
    grid-template-columns: repeat(2, minmax(150px, 220px)) minmax(240px, 1fr);
    align-items: center;
    gap: 12px;
}

.announcement-summary-strip > article[b-ron2wbx5wu] {
    display: flex;
    min-height: 76px;
    padding: 14px 16px;
    align-items: center;
    gap: 11px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
}

.announcement-summary-strip > article > span[b-ron2wbx5wu] {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: #315f89;
    background: #eaf2fb;
    border-radius: 8px;
}

.announcement-summary-strip > article.unread > span[b-ron2wbx5wu] { color: #3459a7; background: #e9efff; }
.announcement-summary-strip article div[b-ron2wbx5wu] { display: grid; }
.announcement-summary-strip strong[b-ron2wbx5wu] { color: var(--text); font-size: 1.15rem; }
.announcement-summary-strip small[b-ron2wbx5wu] { color: var(--muted); font-size: .7rem; }
.announcement-summary-tools[b-ron2wbx5wu] { display: grid; justify-items: end; gap: 8px; }
.announcement-summary-tools .segmented-control[b-ron2wbx5wu] { justify-self: end; }
.announcement-summary-tools .button-row[b-ron2wbx5wu] { margin: 0; }

.user-announcement-list[b-ron2wbx5wu] {
    display: grid;
    gap: 11px;
}

.user-announcement-card[b-ron2wbx5wu] {
    position: relative;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: 0 3px 12px rgba(29, 45, 38, .035);
}

.user-announcement-card.unread[b-ron2wbx5wu] { background: linear-gradient(90deg, #f7faff, var(--surface) 45%); border-color: #cddcf5; }
.user-announcement-card.unread[b-ron2wbx5wu]::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: linear-gradient(#3b82f6, #4f46e5); }

.announcement-card-main[b-ron2wbx5wu] {
    display: grid;
    width: 100%;
    min-height: 112px;
    padding: 18px 20px;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    color: var(--text);
    text-align: left;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.announcement-card-main:hover[b-ron2wbx5wu] { background: rgba(148, 163, 184, .055); }

.announcement-card-icon[b-ron2wbx5wu] {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: #94a3b8;
    background: #f1f5f9;
    border-radius: 6px;
}

.unread .announcement-card-icon[b-ron2wbx5wu] { color: #fff; background: linear-gradient(135deg, #3b82f6, #4f46e5); box-shadow: 0 8px 18px rgba(59, 130, 246, .18); }
.announcement-card-copy[b-ron2wbx5wu] { display: grid; min-width: 0; gap: 6px; }
.announcement-card-title[b-ron2wbx5wu] { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 7px; }
.announcement-card-title strong[b-ron2wbx5wu] { overflow: hidden; max-width: min(70vw, 720px); text-overflow: ellipsis; white-space: nowrap; font-size: .91rem; }
.announcement-card-title em[b-ron2wbx5wu], .announcement-card-title small[b-ron2wbx5wu] { display: inline-flex; padding: 2px 7px; align-items: center; gap: 4px; color: #2563eb; background: #e9f0ff; border-radius: 5px; font-size: .64rem; font-style: normal; font-weight: 700; }
.announcement-card-title em.read[b-ron2wbx5wu] { color: #527066; background: #edf3f0; }
.announcement-card-title small[b-ron2wbx5wu] { color: #9a5b11; background: #fff0d9; }
.announcement-card-title i[b-ron2wbx5wu] { width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
.announcement-card-copy time[b-ron2wbx5wu] { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: .69rem; }
.announcement-card-preview[b-ron2wbx5wu] { overflow: hidden; color: var(--muted); font-size: .75rem; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }

.announcement-card-read[b-ron2wbx5wu] {
    position: absolute;
    right: 18px;
    bottom: 12px;
    display: inline-flex;
    padding: 4px 8px;
    align-items: center;
    gap: 4px;
    color: #2563eb;
    background: #edf4ff;
    border: 0;
    border-radius: 5px;
    font-size: .67rem;
    font-weight: 650;
    cursor: pointer;
}

.announcement-detail-meta[b-ron2wbx5wu] { display: flex; margin-bottom: 16px; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: .74rem; }
.announcement-detail-meta > span[b-ron2wbx5wu] { display: inline-flex; align-items: center; gap: 5px; }
.announcement-page-markdown[b-ron2wbx5wu] { position: relative; min-height: 100px; padding-left: 21px; color: var(--text); overflow-wrap: anywhere; }
.announcement-page-markdown[b-ron2wbx5wu]::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: linear-gradient(#3b82f6, #4f46e5, #9333ea); border-radius: 999px; }

@media (max-width: 780px) {
    .announcement-summary-strip[b-ron2wbx5wu] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .announcement-summary-tools[b-ron2wbx5wu] { grid-column: 1 / -1; justify-items: stretch; }
    .announcement-summary-tools .segmented-control[b-ron2wbx5wu] { justify-self: stretch; }
    .announcement-summary-tools .segmented-control button[b-ron2wbx5wu] { flex: 1; }
    .announcement-summary-tools .button-row[b-ron2wbx5wu] { justify-content: flex-end; }
}

@media (max-width: 520px) {
    .announcement-summary-strip[b-ron2wbx5wu] { grid-template-columns: 1fr; }
    .announcement-summary-tools[b-ron2wbx5wu] { grid-column: auto; }
    .announcement-card-main[b-ron2wbx5wu] { padding: 16px 14px; grid-template-columns: 38px minmax(0, 1fr); }
    .announcement-card-main > svg[b-ron2wbx5wu] { display: none; }
    .announcement-card-icon[b-ron2wbx5wu] { width: 38px; height: 38px; }
    .announcement-card-read[b-ron2wbx5wu] { position: static; margin: 0 14px 12px auto; }
}
/* /Pages/Users.razor.rz.scp.css */
.users-workspace[b-9x59ox9wm9] {
    display: grid;
    gap: 0;
}

/* 连体卡（2026-11-10 工具栏统一批次）：工具栏 + DxGrid 壳 + ListPagination 连成一张卡（对齐上游厂商序列）。 */
.users-workspace[b-9x59ox9wm9]  .users-data-grid.dxbl-grid { border-top: 0; border-radius: 0; }
.users-workspace[b-9x59ox9wm9]  .users-data-grid + .table-pagination { border-radius: 0 0 10px 10px; }

/* 工具栏统一（2026-11-10 全站批次）：外壳复用全局 .model-sequence-toolbar（圆角 10px 顶部），
   页内只保留 z-index 提升与连体衔接。筛选设置/列设置弹层用全局 .settings-menu。 */
.users-toolbar[b-9x59ox9wm9] {
    position: relative;
    z-index: 12;
}

.users-attr-filter input[b-9x59ox9wm9] {
    min-width: 130px;
    min-height: 36px;
    padding: 6px 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line-strong, var(--line));
    border-radius: 8px;
    font: inherit;
    font-size: .8rem;
}

.users-attr-filter input:focus[b-9x59ox9wm9] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }

/* 行操作浮层菜单（「更多」按钮）：settings-menu 已收敛到全局，本页仅保留 row-action-menu 自己的按钮样式。 */
.row-action-menu button[b-9x59ox9wm9] {
    display: flex;
    width: 100%;
    min-height: 34px;
    padding: 7px 9px;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 7px;
    font-size: .73rem;
    text-align: left;
}

.row-action-menu button:hover[b-9x59ox9wm9] { background: var(--surface-muted); }

.users-table-card[b-9x59ox9wm9] {
    min-width: 0;
    overflow: visible;
    background: var(--surface);
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0;
}


.sort-header[b-9x59ox9wm9] { display: inline-flex; padding: 0; align-items: center; gap: 5px; color: inherit; background: transparent; border: 0; font: inherit; font-weight: inherit; }
.sort-header:hover[b-9x59ox9wm9] { color: var(--primary); }
.usage-sort-heading[b-9x59ox9wm9] { display: inline-flex; position: relative; align-items: center; gap: 5px; }
.usage-sort-anchor[b-9x59ox9wm9] { position: relative; }
.usage-sort-trigger[b-9x59ox9wm9] { display: inline-flex; position: relative; z-index: 132; padding: 2px 4px; align-items: center; gap: 3px; color: var(--muted); background: transparent; border: 0; border-radius: 4px; }
.usage-sort-trigger:hover[b-9x59ox9wm9] { color: var(--ink); background: var(--line); }
.usage-sort-trigger.active[b-9x59ox9wm9] { color: var(--primary); }
.usage-sort-trigger small[b-9x59ox9wm9] { font-size: .57rem; font-weight: 680; letter-spacing: 0; }
.usage-sort-arrow[b-9x59ox9wm9] { display: inline-block; font-size: .8rem; transition: transform .12s ease; }
.usage-sort-arrow.descending[b-9x59ox9wm9] { transform: rotate(180deg); }
.usage-sort-backdrop[b-9x59ox9wm9] { position: fixed; z-index: 130; inset: 0; padding: 0; background: transparent; border: 0; }
.usage-sort-menu[b-9x59ox9wm9] {
    display: grid;
    position: absolute;
    z-index: 135;
    top: calc(100% + 5px);
    right: 0;
    min-width: 132px;
    padding: 5px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .2);
}
.usage-sort-menu button[b-9x59ox9wm9] { display: flex; padding: 7px 8px; align-items: center; justify-content: space-between; gap: 12px; color: inherit; background: transparent; border: 0; border-radius: 6px; font-size: .67rem; text-align: left; }
.usage-sort-menu button:hover[b-9x59ox9wm9] { background: var(--surface-muted); }
.usage-sort-menu button.active[b-9x59ox9wm9] { color: var(--primary); font-weight: 680; }
.usage-sort-menu > small[b-9x59ox9wm9] { margin-top: 3px; padding: 5px 8px 2px; color: var(--muted); border-top: 1px solid var(--line); font-size: .56rem; font-weight: 500; letter-spacing: 0; }
.user-identity-cell[b-9x59ox9wm9] { display: flex; align-items: center; gap: 9px; }
.user-identity-cell > span:last-child[b-9x59ox9wm9],
.modal-user-summary > span:last-child[b-9x59ox9wm9] { display: grid; min-width: 0; gap: 2px; }
.user-identity-cell strong[b-9x59ox9wm9] { max-width: 250px; overflow: hidden; color: var(--ink); font-weight: 650; text-overflow: ellipsis; }
.user-identity-cell small[b-9x59ox9wm9],
.modal-user-summary small[b-9x59ox9wm9] { color: var(--muted); }

.user-avatar[b-9x59ox9wm9] {
    display: inline-flex;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    color: var(--primary-strong);
    background: var(--primary-soft);
    border-radius: 50%;
    font-size: .76rem;
    font-weight: 720;
}

.numeric-cell[b-9x59ox9wm9] { font-variant-numeric: tabular-nums; }
.truncate-cell[b-9x59ox9wm9] { max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.date-cell[b-9x59ox9wm9] { color: var(--muted); font-size: .7rem; }
.status-badge.purple[b-9x59ox9wm9] { color: #7c5ac7; background: rgba(124, 90, 199, .12); }
.state-dot[b-9x59ox9wm9] { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; }
.state-dot.active[b-9x59ox9wm9] { background: #2ca36b; }
.state-dot.disabled[b-9x59ox9wm9] { background: #df5b5b; }

.link-cell[b-9x59ox9wm9] { display: inline-flex; padding: 0; align-items: center; gap: 5px; color: var(--primary); background: transparent; border: 0; font: inherit; text-decoration: underline; text-decoration-style: dashed; text-underline-offset: 3px; }
.link-cell.money[b-9x59ox9wm9] { color: var(--ink); font-weight: 660; }
.group-summary[b-9x59ox9wm9] { text-decoration: none; }
.group-cell[b-9x59ox9wm9] { display: flex; min-width: 118px; flex-direction: column; align-items: flex-start; gap: 3px; }
.group-summary.exclusive[b-9x59ox9wm9] { color: #8c63d6; }
.group-summary.public[b-9x59ox9wm9] { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); }
.group-replace-anchor[b-9x59ox9wm9] { position: relative; }
.group-quick-menu[b-9x59ox9wm9] {
    display: grid;
    position: absolute;
    z-index: 140;
    top: calc(100% + 5px);
    left: 0;
    width: 185px;
    padding: 5px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
}
.group-quick-menu > span[b-9x59ox9wm9] { padding: 5px 7px; color: var(--muted); border-bottom: 1px solid var(--line); font-size: .6rem; text-transform: uppercase; }
.group-quick-menu button[b-9x59ox9wm9] { display: flex; width: 100%; padding: 7px; align-items: center; gap: 7px; color: inherit; background: transparent; border: 0; border-radius: 6px; font-size: .7rem; text-align: left; }
.group-quick-menu button:hover[b-9x59ox9wm9] { color: var(--primary); background: var(--primary-soft); }
.balance-cell[b-9x59ox9wm9] { display: flex; align-items: center; gap: 7px; }
.inline-action[b-9x59ox9wm9] { padding: 2px 5px; background: transparent; border: 0; border-radius: 5px; font-size: .65rem; font-weight: 650; }
.inline-action.success[b-9x59ox9wm9] { color: #239662; }
.inline-action:hover[b-9x59ox9wm9] { background: var(--primary-soft); }
.chip-list[b-9x59ox9wm9] { display: flex; max-width: 230px; flex-wrap: wrap; gap: 4px; }
.mini-chip[b-9x59ox9wm9] { padding: 3px 6px; color: var(--primary-strong); background: var(--primary-soft); border-radius: 6px; font-size: .63rem; }
.quota-cell-button[b-9x59ox9wm9] { text-align: left; text-decoration-color: var(--line-strong, var(--line)); }
.quota-cell-lines[b-9x59ox9wm9] { display: grid; gap: 3px; }
.quota-cell-line[b-9x59ox9wm9] { display: grid; grid-template-columns: 78px repeat(3, auto); align-items: center; gap: 8px; color: var(--muted); font-size: .62rem; white-space: nowrap; }
.quota-cell-line > strong[b-9x59ox9wm9] { overflow: hidden; color: var(--ink); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 600; text-overflow: ellipsis; }
.quota-cell-line b[b-9x59ox9wm9] { color: var(--ink); font-weight: 560; }

.concurrency-cell[b-9x59ox9wm9] { display: grid; width: 95px; gap: 3px; }
.concurrency-cell > span:first-child[b-9x59ox9wm9] { color: var(--ink); font-weight: 620; }
.usage-bar[b-9x59ox9wm9] { display: block; width: 72px; height: 4px; overflow: hidden; background: var(--line); border-radius: 999px; }
.usage-bar i[b-9x59ox9wm9] { display: block; height: 100%; background: var(--primary); border-radius: inherit; }
/* RPM/TPM 上限列的「不限」非数值语义：用 muted 令牌与数字上限区分。 */
.limit-unlimited[b-9x59ox9wm9] { color: var(--muted); }

/* row-actions/row-action/text-action 收敛（2026-10-27 操作栏统一）：
   行内按钮改用 app.css 全局 .row-action（基准=上游厂商序列页签），页内变体删除。 */
.row-more-wrap[b-9x59ox9wm9] { position: relative; }
.row-action-menu-backdrop[b-9x59ox9wm9] { position: fixed; z-index: 150; inset: 0; width: auto; height: auto; padding: 0; background: transparent; border: 0; cursor: default; }
.row-action-menu[b-9x59ox9wm9] { display: grid; position: fixed; z-index: 151; width: min(190px, calc(100vw - 16px)); max-height: calc(100dvh - 16px); padding: 5px; overflow-y: auto; overscroll-behavior: contain; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 34px rgba(0, 0, 0, .22); box-sizing: border-box; }
.row-action-menu button[b-9x59ox9wm9] { justify-content: flex-start; }
.row-action-menu .danger-text[b-9x59ox9wm9] { color: var(--danger); }




.input-action-row[b-9x59ox9wm9] { display: flex; align-items: center; gap: 8px; }
.input-action-row > input[b-9x59ox9wm9] { flex: 1 1 auto; }
.user-form-grid[b-9x59ox9wm9] { align-items: start; }
.form-subsection[b-9x59ox9wm9] { display: grid; gap: 2px; margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--line); }
.form-subsection span[b-9x59ox9wm9] { color: var(--muted); font-size: .72rem; }
.bulk-form[b-9x59ox9wm9] { display: grid; gap: 14px; }

.modal-user-summary[b-9x59ox9wm9] { display: flex; margin-bottom: 14px; padding: 12px; align-items: center; gap: 10px; background: var(--surface-muted); border-radius: 10px; }
.modal-user-summary .user-avatar[b-9x59ox9wm9] { width: 38px; height: 38px; flex-basis: 38px; }
.key-stack[b-9x59ox9wm9] { max-height: 480px; overflow-y: auto; }
.key-row[b-9x59ox9wm9] { align-items: center; }
.key-row > div:first-child[b-9x59ox9wm9] { display: grid; gap: 5px; }
.key-row .status-badge[b-9x59ox9wm9] { margin-left: 7px; }
.mono-text[b-9x59ox9wm9] { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.key-meta[b-9x59ox9wm9] { display: flex; align-items: flex-end; gap: 12px; }
.key-meta label[b-9x59ox9wm9] { display: grid; gap: 4px; color: var(--muted); font-size: .65rem; }
.key-meta select[b-9x59ox9wm9] { min-width: 180px; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }

.group-access-list[b-9x59ox9wm9] { display: grid; max-height: 500px; gap: 8px; overflow-y: auto; }
.group-access-row[b-9x59ox9wm9] { display: flex; padding: 12px; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 10px; }
.group-access-row.selected[b-9x59ox9wm9] { background: var(--primary-soft); border-color: rgba(39, 121, 88, .28); }
.group-access-main[b-9x59ox9wm9] { display: flex; flex: 1 1 auto; align-items: center; gap: 10px; }
.group-access-main > span[b-9x59ox9wm9] { display: grid; gap: 3px; }
.group-access-main small[b-9x59ox9wm9] { color: var(--muted); }
.rate-input[b-9x59ox9wm9] { display: grid; gap: 4px; color: var(--muted); font-size: .66rem; }
.rate-input input[b-9x59ox9wm9] { width: 110px; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }

.replace-group-content[b-9x59ox9wm9] { display: grid; gap: 14px; }
.replace-group-content > p[b-9x59ox9wm9] { margin: 0; color: var(--muted); line-height: 1.6; }
.replace-group-preview[b-9x59ox9wm9] { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); padding: 12px; align-items: center; gap: 10px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 6px; }
.replace-group-preview > span[b-9x59ox9wm9] { display: inline-flex; align-items: center; gap: 6px; }
.replace-group-preview > strong[b-9x59ox9wm9] { color: var(--primary); text-align: right; }
.replacement-group-list[b-9x59ox9wm9] { display: grid; max-height: 280px; gap: 7px; overflow-y: auto; }
.replacement-group-option[b-9x59ox9wm9] { display: flex; padding: 11px 12px; align-items: center; gap: 10px; border: 2px solid var(--line); border-radius: 6px; cursor: pointer; }
.replacement-group-option.selected[b-9x59ox9wm9] { background: var(--primary-soft); border-color: var(--primary); }
.replacement-group-option input[b-9x59ox9wm9] { accent-color: var(--primary); }
.replacement-group-option span[b-9x59ox9wm9] { display: grid; gap: 2px; }
.replacement-group-option small[b-9x59ox9wm9] { color: var(--muted); }

.balance-preview[b-9x59ox9wm9] { display: flex; padding: 11px 12px; align-items: center; justify-content: space-between; background: var(--primary-soft); border: 1px solid rgba(39, 121, 88, .2); border-radius: 6px; }
.history-user-summary[b-9x59ox9wm9] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.history-user-summary .modal-user-summary[b-9x59ox9wm9] { flex: 1 1 auto; margin-bottom: 0; }
.history-user-summary > div:last-child[b-9x59ox9wm9] { display: grid; gap: 2px; text-align: right; }
.history-user-summary > div:last-child small[b-9x59ox9wm9] { color: var(--muted); }
.history-user-summary > div:last-child strong[b-9x59ox9wm9] { font-size: 1.08rem; }
.history-toolbar[b-9x59ox9wm9] { display: flex; margin: 12px 0; align-items: center; gap: 8px; }
.history-toolbar > span[b-9x59ox9wm9] { margin-left: auto; color: var(--muted); font-size: .7rem; }
.history-list[b-9x59ox9wm9] { display: grid; max-height: 450px; gap: 7px; overflow-y: auto; }
.history-row[b-9x59ox9wm9] { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; padding: 10px 11px; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 6px; }
.history-row > div[b-9x59ox9wm9] { display: grid; gap: 2px; }
.history-row small[b-9x59ox9wm9] { color: var(--muted); }
.history-icon[b-9x59ox9wm9] { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 8px; }
.history-icon.success[b-9x59ox9wm9] { color: #249866; background: rgba(36, 152, 102, .12); }
.history-icon.danger[b-9x59ox9wm9] { color: var(--danger); background: rgba(212, 76, 76, .12); }
.history-icon.purple[b-9x59ox9wm9] { color: #7c5ac7; background: rgba(124, 90, 199, .12); }
.history-value.success[b-9x59ox9wm9] { color: #249866; }
.history-value.danger[b-9x59ox9wm9] { color: var(--danger); }
.history-value.purple[b-9x59ox9wm9] { color: #7c5ac7; }
.modal-pagination[b-9x59ox9wm9] { display: flex; margin-top: 12px; align-items: center; justify-content: center; gap: 9px; }

.quota-subscription-warning[b-9x59ox9wm9] { margin-bottom: 12px; }
.quota-subtitle[b-9x59ox9wm9] { margin: 0 0 14px; color: var(--muted); font-size: .78rem; }
.quota-subtitle strong[b-9x59ox9wm9] { color: var(--ink); }
.quota-table-wrap[b-9x59ox9wm9] { max-height: 500px; overflow: auto; }
.quota-table[b-9x59ox9wm9] { width: 100%; min-width: 760px; border-collapse: collapse; }
.quota-table th[b-9x59ox9wm9],
.quota-table td[b-9x59ox9wm9] { padding: 9px; text-align: left; border-bottom: 1px solid var(--line); }
.quota-table th[b-9x59ox9wm9] { color: var(--muted); background: var(--surface-muted); font-size: .68rem; }
.quota-table input[b-9x59ox9wm9] { min-width: 100px; height: var(--form-control-height); padding: 7px 10px; color: var(--form-control-color); background: var(--form-control-bg); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); }
.key-meta select:focus[b-9x59ox9wm9], .rate-input input:focus[b-9x59ox9wm9], .quota-table input:focus[b-9x59ox9wm9] { border-color: var(--form-control-focus); outline: 0; box-shadow: 0 0 0 3px var(--form-control-focus-ring); }
.quota-input-row[b-9x59ox9wm9] { display: flex; align-items: center; gap: 5px; }
.quota-usage-cell[b-9x59ox9wm9] { color: var(--muted); font-size: .66rem; white-space: nowrap; }
.quota-hint[b-9x59ox9wm9] { margin: 10px 0; color: var(--muted); font-size: .68rem; }
.reset-link[b-9x59ox9wm9] { padding: 2px 4px; color: var(--muted); background: transparent; border: 0; font-size: .8rem; }
.reset-link:hover[b-9x59ox9wm9] { color: #d18a24; }

@media (max-width: 980px) {
    .users-toolbar[b-9x59ox9wm9] { align-items: stretch; flex-direction: column; }
    .users-toolbar-left[b-9x59ox9wm9],
    .users-toolbar-actions[b-9x59ox9wm9] { flex-basis: auto; }
    .users-toolbar-actions[b-9x59ox9wm9] { justify-content: flex-start; }
}

@media (max-width: 640px) {
    .users-search[b-9x59ox9wm9] { width: 100%; }
    .users-toolbar-actions .button:not(.primary):not(.icon-only)[b-9x59ox9wm9] { padding-inline: 9px; font-size: 0; }
    .users-toolbar-actions .button:not(.primary):not(.icon-only)[b-9x59ox9wm9]  .lucide-icon { margin: 0; }
    .settings-menu[b-9x59ox9wm9] { right: auto; left: 0; }

    .group-access-row[b-9x59ox9wm9] { align-items: stretch; flex-direction: column; }
    .rate-input input[b-9x59ox9wm9] { width: 100%; }
    .history-toolbar[b-9x59ox9wm9] { align-items: stretch; flex-wrap: wrap; }
    .history-toolbar > span[b-9x59ox9wm9] { width: 100%; margin-left: 0; }
}

/* ── 登录类型 / 标签 / 有效期（2026-10 八项功能补全）────────────────── */

/* 标签 chip：默认绿，可通过 --tag-color 覆盖字典色 */
.user-tag-chip[b-9x59ox9wm9] {
    display: inline-block;
    font-size: 12px;
    line-height: 1.5;
    padding: 1px 8px;
    margin: 1px 3px 1px 0;
    border-radius: 10px;
    background: color-mix(in srgb, var(--tag-color, #287b63) 14%, transparent);
    color: var(--tag-color, #287b63);
    white-space: nowrap;
}

.user-tag-chip.muted[b-9x59ox9wm9] {
    background: var(--surface-muted, #f2f5f4);
    color: var(--text-muted, #7b8988);
}

/* 有效期：临期黄标、已过期红标（照 API Key 过期列先例） */
.user-expiring[b-9x59ox9wm9] {
    color: var(--status-warning, #94690d);
    font-weight: 600;
}

.user-expiry.expired[b-9x59ox9wm9] {
    color: var(--status-danger, #c0504d);
    font-weight: 600;
}

/* ── CSV 导入弹窗（D4） ─────────────────────────────────────── */
.import-form[b-9x59ox9wm9] {
    display: grid;
    gap: 14px;
}

.import-rules[b-9x59ox9wm9] {
    margin: 6px 0 0;
    padding-left: 18px;
    color: var(--muted, #7b8988);
    font-size: .8rem;
    display: grid;
    gap: 3px;
}

.import-rules code[b-9x59ox9wm9] {
    font-family: var(--mono-font, monospace);
    font-size: .76rem;
    background: var(--surface-muted, #f2f5f4);
    padding: 1px 5px;
    border-radius: 4px;
}

.import-summary[b-9x59ox9wm9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: .85rem;
}

.import-rows-table[b-9x59ox9wm9] {
    max-height: 320px;
    overflow: auto;
    border: 1px solid var(--line, #e4e9e7);
    border-radius: 8px;
}
