/* ==========================================================================
   宝之通增长中台 · 商业 B2B 控制台样式 — app.css（剩余规则）
   --------------------------------------------------------------------------
   CSS 加载顺序（参见 base.html）：
     base.css       设计 tokens / reset / 字体 / 链接 / 滚动条
     layout.css     顶栏 / 侧栏 / 主体容器 + 移动端响应式覆写
     components.css 页头 / 卡片 / 表格 / 徽标 / 表单基础
     pages-dashboard.css 工作台 / 决策面板 / 引导横幅
     pages-customers.css 客户公海 / 详情 / 导入 / 计费 / 回收站
     pages-pipeline.css  任务中心
     pages-admin.css     管理后台（运营中心 / 公司 / 用户 / 配置 / 爱企查 / 种子数据）
     app.css        跨页 polish + 客户/导入/AI 队列等共享细化（待进一步拆分）
   --------------------------------------------------------------------------
   TOC（章节锥点）— grep '=== \[<id>\]' 可直接跳转：
     [base-reset]               html / body / a
     [page-chrome]              page-header / page-title / page-actions / card-header
     [tables-shared]            跨页表格主题（data-table / customer-rich-table / import-task-table）
     [components-stat-card]     统计卡片
     [components-buttons]       .btn / .btn-success / .btn-outline-* / .btn-warning
     [components-forms]         .form-control / .form-select / focus 环
     [components-badges-alerts] .badge / .bg-* / .alert-* / .pagination / .progress
     [components-radius-utils]  小圈角工具类
     [components-table-responsive] 表格横滚提示
     [components-radius-borders] pitch-text / detail-* / customer-phone-item / import-dropzone
     [components-ai-queue]      .ai-queue-* / .ai-diagnostics-card
     [components-ops-health]    .ops-health-*
     [components-app-confirm]   .app-confirm-* 确认弹框
     [components-billing-permission] .billing-reconcile / .permission-matrix
     [pages-settings-ai]        .settings-ai-overview / .settings-ai-url / settings-ai-card
     [pages-config-boundary]    .config-boundary-*
     [pages-settings-nav]       .nav-pills / .settings-actionbar / .settings-effect / .settings-impact
     [pages-seed-account]       .seed-import-form / .account-card / .form-submit-row
     [responsive-1200-575]      跨页响应式覆写
     [pages-pool-filter]        .pool-page-header / .pool-filter-card / .pool-quick-chip / .active-filter-*
     [pages-detail-source]      .detail-source-* / .detail-note-*
     [pages-import]             .import-hero / .import-steps / .import-dropzone / .file-list-item
     [pages-business-profile]   .business-profile-* / .business-ai-* / .business-form-*
     [components-import-task-progress] .import-task-panel / .import-task-status-badge
     [pages-customer-misc]      .num-* / .next-step-chip
     [pages-login-error]        .login-page / .login-shell / .login-form / .btn-login / .error-card
     [pages-trash]              .trash-filter-card / .trash-table-card / .trash-actions-cell
     [responsive-misc]          顶部未归类响应式、登录、导入
     [components-inline-alert]  .app-inline-alert
     [components-source-pitch]  .source-details / .pitch-text
     [ui-polish-2026-05]        .stat-card-featured / .pool-more-menu / .mobile-bottom-nav
   ========================================================================== */

/* === [base-reset] html / body / a 默认背景与链接 === */

html { background: var(--page-bg); }

/* body 字号/行高/letter-spacing 由 base.css 控制（P7：13.5px / lh-base / 0）。
   这里仅保留 background !important 作为防御性兜底，避免 .login-page 等覆盖渗漏。 */
body { background: var(--page-bg) !important; }

a { color: var(--accent); text-underline-offset: 2px; }

a:hover { color: var(--accent-dark); }

/* === [page-chrome] page-header / page-title / page-actions / card-header === */
.page-header,
.import-hero,
.trash-page-header {
    display: flex;
    align-items: flex-start !important;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--surface-border);
}

.page-header > div:first-child,
.import-hero > div:first-child,
.trash-page-header > div:first-child { min-width: 0; }

.page-title,
h4.mb-0 {
    color: var(--text-main) !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    letter-spacing: 0;
}

.page-title i,
h4.mb-0 > i:first-child {
    width: 30px !important;
    height: 30px !important;
    color: var(--accent) !important;
    background: var(--accent-soft) !important;
    border: 1px solid var(--accent-line);
    border-radius: var(--radius-sm) !important;
}

.page-subtitle,
.import-hero-copy {
    margin-top: 4px;
    max-width: 72ch;
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.5;
}

.page-actions,
.import-actions {
    align-items: center;
    gap: 8px !important;
    min-width: 0;
}

/* .card 组基础样式已合并至 components.css */

.card-header {
    min-height: 46px;
    padding: 12px 16px !important;
    background: linear-gradient(180deg, var(--surface), var(--surface-soft)) !important;
    border-bottom: 1px solid var(--surface-border) !important;
    border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
}

.card-title,
.card-header h6,
.stat-card h6,
.import-section-title { color: var(--text-main) !important; font-weight: 700 !important; }

/* === [tables-shared] 跨页表格主题：data-table / customer-rich-table / import-task-table === */
.table-responsive { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }

.data-table,
.customer-rich-table,
.import-task-table { color: var(--text-main); font-size: 0.86rem; }

.data-table thead th,
.customer-rich-table th,
.import-task-table th,
.table thead th {
    color: var(--text-secondary) !important;
    background: var(--surface-muted) !important;
    border-bottom: 1px solid var(--surface-border) !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.data-table tbody td,
.customer-rich-table td,
.import-task-table td { border-color: var(--surface-border) !important; }

.data-table tbody tr:hover,
.table-hover > tbody > tr:hover > *,
.customer-summary-row:hover > td { background: var(--surface-soft) !important; }

.data-table:not(.pipeline-task-table) th:last-child,
.data-table:not(.pipeline-task-table) td:last-child { box-shadow: -8px 0 18px rgba(15, 23, 42, 0.05) !important; }

.text-muted { color: var(--text-muted) !important; }

/* === [components-stat-card] 统计卡片 === */
.stat-card {
    min-height: 112px !important;
    padding: 16px !important;
    transition: border-color var(--motion-fast) var(--easing), box-shadow var(--motion-fast) var(--easing), transform var(--motion-fast) var(--easing);
}

.stat-card .icon,
.import-step-index,
.dropzone-icon-wrap {
    color: var(--accent) !important;
    background: var(--accent-soft) !important;
    border: 1px solid var(--accent-line);
    border-radius: var(--radius-sm) !important;
}

.stat-card:hover {
    border-color: var(--accent-line) !important;
    box-shadow: var(--shadow-md) !important;
}

/* === [components-buttons] .btn / .btn-success / .btn-outline-* / .btn-warning === */
.btn {
    min-height: var(--control-height) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: var(--radius-sm) !important;
    font-weight: 700 !important;
    letter-spacing: 0;
    transition: border-color var(--motion-fast) var(--easing), background-color var(--motion-fast) var(--easing), color var(--motion-fast) var(--easing), transform var(--motion-fast) var(--easing);
}

.btn:hover { transform: translateY(-1px); }

.btn-sm { min-height: var(--control-height-sm) !important; padding: 4px 10px !important; }

.btn-success {
    color: var(--surface) !important;
    background: var(--success) !important;
    border-color: var(--success) !important;
}

.btn-success:hover,
.btn-success:focus { background: var(--success-dark) !important; border-color: var(--success-dark) !important; }

.btn-outline-primary,
.btn-outline-success {
    color: var(--accent) !important;
    background: var(--surface) !important;
    border-color: var(--accent-line) !important;
}

.btn-outline-primary:hover,
.btn-outline-success:hover {
    color: var(--surface) !important;
    background: var(--accent) !important;
    border-color: var(--accent) !important;
}

.btn-outline-secondary {
    color: var(--text-secondary) !important;
    background: var(--surface) !important;
    border-color: var(--surface-border) !important;
}

.btn-outline-secondary:hover {
    color: var(--accent-dark) !important;
    border-color: var(--accent-line) !important;
    background: var(--accent-soft) !important;
}

.btn-outline-info {
    color: var(--info) !important;
    background: var(--surface) !important;
    border-color: var(--accent-line) !important;
}

.btn-outline-info:hover {
    color: var(--surface) !important;
    background: var(--info) !important;
    border-color: var(--info) !important;
}

.btn-outline-danger {
    color: var(--danger) !important;
    border-color: rgba(220, 38, 38, 0.3) !important;
    background: var(--surface) !important;
}

.btn-outline-danger:hover {
    color: var(--surface) !important;
    background: var(--danger) !important;
    border-color: var(--danger) !important;
}

.btn-warning {
    color: var(--surface) !important;
    background: var(--warning) !important;
    border-color: var(--warning) !important;
}

/* === [components-forms] .form-control / .form-select / focus 环 === */
.form-control,
.form-select {
    min-height: var(--control-height) !important;
    color: var(--text-main) !important;
    border-color: var(--surface-border) !important;
    border-radius: var(--radius-sm) !important;
    background-color: var(--surface) !important;
}

.form-control-sm,
.form-select-sm {
    min-height: var(--control-height-sm) !important;
}

.form-control:hover,
.form-select:hover { border-color: var(--accent-line) !important; }

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
.nav-link:focus-visible,
.page-link:focus-visible {
    border-color: var(--accent) !important;
    box-shadow: var(--shadow-focus) !important;
    outline: 0;
}

a:focus-visible,
summary:focus-visible,
.onboarding-chip:focus-visible,
.action-pill:focus-visible {
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-focus);
    outline: 0;
}

.form-label { color: var(--text-secondary) !important; font-weight: 700 !important; }

.form-text,
small.text-muted { font-size: 12px; color: var(--text-faint); }

.form-check-input:checked { background-color: var(--accent) !important; border-color: var(--accent) !important; }

/* === [components-badges-alerts] .badge / .bg-* / .alert-* / .pagination / .progress === */
.badge {
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 4px 8px !important;
    border-radius: var(--radius-xs) !important;
    letter-spacing: 0;
}

.text-bg-light,
.bg-light { color: var(--text-secondary) !important; background-color: var(--surface-soft) !important; }

.bg-primary, .badge.bg-primary { background: var(--accent-soft) !important; color: var(--accent-pressed) !important; }
.bg-success, .badge.bg-success { background: var(--success-soft) !important; color: var(--success-dark) !important; }
.bg-warning, .badge.bg-warning, .text-bg-warning { background: var(--warning-soft) !important; color: var(--warning-dark) !important; }
.bg-danger, .badge.bg-danger { background: var(--danger-soft) !important; color: var(--danger-pressed) !important; }
.bg-info, .badge.bg-info { background: var(--info-soft) !important; color: var(--accent-pressed) !important; }
.text-bg-info { background: #0ea5e9 !important; color: var(--surface) !important; }
.text-bg-primary { background: var(--accent) !important; color: var(--surface) !important; }
.text-bg-success { background: var(--success) !important; color: var(--surface) !important; }
.text-bg-warning { background: var(--warning) !important; color: var(--surface) !important; }
.text-bg-secondary { background: var(--surface-muted) !important; color: var(--text-secondary) !important; }
.badge,
.text-bg-primary,
.text-bg-success,
.text-bg-info,
.text-bg-warning,
.text-bg-secondary,
.crm-summary-item strong {
    text-shadow: none !important;
}

.alert {
    border-radius: var(--radius-md) !important;
    line-height: 1.6;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
}

.alert-success {
    color: var(--success-darker) !important;
    background: var(--success-soft) !important;
    border-color: rgba(5, 150, 105, 0.25) !important;
}

.alert-warning {
    color: var(--warning-dark) !important;
    background: var(--warning-soft) !important;
    border-color: rgba(217, 119, 6, 0.25) !important;
}

.alert-info {
    color: var(--accent-pressed) !important;
    background: var(--accent-soft) !important;
    border-color: rgba(37, 99, 235, 0.2) !important;
}

.alert-danger {
    color: var(--danger-pressed) !important;
    background: var(--danger-soft) !important;
    border-color: rgba(220, 38, 38, 0.25) !important;
}

.pagination .page-link { border-color: var(--surface-border) !important; color: var(--text-secondary) !important; }

.pagination { flex-wrap: wrap; gap: 4px; }

.pagination .page-item.active .page-link {
    color: var(--surface) !important;
    background: var(--accent) !important;
    border-color: var(--accent) !important;
}

.progress { height: 8px; background: var(--surface-muted) !important; }

.progress-bar { background: linear-gradient(90deg, var(--accent), var(--accent-dark)) !important; }

/* === [components-radius-utils] 跨组件统一圆角 === */
.import-ai-option,
.file-list-item,
.next-action-box,
.detail-note-block,
.detail-source-card,
.customer-phone-item { border-radius: var(--radius-md) !important; }

.onboarding-banner { border-radius: var(--radius-md) !important; box-shadow: var(--shadow-sm) !important; }

.onboarding-chip,
.trash-total-chip,
.next-step-chip,
.import-ai-flow span { border-radius: var(--radius-sm) !important; }

/* .customer-batch-controls / .pool-page-actions / .customer-batch-more 已迁至 pages-customers.css */

.page-actions form,
.pool-page-actions form,
.settings-actionbar-buttons form,
.operations-actions form {
    margin: 0;
}

/* === [components-table-responsive] 表格横向滑动提示 === */
.table-responsive {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
}

@media (max-width: 768px) {
    .table-responsive::after {
        content: "横向滑动查看更多";
        position: sticky;
        right: 8px;
        bottom: 8px;
        float: right;
        display: inline-flex;
        align-items: center;
        max-width: max-content;
        margin-top: -30px;
        padding: 3px 8px;
        border: 1px solid var(--accent-line);
        border-radius: var(--radius-sm);
        background: rgba(255, 255, 255, 0.95);
        color: var(--text-muted);
        font-size: 11px;
        line-height: 1.4;
        pointer-events: none;
        box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
    }

    .crm-table-card .table-responsive::after,
    .customer-rich-card .table-responsive::after,
    .trash-table-card .table-responsive::after,
    .table-responsive:has(.responsive-card-table)::after,
    .table-responsive:has(.admin-users-table)::after,
    .table-responsive:has(.pipeline-task-table)::after,
    .table-responsive:has(.import-task-table)::after,
    .table-responsive:has(.aiqicha-accounts-table)::after,
    .table-responsive:has(.aiqicha-scope-table)::after { content: none; }
}

.page-actions .btn,
.pipeline-actions-cell .btn,
.pipeline-row-actions .btn,
.pipeline-import-actions .btn,
.admin-company-row-actions .btn,
.trash-table-card .btn { min-width: 0; }

/* customer 表格基础与 .customer-side-panel 已迁至 pages-customers.css */

/* === [components-radius-borders] .next-action-box / .pitch-text / .detail-* / .customer-phone-item / .import-dropzone === */
.next-action-box { border-color: var(--accent-line) !important; background: var(--accent-softer) !important; }

.pitch-text,
.detail-note-block,
.detail-source-card,
.customer-phone-item { border-color: var(--surface-border) !important; background: var(--surface-soft) !important; }

.detail-note-block-ai { border-color: rgba(217, 119, 6, 0.3) !important; background: var(--warning-soft) !important; }

.import-page {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.import-dropzone { border-color: var(--accent-line) !important; background: linear-gradient(180deg, var(--accent-softer), var(--surface)) !important; }

.import-dropzone:hover,
.import-dropzone:focus-visible,
.import-dropzone.dragover { border-color: var(--accent) !important; background: var(--accent-soft) !important; }

.import-dropzone:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.2); outline-offset: 3px; }

.import-submit-row { border-top-color: var(--surface-border) !important; }

/* === [components-ai-queue] .ai-queue-* / .ai-diagnostics-card === */
.ai-queue-card,
.detail-ai-state,
.settings-ai-overview {
    display: grid;
    gap: 12px;
    align-items: center;
}

.ai-queue-card {
    grid-template-columns: minmax(0, 1fr) auto;
    border-left: 4px solid var(--accent) !important;
    background: linear-gradient(180deg, var(--surface), var(--accent-softer)) !important;
}

.ai-queue-main,
.detail-ai-state-main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ai-queue-icon,
.detail-ai-state-icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--accent);
    background: var(--accent-soft);
    border: 1px solid var(--accent-line);
}

.ai-queue-title { color: var(--text-main); font-weight: 700; }

.ai-queue-detail {
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.55;
}

.ai-queue-metrics {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.ai-queue-metrics span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--text-secondary);
    font-size: 0.82rem;
    white-space: nowrap;
}

.ai-queue-metrics strong { color: var(--text-main); font-variant-numeric: tabular-nums; }

.ai-diagnostics-card .ai-queue-metrics { grid-column: 1 / -1; justify-content: flex-start; }

.ai-queue-action-form {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    margin: 0;
}

/* === [components-ops-health] .ops-health-* === */
.ops-health-panel {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--surface-border);
    border-left: 4px solid var(--accent);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.ops-health-head,
.ops-health-main,
.ops-health-summary {
    display: flex;
}

.ops-health-head {
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-health-main { align-items: flex-start; gap: 12px; }

.ops-health-icon {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--accent);
    background: var(--accent-soft);
    border: 1px solid var(--accent-line);
}

.ops-health-kicker {
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
}

.ops-health-title {
    margin: 2px 0 4px;
    color: var(--text-main);
    font-size: 1rem;
    font-weight: 700;
}

.ops-health-detail,
.ops-health-meta {
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.55;
}

.ops-health-copy,
.ops-health-detail { min-width: 0; }

.ops-health-detail { overflow-wrap: anywhere; }

.ops-health-summary {
    align-items: flex-end;
    flex-direction: column;
    gap: 8px;
    text-align: right;
}

.ops-health-badge {
    min-height: 28px;
    padding: 4px 10px;
    color: var(--text-main);
    font-size: 0.82rem;
    font-weight: 700;
}

/* === [components-app-confirm] .app-confirm-* 确认弹框 === */
.app-confirm-modal { border: 1px solid var(--surface-border); border-radius: var(--radius-md); }

.app-confirm-kicker {
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
}

.app-confirm-message {
    color: var(--text-main);
    line-height: 1.7;
    white-space: pre-line;
}

.app-confirm-detail {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(217, 119, 6, 0.35);
    border-radius: var(--radius-sm);
    background: var(--warning-soft);
    color: var(--warning-dark);
    line-height: 1.6;
}

.app-confirm-input { margin-top: 12px; }

.app-confirm-input .form-control { min-height: 38px; }

/* === [components-billing-permission] .billing-reconcile / .permission-matrix === */
.billing-reconcile-panel,
.permission-matrix-panel {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.billing-reconcile-head,
.permission-matrix-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.billing-reconcile-title,
.permission-matrix-title {
    margin: 0;
    color: var(--text-main);
    font-size: 1rem;
    font-weight: 700;
}

.billing-reconcile-detail,
.permission-matrix-detail {
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.55;
}

.billing-reconcile-grid,
.permission-matrix-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.billing-reconcile-check,
.permission-role-card {
    padding: 12px;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
}

.billing-reconcile-check strong,
.permission-role-card strong {
    display: block;
    color: var(--text-main);
    margin-bottom: 4px;
}

.billing-reconcile-check p,
.permission-role-card p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.84rem;
    line-height: 1.55;
}

.permission-role-card ul {
    margin: 8px 0;
    padding-left: 18px;
    color: var(--text-secondary);
    font-size: 0.84rem;
    line-height: 1.6;
}

/* === [pages-settings-ai] 已迁至 pages-settings.css === */
/* === [pages-config-boundary] 已迁至 pages-settings.css === */
/* === [pages-settings-nav] 已迁至 pages-settings.css === */
/* === [pages-seed-account] .seed-import-form / .account-card / .form-submit-row === */
.seed-import-form { flex-wrap: wrap; }

.account-card { max-width: 560px; margin-inline: auto; }

.form-submit-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.account-shell {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.account-card-compact { width: min(100%, 420px); }

.input-group > .form-control,
.input-group > .form-select { min-width: 0; }

.empty-chart,
.table td.text-center.py-4,
.table td.text-center.py-5 { background: linear-gradient(180deg, var(--surface), var(--surface-soft)); }

/* === [responsive-1200-575] 跨页响应式覆写 === */
@media (max-width: 1200px) {
    .main-content { padding-left: 18px !important; padding-right: 18px !important; }

    .settings-actionbar,
    .ops-health-head,
    .ai-queue-card,
    .detail-ai-state { align-items: flex-start; flex-direction: column; }

    .settings-actionbar { grid-template-columns: 1fr; }

    .settings-actionbar-buttons,
    .ops-health-summary,
    .ai-queue-metrics { justify-content: flex-start; width: 100%; }

    /* .customer-batch-controls 已迁至 pages-customers.css */

    .ops-health-summary { align-items: flex-start; text-align: left; }

    .settings-ai-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* .customer-real-hero* / .customer-phone-* 基础样式已迁至 pages-customers.css */

/* .aiqicha-* 已迁至 pages-admin.css */

@media (max-width: 992px) {
    .config-boundary-grid { grid-template-columns: 1fr; }

    .config-boundary-card { min-height: 0; }

    .aiqicha-console-grid { grid-template-columns: 1fr; }

    .aiqicha-accounts-card { grid-column: auto; }

    .aiqicha-login-guide { grid-template-columns: 1fr; }

    /* .customer-real-hero / .customer-real-hero-stats 已迁至 pages-customers.css */
}

@media (max-width: 575px) {
    /* .customer-real-hero-stats / .customer-phone-* 已迁至 pages-customers.css */

    .aiqicha-account-capacity { grid-template-columns: 1fr; }

    .aiqicha-estimate-panel { align-items: stretch; flex-direction: column; }

    .aiqicha-estimate-panel a { margin-left: 0; }

    .btn { max-width: 100%; white-space: normal; }

    .card-header.d-flex {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 8px;
    }

    .card-header.d-flex > .d-flex,
    .card-header.d-flex > .btn-group { justify-content: flex-start !important; width: 100%; }

    .page-actions .btn,
    .import-actions .btn,
    .pool-page-actions .btn,
    .pool-page-actions form,
    .settings-actionbar-buttons .btn { width: 100%; }

    .config-boundary-head,
    .settings-field-head {
        align-items: stretch;
        flex-direction: column;
    }

    .settings-effect-badge { max-width: 100%; }

    .detail-ai-state form,
    .detail-ai-state .btn { width: 100%; }

    .form-submit-row,
    .form-submit-row .btn { width: 100%; }

    .stat-card { min-height: 96px !important; }

    .data-table { min-width: 760px; }
}

/* === [pages-pool-filter] .pool-page-header / .pool-filter-card / .pool-quick-chip / .active-filter-* === */
.pool-page-header { align-items: flex-start; margin-bottom: 16px; }

.trash-total-chip {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 10px;
    border: 1px solid var(--surface-border);
    background: var(--surface-soft);
    color: var(--text-secondary);
    font-size: 0.84rem;
    font-weight: 600;
    white-space: nowrap;
}

.pool-filter-card .form-label { font-weight: 600; }

.pool-result-summary span,
.pool-export-hint { line-height: 1.35; }

.pool-filter-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px dashed var(--surface-border);
}

.pool-quick-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.pool-quick-label,
.pool-export-hint { color: var(--text-muted); font-size: 0.78rem; }

.pool-quick-chip,
.active-filter-chip,
.active-filter-clear {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid var(--surface-border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-secondary);
    text-decoration: none;
    line-height: 1.2;
}

.pool-quick-chip:hover,
.active-filter-chip:hover,
.active-filter-clear:hover {
    border-color: var(--accent-line);
    color: var(--accent);
    background: var(--accent-soft);
}

.pool-quick-chip.active {
    border-color: var(--accent-line);
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-weight: 700;
}

.active-filter-chip span {
    max-width: min(360px, 70vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.active-filter-clear { color: var(--text-muted); }

.active-filter-list .badge {
    padding: 6px 10px;
    color: var(--text-secondary);
    background: var(--surface) !important;
}

/* customer 表格详细规则与空状态已迁至 pages-customers.css */

/* === [pages-detail-source] .detail-source-* / .detail-note-* === */
.detail-source-value,
.detail-source-raw {
    color: var(--text-secondary);
    font-size: 0.82rem;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.detail-note-block {
    padding: 10px 12px;
    border: 1px solid var(--accent-line);
    border-radius: var(--radius-md);
    background: var(--accent-softer);
    color: var(--text-main);
    font-size: 0.9rem;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
}

.detail-note-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.detail-note-block-ai {
    border-color: rgba(217, 119, 6, 0.35);
    background: var(--warning-soft);
    color: var(--warning-dark);
}

.detail-source-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 6px 10px;
    margin-top: 8px;
}

.detail-source-card {
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid var(--accent-line);
    border-radius: var(--radius-md);
    background: var(--accent-softer);
}

.detail-source-label {
    margin-bottom: 4px;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2px;
}

.source-details,
.detail-source-details {
    margin-top: 8px;
    padding: 10px 12px;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--accent-softer);
}

.source-details summary,
.detail-source-details summary {
    cursor: pointer;
    color: var(--accent);
    font-size: 0.76rem;
    font-weight: 600;
    user-select: none;
}

.source-details summary:hover,
.detail-source-details summary:hover { color: var(--accent-dark); }

.detail-source-raw { margin-top: 10px; }

.detail-note-pre { white-space: pre-wrap; font-family: inherit; }

.import-page {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-inline: 0;
}

.import-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: end;
    margin-bottom: 18px;
}

/* === [pages-import] 已迁至 pages-import.css === */
/* === [pages-business-profile] 已迁至 pages-business-profile.css === */
/* === [components-import-task-progress] 已迁至 pages-import.css === */
/* === [pages-customer-misc] .num-* / .next-step-chip === */
.num-pending { color: var(--text-muted); }

.num-contacting { color: var(--accent); }

.num-negotiating { color: var(--warning); }

.next-step-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0.2rem 0.5rem;
    border: 1px solid var(--accent-line);
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

/* .dashboard-* 与 .onboarding-* 已迁至 pages-dashboard.css */

/* === [pages-login-error] 已迁至 pages-login.css === */
/* === [pages-trash] .trash-filter-card / .trash-table-card / .trash-actions-cell === */
.trash-filter-card { margin-bottom: 14px; }

.trash-table-card .btn { white-space: nowrap; }

.trash-actions-cell { white-space: nowrap; }

.trash-actions-cell .dropdown-menu form { margin: 0; }

/* === [responsive-misc] 顶部未归类响应式、登录、导入 === */
@media (max-width: 1100px) {
    .import-workbench,
    .import-config { grid-template-columns: 1fr; }
}

@media (max-width: 920px) {
    .login-shell { grid-template-columns: 1fr; min-height: auto; }

    .login-intel-panel,
    .login-form-panel { padding: 28px 24px; }

    .login-form-panel { order: -1; }

    .login-brand { margin-bottom: 24px; }

    .login-intel-panel h1 { font-size: 1.6rem; }

    .login-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .import-hero,
    .import-steps { grid-template-columns: 1fr; }

    .import-actions { justify-content: flex-start; }

    .import-submit-row { align-items: stretch; flex-direction: column; }

    .import-submit-row .btn { width: 100%; }

    .ai-progress-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) { .onboarding-banner { grid-template-columns: 44px 1fr; }

    .onboarding-action {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
    }
}

@media (max-width: 560px) {

    .pool-result-summary,
    .pool-quick-filters { gap: 6px; }

    .pool-quick-chip,
    .active-filter-chip,
    .active-filter-clear { max-width: 100%; }

    .login-shell { width: min(100vw - 18px, 440px); }

    .login-intel-panel { display: none; }

    .login-form-panel { padding: 28px 20px; }

    .login-support { align-items: flex-start; flex-direction: column; }

    .error-card { padding: 22px; }
}

/* === [components-inline-alert] .app-inline-alert === */
.app-inline-alert {
    margin: 0 0 18px;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

/* .customer-summary-row.expanded 已迁至 pages-customers.css */

/* === [components-source-pitch] .source-details / .pitch-text === */
.source-details {
    margin-top: 8px !important;
    padding: 0 !important;
    border: 1px solid var(--surface-border) !important;
    border-radius: var(--radius-md) !important;
    background: var(--surface) !important;
}

.source-details summary {
    padding: 10px 12px;
    color: var(--accent-dark) !important;
    font-size: 0.78rem !important;
}

.pitch-text {
    margin: 0 !important;
    padding: 12px 13px !important;
    border: 1px solid var(--surface-border) !important;
    border-radius: var(--radius-md) !important;
    background: var(--surface-soft) !important;
    color: var(--text-secondary) !important;
    font-size: 0.84rem !important;
    line-height: 1.68 !important;
}

.pitch-text + .pitch-text {
    margin-top: 10px !important;
    padding-top: 12px !important;
    border-top: 1px solid var(--surface-border) !important;
}

.pitch-text strong {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
    color: var(--text-main) !important;
    font-size: 0.78rem !important;
    font-weight: 700;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.pitch-text strong i {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 6px !important;
    border-radius: var(--radius-xs);
    background: var(--surface-muted);
    color: var(--accent-dark);
    font-size: 0.78rem;
}

.main-content > .app-inline-alert { margin-bottom: 12px; }

.badge-grade.bg-danger,
.badge-grade.text-bg-danger { background: var(--danger) !important; color: var(--surface) !important; }
.badge-grade.bg-warning,
.badge-grade.text-bg-warning { background: var(--warning) !important; color: var(--surface) !important; }
.badge-grade.bg-success,
.badge-grade.text-bg-success { background: var(--success) !important; color: var(--surface) !important; }

/* === [ui-polish-2026-05] .stat-card-featured / .pool-more-menu / .mobile-bottom-nav === */
.stat-card-featured { border-color: var(--warning) !important; box-shadow: 0 0 0 1px rgba(217, 119, 6, 0.12), var(--shadow-sm); }

.pool-more-menu { min-width: 240px; padding-bottom: 6px; }

.pool-more-menu-form { padding: 4px 12px; }

.pool-more-menu-form form { margin: 0; }

.mobile-bottom-nav {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1003;
    align-items: stretch;
    justify-content: space-around;
    gap: 2px;
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
    background: var(--surface);
    border-top: 1px solid var(--surface-border);
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.06);
}

.seed-import-file { width: 260px; }

.mobile-nav-item {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 48px;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
}

.mobile-nav-item i { font-size: 1.05rem; }

.mobile-nav-item.active { color: var(--accent); background: var(--accent-soft); }

/* .customer-rich-table 截断规则已迁至 pages-customers.css */

.login-flow-step i {
    background: var(--accent-soft) !important;
    color: var(--accent) !important;
    font-size: 0.95rem;
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.15);
}

/* ----- 平台运营中心样式已抽到 pages-admin.css ----- */

/* === [deliverable-ui-polish] 商用交付级响应式收口 === */
@media (max-width: 1100px) {
    .app-shell .page-header,
    .app-shell .import-hero,
    .app-shell .trash-page-header {
        align-items: stretch !important;
        flex-direction: column;
        gap: 10px;
    }

    .app-shell .page-actions,
    .app-shell .import-actions,
    .app-shell .pool-page-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .app-shell .toolbar-card,
    .app-shell .table-card,
    .app-shell .operations-section {
        border-color: var(--surface-border);
        box-shadow: var(--shadow-sm);
    }

    .app-shell .toolbar-card {
        padding: 12px 14px;
    }

    .app-shell .btn {
        min-width: 0;
        max-width: 100%;
    }

    .app-shell .table-card:has(.responsive-card-table),
    .app-shell .table-card:has(.crm-my-table) {
        overflow: visible;
        padding: 0 !important;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .app-shell .table-card:has(.responsive-card-table) .table-responsive,
    .app-shell .table-card:has(.crm-my-table) .table-responsive {
        overflow: visible;
    }

    .app-shell .responsive-card-table,
    .app-shell .crm-my-table {
        width: 100% !important;
        min-width: 0 !important;
        table-layout: auto !important;
        border-collapse: separate;
        border-spacing: 0 10px !important;
    }

    .app-shell .responsive-card-table thead,
    .app-shell .crm-my-table thead {
        display: none;
    }

    .app-shell .responsive-card-table tbody,
    .app-shell .responsive-card-table tr,
    .app-shell .responsive-card-table td,
    .app-shell .crm-my-table tbody,
    .app-shell .crm-my-table tr,
    .app-shell .crm-my-table td {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
    }

    .app-shell .responsive-card-table tbody tr,
    .app-shell .crm-my-table tbody tr {
        margin-bottom: 10px;
        overflow: hidden;
        border: 1px solid var(--surface-border);
        border-radius: var(--radius-md);
        background: var(--surface);
        box-shadow: var(--shadow-sm);
    }

    .app-shell .responsive-card-table tbody tr:hover td,
    .app-shell .crm-my-table tbody tr:hover td {
        background: transparent !important;
    }

    .app-shell .responsive-card-table tbody td,
    .app-shell .crm-my-table tbody td {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
        min-width: 0 !important;
        padding: 10px 12px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--surface-border) !important;
        background: transparent !important;
        box-shadow: none !important;
        color: var(--text-main);
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .app-shell .responsive-card-table tbody td::before,
    .app-shell .crm-my-table tbody td::before {
        content: attr(data-label);
        min-width: 0;
        color: var(--text-muted);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
    }

    .app-shell .responsive-card-table tbody td:last-child,
    .app-shell .crm-my-table tbody td:last-child {
        border-bottom: 0 !important;
    }

    .app-shell .responsive-card-table tbody td[colspan],
    .app-shell .crm-my-table tbody td[colspan] {
        display: block !important;
        padding: 20px 14px !important;
        text-align: center !important;
    }

    .app-shell .responsive-card-table tbody td[colspan]::before,
    .app-shell .crm-my-table tbody td[colspan]::before {
        content: none;
    }

    .app-shell .responsive-card-table tbody td[data-label="操作"],
    .app-shell .crm-my-table tbody td[data-label="操作"],
    .app-shell .responsive-card-table tbody td[data-label="详情"] {
        display: flex !important;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
        justify-content: flex-start !important;
    }

    .app-shell .responsive-card-table tbody td[data-label="操作"]::before,
    .app-shell .crm-my-table tbody td[data-label="操作"]::before,
    .app-shell .responsive-card-table tbody td[data-label="详情"]::before {
        flex: 0 0 100%;
    }

    .app-shell .crm-my-actions,
    .app-shell .trash-actions-cell {
        min-width: 0 !important;
        white-space: normal !important;
    }

    .app-shell .crm-my-action-row,
    .app-shell .trash-actions-cell {
        justify-content: flex-start !important;
    }

    .app-shell .crm-my-action-row .btn,
    .app-shell .trash-actions-cell .btn,
    .app-shell .aiqicha-logs-table .btn,
    .app-shell .ai-logs-table .btn {
        white-space: normal;
    }

    .app-shell .company-cell,
    .app-shell .company-name,
    .app-shell .company-meta,
    .app-shell .text-nowrap-soft {
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .app-shell .admin-company-pricing form > [class*="col-md-"] {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .app-shell .admin-company-pricing .input-group > .form-control {
        min-width: 72px;
    }
}

@media (max-width: 575px) {
    .app-shell .admin-company-pricing form > [class*="col-md-"] {
        flex-basis: 100%;
        max-width: 100%;
    }
}

.settings-actionbar {
    overflow: visible;
}

.settings-actionbar .nav-pills {
    position: relative;
    max-width: 100%;
    flex-wrap: wrap;
    overflow: visible;
    mask-image: none;
    -webkit-mask-image: none;
}

.settings-actionbar .nav-pills::after {
    content: none;
}

.customer-empty-state,
.empty-state,
.table td.text-center.py-4,
.table td.text-center.py-5 {
    border-radius: var(--radius-md);
}

/* === [admin-narrow-polish] 后台窄宽度对齐修正 === */
@media (max-width: 1100px) {
    .body-role-platform .page-header {
        align-items: stretch;
        flex-direction: column;
    }

    .body-role-platform .page-actions,
    .body-role-platform .operations-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .body-role-platform .settings-actionbar {
        position: static;
        grid-template-columns: 1fr;
    }

    .body-role-platform .settings-actionbar-buttons {
        justify-content: flex-start;
        width: 100%;
        max-width: none;
    }

    .body-role-platform .settings-actionbar-buttons .btn {
        flex: 1 1 150px;
    }

    .body-role-platform .settings-config-main > .settings-actionbar {
        position: sticky;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .body-role-platform .settings-config-main > .settings-actionbar .settings-actionbar-title {
        display: none;
    }

    .body-role-platform .settings-config-main > .settings-actionbar-buttons {
        justify-content: flex-end;
        width: auto;
        max-width: none;
    }

    .body-role-platform .settings-config-main > .settings-actionbar-buttons .btn {
        flex: 0 0 auto;
        width: auto;
    }

    .body-role-platform .operations-hero {
        flex-direction: column;
    }

    .body-role-platform .operations-hero-meta {
        justify-content: flex-start;
        width: 100%;
        min-width: 0;
    }

    .body-role-platform .operations-task-type-grid,
    .body-role-platform .operations-component-grid,
    .body-role-platform .operations-events-grid {
        grid-template-columns: 1fr !important;
    }

    .body-role-platform .admin-company-table-card,
    .body-role-platform .operations-section .table-responsive {
        overflow: visible;
    }

    .body-role-platform .admin-company-table,
    .body-role-platform .operations-section .responsive-card-table {
        width: 100%;
        min-width: 0 !important;
        border-spacing: 0 10px !important;
    }

    .body-role-platform .admin-company-table thead,
    .body-role-platform .operations-section .responsive-card-table thead {
        display: none;
    }

    .body-role-platform .admin-company-table tbody,
    .body-role-platform .admin-company-table tr,
    .body-role-platform .admin-company-table td,
    .body-role-platform .operations-section .responsive-card-table tbody,
    .body-role-platform .operations-section .responsive-card-table tr,
    .body-role-platform .operations-section .responsive-card-table td {
        display: block;
        width: 100% !important;
    }

    .body-role-platform .admin-company-table tbody tr,
    .body-role-platform .operations-section .responsive-card-table tbody tr {
        margin-bottom: 10px;
        border: 1px solid var(--surface-border);
        border-radius: var(--radius-md);
        background: var(--surface);
        box-shadow: var(--shadow-sm);
        overflow: hidden;
    }

    .body-role-platform .admin-company-table tbody td,
    .body-role-platform .operations-section .responsive-card-table tbody td {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
        padding: 10px 12px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--surface-border) !important;
        background: transparent !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        box-shadow: none !important;
    }

    .body-role-platform .admin-company-table tbody td::before,
    .body-role-platform .operations-section .responsive-card-table tbody td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
    }

    .body-role-platform .admin-company-table tbody td:last-child,
    .body-role-platform .operations-section .responsive-card-table tbody td:last-child {
        border-bottom: 0 !important;
    }

    .body-role-platform .admin-company-config-cell,
    .body-role-platform .operations-section .responsive-card-table tbody td[data-label="操作"] {
        min-width: 0;
    }

    .body-role-platform .admin-company-table .company-cell,
    .body-role-platform .admin-company-table .company-name,
    .body-role-platform .admin-company-table .company-meta {
        width: 100%;
        max-width: none;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .body-role-platform .admin-company-config-panel {
        flex-direction: column;
        align-items: stretch;
    }

    .body-role-platform .admin-company-row-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }
}

@media (max-width: 575px) {
    .body-role-platform .settings-config-main > .settings-actionbar {
        position: static;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
    }

    .body-role-platform .settings-config-main > .settings-actionbar .settings-actionbar-title {
        display: none;
    }

    .body-role-platform .settings-config-main > .settings-actionbar-buttons {
        display: grid;
        grid-template-columns: repeat(4, 32px);
        gap: 6px;
        justify-content: stretch;
        width: auto;
    }

    .body-role-platform .settings-config-main > .settings-actionbar-buttons .btn {
        flex: 0 0 auto;
        width: 32px;
        min-height: 32px !important;
        min-width: 0;
        padding-inline: 6px !important;
        font-size: 0 !important;
    }

    .body-role-platform .settings-config-main > .settings-actionbar-buttons .btn i {
        margin-right: 0 !important;
        font-size: 0.98rem;
    }
}

/* === [style-audit-polish] 2026-05 商用样式收口 === */
.app-shell .form-control,
.app-shell .form-select,
.app-shell .btn {
    min-width: 0;
}

.app-shell .form-control[type="number"] {
    font-variant-numeric: tabular-nums;
}

/* Platform admin tables stay within content max-width; company CRM is full-width via crm-layout.css */
.body-role-platform .app-shell .table-card:has(.responsive-card-table) {
    max-width: var(--content-max-width);
}

.body-role-platform .admin-companies-page .table-card:has(.admin-company-table),
.body-role-platform .admin-companies-page .table-card:has(.responsive-card-table) {
    max-width: none;
    width: 100%;
}

.app-shell .responsive-card-table td,
.app-shell .responsive-card-table th {
    min-width: 0;
}

.app-shell .admin-company-config-form .form-control-sm[type="number"] {
    min-width: 72px;
    text-align: right;
}

.app-shell .admin-company-usage-cell div:not(.admin-company-usage-inline) {
    flex-wrap: wrap;
    min-width: 0;
    row-gap: 2px;
}

.app-shell .admin-company-usage-cell strong,
.app-shell .admin-company-usage-cell small {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
}

.app-shell .admin-company-usage-cell small {
    display: inline-block;
}

.app-shell .aiqicha-log-filter-foot .btn {
    width: auto !important;
    min-width: 76px;
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .app-shell .responsive-card-table tbody td,
    .app-shell .crm-my-table tbody td {
        grid-template-columns: minmax(76px, 20%) minmax(0, 1fr);
    }

    .body-role-platform .admin-company-config-cell {
        display: table-cell !important;
    }

    .body-role-platform .admin-company-config-panel {
        flex-direction: column;
        align-items: stretch;
    }

    .body-role-platform .admin-company-config-fields {
        width: 100%;
        gap: 10px;
    }

    .body-role-platform .config-control-balance {
        min-width: 0;
        flex: 1 1 auto;
    }

    .body-role-platform .admin-company-config-form .form-control-sm[type="number"] {
        width: 100%;
        max-width: 160px;
        min-width: 96px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .body-role-platform .admin-company-row-actions {
        width: 100%;
        margin-left: 0;
        justify-content: flex-start;
    }

    .body-role-platform .admin-company-usage-cell > div:not(.admin-company-usage-inline) {
        display: grid;
        grid-template-columns: 42px max-content minmax(0, 1fr);
        gap: 4px 8px;
        align-items: baseline;
    }
}

@media (max-width: 575px) {
    .app-shell .responsive-card-table tbody td,
    .app-shell .crm-my-table tbody td {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .app-shell .responsive-card-table tbody td::before,
    .app-shell .crm-my-table tbody td::before {
        padding-bottom: 2px;
    }

    .body-role-platform .admin-company-config-fields {
        flex-wrap: wrap;
    }

    .body-role-platform .admin-company-usage-cell > div {
        grid-template-columns: 38px max-content minmax(0, 1fr);
    }
}

/* === [P5] 全站平滑滚动 === */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* === [P5] 通知徽章脉冲 === */
@keyframes badge-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}
.topbar-notif-dot:not(.d-none) {
    animation: badge-pulse 2.5s ease-in-out infinite;
}

/* === [P5] 卡片 focus-within 高亮 === */
.card:focus-within {
    border-color: var(--accent-line);
    box-shadow: var(--shadow-sm), 0 0 0 1px rgba(37, 99, 235, 0.08);
}

/* === [P5] 骨架加载 shimmer === */
.skeleton {
    position: relative;
    overflow: hidden;
    background: var(--surface-muted);
    border-radius: var(--radius-sm);
    color: transparent !important;
}
.skeleton > * { visibility: hidden; }
.skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 50%, transparent 100%);
    animation: skeleton-shimmer 1.5s ease-in-out infinite;
}
@keyframes skeleton-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* === [P5] 打印样式 === */
@media print {
    .sidebar, .topbar, .mobile-bottom-nav,
    .page-actions, .pool-page-actions,
    .task-center-tabs, .task-filter-card,
    .pipeline-auto-refresh-badge,
    .btn, button, .dropdown { display: none !important; }

    .app-shell { display: block !important; }
    .main-content {
        margin: 0 !important;
        padding: 12px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body { background: var(--surface) !important; font-size: 12px; }
    .card { border: 1px solid #ddd !important; box-shadow: none !important; break-inside: avoid; }
    .page-title { font-size: 16px !important; }
    a { color: var(--text-main) !important; text-decoration: none !important; }
    a[href]::after { content: none !important; }

    .table { font-size: 11px; }
    .table thead th { background: #f5f5f5 !important; }
}
