/* 外贸客户开发管理系统 custom UI. Keep standalone: no Tailwind build required. */
:root {
    --crm-bg: #f8fafc;
    --crm-card: #ffffff;
    --crm-card-soft: #f9fafb;
    --crm-border: #e5e7eb;
    --crm-border-strong: #d1d5db;
    --crm-text: #111827;
    --crm-muted: #6b7280;
    --crm-subtle: #9ca3af;
    --crm-primary: #2563eb;
    --crm-primary-soft: #eff6ff;
    --crm-primary-border: #bfdbfe;
    --crm-danger: #dc2626;
    --crm-danger-soft: #fef2f2;
    --crm-warning: #d97706;
    --crm-warning-soft: #fffbeb;
    --crm-success: #059669;
    --crm-success-soft: #ecfdf5;
    --crm-shadow: 0 8px 20px rgba(15, 23, 42, .06);
    --crm-radius: 16px;
}

.crm-ui {
    color: var(--crm-text);
    font-size: 14px;
}

.crm-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.crm-page-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--crm-text);
}

.crm-page-desc {
    margin-top: 6px;
    color: var(--crm-muted);
    font-size: 14px;
}

.crm-card {
    background: var(--crm-card);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    box-shadow: var(--crm-shadow);
}

.crm-card-header {
    padding: 16px 18px;
    border-bottom: 1px solid var(--crm-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.crm-card-title {
    font-size: 16px;
    font-weight: 750;
    color: var(--crm-text);
}

.crm-card-body {
    padding: 18px;
}

.crm-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.crm-stat-card {
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    padding: 18px;
    box-shadow: var(--crm-shadow);
    min-height: 108px;
}

.crm-stat-label {
    color: var(--crm-muted);
    font-size: 13px;
    font-weight: 600;
}

.crm-stat-value {
    margin-top: 10px;
    font-size: 34px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: -0.04em;
    color: var(--crm-text);
}

.crm-stat-note {
    margin-top: 8px;
    color: var(--crm-subtle);
    font-size: 12px;
}

.crm-filter-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.6fr) minmax(180px, .8fr) auto auto auto;
    align-items: end;
    gap: 14px;
}

.crm-form-label {
    display: block;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 7px;
}

.crm-input,
.crm-select {
    width: 100%;
    height: 40px;
    border: 1px solid var(--crm-border-strong);
    border-radius: 12px;
    background: #fff;
    color: var(--crm-text);
    padding: 0 12px;
    outline: none;
    box-sizing: border-box;
}

.crm-input:focus,
.crm-select:focus {
    border-color: var(--crm-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.crm-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    background: var(--crm-card-soft);
    color: var(--crm-text);
    font-size: 13px;
    white-space: nowrap;
}

.crm-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid var(--crm-border-strong);
    background: #fff;
    color: var(--crm-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.crm-button:hover {
    border-color: var(--crm-primary);
    color: var(--crm-primary);
    background: var(--crm-primary-soft);
}

.crm-button-primary {
    border-color: var(--crm-primary);
    background: var(--crm-primary);
    color: #fff;
}

.crm-button-primary:hover {
    color: #fff;
    background: #1d4ed8;
}

/* Kanban */
.crm-kanban-shell {
    border: 1px solid var(--crm-border);
    border-radius: 20px;
    background: #f3f4f6;
    box-shadow: var(--crm-shadow);
    overflow: hidden;
}

.crm-kanban-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 16px;
}

.crm-kanban-board {
    display: flex;
    align-items: stretch;
    gap: 16px;
    min-height: 640px;
    padding-bottom: 4px;
}

.crm-kanban-column {
    display: flex;
    flex-direction: column;
    flex: 0 0 320px;
    max-width: 320px;
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    box-shadow: 0 2px 12px rgba(15, 23, 42, .05);
    overflow: hidden;
}

.crm-kanban-col-head {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 14px 14px 12px;
    border-bottom: 1px solid var(--crm-border);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(6px);
}

.crm-kanban-col-top {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: flex-start;
}

.crm-kanban-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--crm-text);
}

.crm-kanban-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 26px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--crm-primary-soft);
    color: var(--crm-primary);
    font-size: 12px;
    font-weight: 800;
}

.crm-kanban-meta {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    color: var(--crm-muted);
    font-size: 12px;
}

.crm-kanban-meta b {
    color: var(--crm-text);
}

.crm-kanban-list {
    padding: 12px;
    overflow-y: auto;
    flex: 1;
}

.crm-company-card {
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
    padding: 13px;
    margin-bottom: 12px;
    box-shadow: 0 1px 8px rgba(15, 23, 42, .05);
    transition: box-shadow .16s ease, border-color .16s ease, transform .16s ease;
}

.crm-company-card:hover {
    border-color: var(--crm-primary-border);
    box-shadow: 0 8px 22px rgba(37, 99, 235, .12);
    transform: translateY(-1px);
}

.crm-company-card.is-overdue {
    border-left: 4px solid var(--crm-danger);
}

.crm-company-card.is-today {
    border-left: 4px solid var(--crm-warning);
}

.crm-company-card.is-replied {
    border-left: 4px solid var(--crm-success);
}

.crm-company-title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
}

.crm-company-title {
    color: var(--crm-text);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    line-height: 1.35;
}

.crm-company-title:hover { color: var(--crm-primary); }

.crm-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.crm-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    border-radius: 999px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 750;
    background: #f3f4f6;
    color: #374151;
}

.crm-badge.primary { background: var(--crm-primary-soft); color: var(--crm-primary); }
.crm-badge.success { background: var(--crm-success-soft); color: var(--crm-success); }
.crm-badge.warning { background: var(--crm-warning-soft); color: var(--crm-warning); }
.crm-badge.danger { background: var(--crm-danger-soft); color: var(--crm-danger); }
.crm-badge.muted { background: #f3f4f6; color: var(--crm-muted); }

.crm-company-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed var(--crm-border);
    color: var(--crm-muted);
    font-size: 12px;
}

.crm-company-grid span { color: var(--crm-text); }

.crm-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    margin-top: 12px;
}

.crm-card-actions .crm-button {
    height: 32px;
    padding: 0 8px;
    font-size: 12px;
}

.crm-stage-select {
    margin-top: 10px;
    height: 34px;
    width: 100%;
    border: 1px solid var(--crm-border-strong);
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text);
    padding: 0 9px;
    font-size: 12px;
}

.crm-empty-column {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
    border: 1px dashed var(--crm-border-strong);
    border-radius: 14px;
    background: #fafafa;
    color: var(--crm-muted);
    font-size: 13px;
}

/* Reports */
.crm-report-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
}

.crm-report-span-12 { grid-column: span 12; }
.crm-report-span-8 { grid-column: span 8; }
.crm-report-span-6 { grid-column: span 6; }
.crm-report-span-4 { grid-column: span 4; }

.crm-chart-card {
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    box-shadow: var(--crm-shadow);
    overflow: hidden;
}

.crm-chart-head {
    padding: 16px 18px;
    border-bottom: 1px solid var(--crm-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.crm-chart-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--crm-text);
}

.crm-chart-subtitle {
    font-size: 12px;
    color: var(--crm-muted);
    margin-top: 3px;
}

.crm-chart-body {
    padding: 18px;
}

.crm-bar-list {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.crm-bar-row {
    display: grid;
    grid-template-columns: minmax(88px, 140px) 1fr minmax(72px, auto);
    align-items: center;
    gap: 12px;
}

.crm-bar-label {
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.crm-bar-track {
    height: 12px;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
}

.crm-bar-fill {
    display: block;
    height: 100%;
    min-width: 3px;
    border-radius: 999px;
    background: var(--crm-primary);
}

.crm-bar-fill.success { background: var(--crm-success); }
.crm-bar-fill.warning { background: var(--crm-warning); }
.crm-bar-fill.danger { background: var(--crm-danger); }
.crm-bar-value {
    color: var(--crm-muted);
    font-size: 12px;
    text-align: right;
    white-space: nowrap;
}

.crm-task-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.crm-mini-stat {
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: var(--crm-card-soft);
    padding: 14px;
}

.crm-mini-stat-label {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
}

.crm-mini-stat-value {
    margin-top: 8px;
    color: var(--crm-text);
    font-size: 28px;
    line-height: 1;
    font-weight: 850;
}

.crm-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
}

.crm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.crm-table th {
    background: #f9fafb;
    color: var(--crm-muted);
    font-weight: 750;
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid var(--crm-border);
}

.crm-table td {
    padding: 12px 14px;
    border-bottom: 1px solid #f3f4f6;
    color: var(--crm-text);
}

.crm-table tr:last-child td { border-bottom: 0; }

.crm-empty {
    color: var(--crm-muted);
    font-size: 13px;
    padding: 18px;
    text-align: center;
}

.crm-sidebar-version {
    text-align: center;
    color: #9ca3af;
    font-size: 11px;
    line-height: 1.4;
    padding: 18px 12px 12px;
    margin-top: 12px;
}

@media (max-width: 1400px) {
    .crm-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crm-report-span-8, .crm-report-span-6, .crm-report-span-4 { grid-column: span 12; }
}

@media (max-width: 900px) {
    .crm-page-header { flex-direction: column; }
    .crm-stats-grid { grid-template-columns: 1fr; }
    .crm-filter-grid { grid-template-columns: 1fr; }
    .crm-kanban-column { flex-basis: 286px; max-width: 286px; }
    .crm-task-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crm-bar-row { grid-template-columns: 1fr; gap: 6px; }
    .crm-bar-value { text-align: left; }
}

/* v0.10 stable filter layouts */
.crm-page-intro {
    margin-top: -6px;
    margin-bottom: 16px;
}

.crm-filter-panel {
    margin-bottom: 18px;
}

.crm-report-filter-grid,
.crm-kanban-filter-grid,
.crm-task-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.25fr) minmax(170px, .7fr) minmax(150px, .65fr) minmax(150px, .65fr) auto;
    gap: 14px;
    align-items: end;
}

.crm-task-filter-grid.overdue {
    grid-template-columns: minmax(220px, 1.2fr) minmax(150px, .7fr) minmax(130px, .55fr) minmax(130px, .55fr) minmax(150px, .65fr) auto;
}

.crm-kanban-filter-grid {
    grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .75fr) auto auto auto;
}

.crm-filter-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.crm-stats-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.crm-mini-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}

.crm-mini-metric {
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: var(--crm-card-soft);
    padding: 14px;
}

.crm-mini-metric span {
    display: block;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
}

.crm-mini-metric strong {
    display: block;
    margin-top: 8px;
    color: var(--crm-text);
    font-size: 28px;
    line-height: 1;
    font-weight: 850;
}

/* v0.10 task dashboard */
.crm-task-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.crm-task-card {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 0;
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--crm-shadow);
}

.crm-task-card.is-today {
    border-left: 5px solid var(--crm-warning);
}

.crm-task-card.is-overdue {
    border-left: 5px solid var(--crm-danger);
}

.crm-task-time {
    background: var(--crm-warning-soft);
    border-right: 1px solid var(--crm-border);
    padding: 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
}

.crm-task-time.danger {
    background: var(--crm-danger-soft);
}

.crm-task-time strong {
    font-size: 16px;
    font-weight: 850;
    color: var(--crm-text);
}

.crm-task-time span {
    font-size: 12px;
    color: var(--crm-muted);
}

.crm-task-main {
    padding: 18px;
}

.crm-task-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.crm-task-title {
    font-size: 17px;
    font-weight: 850;
    color: var(--crm-text);
}

.crm-task-subtitle {
    margin-top: 6px;
    color: var(--crm-muted);
    font-size: 13px;
}

.crm-task-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px 14px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--crm-border);
    color: var(--crm-muted);
    font-size: 12px;
}

.crm-task-meta-grid strong {
    color: var(--crm-text);
    font-weight: 700;
}

.crm-task-card .crm-card-actions {
    display: flex;
    flex-wrap: wrap;
    margin-top: 14px;
}

.crm-task-card .crm-card-actions .crm-button {
    min-width: 92px;
}

@media (max-width: 1400px) {
    .crm-report-filter-grid,
    .crm-kanban-filter-grid,
    .crm-task-filter-grid,
    .crm-task-filter-grid.overdue {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .crm-filter-actions {
        grid-column: 1 / -1;
    }

    .crm-mini-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .crm-report-filter-grid,
    .crm-kanban-filter-grid,
    .crm-task-filter-grid,
    .crm-task-filter-grid.overdue {
        grid-template-columns: 1fr;
    }

    .crm-task-card {
        grid-template-columns: 1fr;
    }

    .crm-task-time {
        border-right: 0;
        border-bottom: 1px solid var(--crm-border);
    }

    .crm-task-title-row {
        flex-direction: column;
    }

    .crm-task-meta-grid {
        grid-template-columns: 1fr;
    }

    .crm-mini-metrics {
        grid-template-columns: 1fr;
    }
}

/* v0.11 detail pages */
.crm-detail-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.crm-detail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 22px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eef6ff 100%);
}

.crm-detail-hero-main {
    min-width: 0;
}

.crm-detail-kicker {
    color: var(--crm-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.crm-detail-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 850;
    letter-spacing: -0.035em;
    color: var(--crm-text);
}

.crm-detail-subtitle {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 8px;
    color: var(--crm-muted);
    font-size: 13px;
}

.crm-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.crm-tag {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    background: #fff;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
}

.crm-tag-primary {
    color: var(--crm-primary);
    background: var(--crm-primary-soft);
    border-color: var(--crm-primary-border);
}

.crm-tag-success {
    color: var(--crm-success);
    background: var(--crm-success-soft);
    border-color: #a7f3d0;
}

.crm-tag-warning {
    color: var(--crm-warning);
    background: var(--crm-warning-soft);
    border-color: #fde68a;
}

.crm-tag-danger {
    color: var(--crm-danger);
    background: var(--crm-danger-soft);
    border-color: #fecaca;
}

.crm-detail-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    min-width: 280px;
}

.crm-detail-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.crm-detail-stat {
    padding: 16px;
}

.crm-stat-value-sm {
    margin-top: 7px;
    font-size: 28px;
    font-weight: 850;
    line-height: 1;
    color: var(--crm-text);
}

.crm-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 18px;
    align-items: start;
}

.crm-detail-main,
.crm-detail-side {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

.crm-detail-side {
    position: sticky;
    top: 84px;
}

.crm-detail-section {
    overflow: hidden;
}

.crm-section-desc {
    margin-top: 3px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 500;
}

.crm-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.crm-info-item {
    min-height: 72px;
    padding: 13px;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: var(--crm-card-soft);
}

.crm-info-wide {
    grid-column: span 2;
}

.crm-info-label {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 7px;
}

.crm-info-value {
    color: var(--crm-text);
    font-size: 14px;
    font-weight: 650;
    word-break: break-word;
}

.crm-link {
    color: var(--crm-primary);
    text-decoration: none;
}

.crm-link:hover {
    text-decoration: underline;
}

.crm-copy-line {
    display: flex;
    align-items: center;
    gap: 8px;
}

.crm-copy-mini {
    border: 0;
    border-radius: 999px;
    background: var(--crm-primary-soft);
    color: var(--crm-primary);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 9px;
    cursor: pointer;
    white-space: nowrap;
}

.crm-copy-mini:hover {
    background: var(--crm-primary);
    color: #fff;
}

.crm-copy-toast {
    position: fixed;
    right: 24px;
    top: 78px;
    z-index: 80;
    display: none;
    padding: 10px 14px;
    border-radius: 12px;
    background: #111827;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    box-shadow: var(--crm-shadow);
}

.crm-copy-toast.is-visible {
    display: block;
}

.crm-contact-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.crm-mini-card {
    padding: 14px;
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(15, 23, 42, .04);
}

.crm-mini-card-key {
    border-color: #a7f3d0;
    box-shadow: inset 4px 0 0 var(--crm-success), 0 2px 10px rgba(15, 23, 42, .04);
}

.crm-mini-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.crm-mini-title {
    color: var(--crm-text);
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
}

.crm-mini-title:hover {
    color: var(--crm-primary);
}

.crm-muted {
    color: var(--crm-muted);
    font-size: 12px;
}

.crm-mini-lines {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 13px;
}

.crm-mini-lines div {
    min-width: 0;
    padding: 9px;
    border-radius: 12px;
    background: var(--crm-card-soft);
}

.crm-mini-lines span {
    display: block;
    color: var(--crm-muted);
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 4px;
}

.crm-mini-lines strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    color: var(--crm-text);
}

.crm-mini-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.crm-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.crm-timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
}

.crm-timeline-dot {
    width: 10px;
    height: 10px;
    margin-top: 17px;
    border-radius: 999px;
    background: var(--crm-primary);
    box-shadow: 0 0 0 4px var(--crm-primary-soft);
}

.crm-timeline-card {
    padding: 14px;
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
}

.crm-timeline-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.crm-timeline-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--crm-text);
}

.crm-timeline-content {
    margin-top: 10px;
    color: var(--crm-text);
    font-size: 13px;
    line-height: 1.65;
    white-space: pre-wrap;
}

.crm-next-action {
    margin-top: 10px;
    padding: 9px 10px;
    border-radius: 12px;
    background: var(--crm-warning-soft);
    color: #92400e;
    font-size: 12px;
    font-weight: 650;
}

.crm-status-stack {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.crm-status-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--crm-border);
}

.crm-status-row:last-child {
    border-bottom: 0;
}

.crm-status-row span {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 700;
}

.crm-status-row strong {
    color: var(--crm-text);
    font-size: 13px;
    text-align: right;
}

.crm-task-list,
.crm-stage-log-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.crm-task-card {
    padding: 12px;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: #fff;
}

.crm-task-overdue {
    border-color: #fecaca;
    background: var(--crm-danger-soft);
}

.crm-task-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--crm-text);
    margin-bottom: 5px;
}

.crm-stage-log {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 0;
    border-bottom: 1px solid var(--crm-border);
}

.crm-stage-log:last-child {
    border-bottom: 0;
}

.crm-stage-log strong {
    font-size: 13px;
    color: var(--crm-text);
}

.crm-stage-log span {
    font-size: 12px;
    color: var(--crm-muted);
}

.crm-note-box {
    min-height: 80px;
    padding: 12px;
    border-radius: 14px;
    background: var(--crm-card-soft);
    color: var(--crm-text);
    font-size: 13px;
    line-height: 1.7;
    white-space: pre-wrap;
}

.crm-warning-box {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #fde68a;
    border-radius: 14px;
    background: var(--crm-warning-soft);
    color: #92400e;
    font-size: 13px;
    line-height: 1.6;
}

.crm-empty {
    padding: 22px;
    border: 1px dashed var(--crm-border-strong);
    border-radius: 16px;
    background: var(--crm-card-soft);
    color: var(--crm-muted);
    text-align: center;
    font-size: 13px;
}

.crm-empty-small {
    padding: 8px 0;
    color: var(--crm-subtle);
    font-size: 12px;
}

.crm-contact-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.crm-contact-method-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.crm-contact-method-card {
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}

.crm-method-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
    padding: 12px;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-card-soft);
}

.crm-method-head strong {
    color: var(--crm-text);
    font-size: 13px;
}

.crm-method-list {
    padding: 8px 12px 12px;
}

.crm-method-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--crm-border);
    font-size: 13px;
}

.crm-method-item:last-child {
    border-bottom: 0;
}

.crm-method-item span {
    min-width: 0;
    color: var(--crm-text);
    word-break: break-all;
}

.crm-method-item button {
    border: 0;
    background: transparent;
    color: var(--crm-primary);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}

@media (max-width: 1280px) {
    .crm-detail-layout {
        grid-template-columns: 1fr;
    }

    .crm-detail-side {
        position: static;
    }

    .crm-detail-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .crm-detail-hero {
        flex-direction: column;
    }

    .crm-detail-actions {
        justify-content: flex-start;
        min-width: 0;
    }

    .crm-detail-stat-grid,
    .crm-info-grid,
    .crm-contact-card-grid,
    .crm-contact-method-grid,
    .crm-mini-lines {
        grid-template-columns: 1fr;
    }

    .crm-info-wide {
        grid-column: auto;
    }
}

/* v0.12 data quality + full optimization */
.crm-detail-stat-grid-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.crm-method-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
}

.crm-method-value {
    word-break: break-all;
    font-weight: 650;
}

.crm-quality-meter {
    height: 8px;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
    margin-top: 8px;
}

.crm-quality-meter span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--crm-success);
}

.crm-quality-meter.is-warning span { background: var(--crm-warning); }
.crm-quality-meter.is-danger span { background: var(--crm-danger); }

@media (max-width: 1500px) {
    .crm-detail-stat-grid-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
    .crm-detail-stat-grid-6 { grid-template-columns: 1fr; }
}


/* v0.14 fullscreen modal workflow optimization */
.fi-modal-window {
    width: min(95vw, 1920px) !important;
    max-width: 95vw !important;
    max-height: 95vh !important;
}
.fi-modal-window .fi-modal-content {
    max-height: calc(95vh - 96px) !important;
    overflow-y: auto !important;
}
.crm-modal-detail {
    max-height: none;
    overflow: visible;
}
.crm-fullscreen-workspace {
    min-height: calc(95vh - 150px);
}
.crm-modal-sticky-actions {
    position: sticky;
    top: 0;
    z-index: 5;
    padding: 10px 0;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--crm-border);
    backdrop-filter: blur(8px);
}
.crm-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-bottom: 12px;
}
.crm-modal-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.crm-modal-section-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .45fr);
    gap: 14px;
}
.crm-modal-mini-list {
    display: grid;
    gap: 10px;
}
.crm-table-line {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid var(--crm-border);
}
.crm-table-line:last-child { border-bottom: 0; }
.crm-table-line-label { color: var(--crm-muted); font-weight: 650; }
.crm-table-line-value { color: var(--crm-text); word-break: break-word; }
@media (max-width: 900px) {
    .fi-modal-window { width: 100vw !important; max-width: 100vw !important; max-height: 100vh !important; }
    .crm-modal-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crm-modal-section-grid { grid-template-columns: 1fr; }
}

/* v0.15 email workflow */
.crm-alert{padding:.75rem 1rem;border-radius:.75rem;margin-bottom:1rem;font-size:.9rem}.crm-alert-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.crm-alert-danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.crm-alert-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a;margin-top:1rem}.crm-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.crm-form-grid label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;color:#374151;gap:.35rem}.crm-form-grid input,.crm-form-grid select,.crm-form-grid textarea{border:1px solid #d1d5db;border-radius:.65rem;padding:.6rem .75rem;background:#fff;color:#111827;font-weight:400}.crm-form-span-full{grid-column:1/-1}.crm-checkbox{flex-direction:row!important;align-items:center}.crm-checkbox input{width:auto}.crm-modal-actions{display:flex;gap:.75rem;margin-top:1.25rem}.crm-primary-button{background:#2563eb;color:#fff;border:none;border-radius:.65rem;padding:.65rem 1rem;font-weight:700}.crm-secondary-button{background:#f3f4f6;color:#374151;border-radius:.65rem;padding:.65rem 1rem;text-decoration:none;font-weight:700}@media(max-width:900px){.crm-form-grid{grid-template-columns:1fr}}

/* v0.15.1 send-mail usability hotfix */
.crm-rich-editor-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:.45rem;
    padding:.55rem;
    border:1px solid #d1d5db;
    border-bottom:0;
    border-radius:.65rem .65rem 0 0;
    background:#f9fafb;
}
.crm-rich-editor-toolbar button{
    border:1px solid #d1d5db;
    border-radius:.45rem;
    background:#fff;
    color:#374151;
    padding:.35rem .6rem;
    font-size:.82rem;
    font-weight:650;
    cursor:pointer;
}
.crm-rich-editor-toolbar button:hover{background:#f3f4f6;}
.crm-rich-editor{
    min-height:320px;
    border:1px solid #d1d5db;
    border-radius:0 0 .65rem .65rem;
    background:#fff;
    padding:.9rem 1rem;
    color:#111827;
    font-weight:400;
    line-height:1.65;
    overflow:auto;
}
.crm-rich-editor:focus{
    outline:2px solid rgba(37,99,235,.28);
    outline-offset:0;
}
.crm-rich-editor p{margin:.5rem 0;}
.crm-rich-editor ul,.crm-rich-editor ol{margin:.5rem 0 .5rem 1.25rem;}
.crm-form-grid small{font-weight:400;color:#6b7280;line-height:1.4;}

/* v0.15.2 email sending experience optimization */
.crm-mail-workspace {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.crm-mail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 56%, #eff6ff 100%);
}
.crm-mail-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 850;
    letter-spacing: -.035em;
    color: var(--crm-text);
}
.crm-mail-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    min-width: 280px;
}
.crm-mail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 18px;
    align-items: start;
}
.crm-mail-main {
    overflow: hidden;
}
.crm-mail-section {
    padding: 18px;
    border-bottom: 1px solid var(--crm-border);
}
.crm-mail-section:last-of-type {
    border-bottom: 0;
}
.crm-mail-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.crm-mail-section-title,
.crm-side-card-title {
    color: var(--crm-text);
    font-size: 16px;
    font-weight: 850;
}
.crm-mail-grid {
    display: grid;
    gap: 14px;
}
.crm-mail-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.crm-mail-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.crm-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 800;
}
.crm-field input,
.crm-field select,
.crm-field textarea,
.crm-html-source {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--crm-border-strong);
    border-radius: 12px;
    background: #fff;
    color: var(--crm-text);
    padding: 0 12px;
    font-size: 14px;
    font-weight: 500;
    outline: none;
    box-sizing: border-box;
}
.crm-field input:focus,
.crm-field select:focus,
.crm-field textarea:focus,
.crm-html-source:focus {
    border-color: var(--crm-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}
.crm-field small {
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}
.crm-field-full { margin-top: 14px; }
.crm-contact-reminder {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--crm-primary-border);
    border-radius: 16px;
    background: var(--crm-primary-soft);
}
.crm-contact-reminder-title {
    margin-bottom: 10px;
    color: var(--crm-primary);
    font-size: 13px;
    font-weight: 850;
}
.crm-reminder-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}
.crm-reminder-grid div,
.crm-account-summary div {
    padding: 10px;
    border: 1px solid rgba(191, 219, 254, .9);
    border-radius: 12px;
    background: #fff;
}
.crm-reminder-grid span,
.crm-account-summary span {
    display: block;
    color: var(--crm-muted);
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 5px;
}
.crm-reminder-grid strong,
.crm-account-summary strong {
    display: block;
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 850;
    overflow-wrap: anywhere;
}
.crm-reminder-grid small,
.crm-account-summary small {
    display: block;
    margin-top: 5px;
    color: var(--crm-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}
.crm-account-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.crm-warning-list {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.crm-warning-item {
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
}
.crm-warning-item.is-warning {
    color: #92400e;
    background: var(--crm-warning-soft);
    border: 1px solid #fde68a;
}
.crm-warning-item.is-danger {
    color: #991b1b;
    background: var(--crm-danger-soft);
    border: 1px solid #fecaca;
}
.crm-editor-shell {
    position: relative;
    margin-top: 12px;
    border: 1px solid var(--crm-border-strong);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}
.crm-editor-topbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid var(--crm-border);
    background: #f8fafc;
}
.crm-editor-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding-right: 8px;
    border-right: 1px solid var(--crm-border);
}
.crm-editor-group:last-child { border-right: 0; }
.crm-editor-group button,
.crm-editor-group select,
.crm-color-tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    border: 1px solid var(--crm-border-strong);
    border-radius: 9px;
    background: #fff;
    color: var(--crm-text);
    padding: 0 9px;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
}
.crm-editor-group button:hover,
.crm-editor-group select:hover,
.crm-color-tool:hover {
    border-color: var(--crm-primary);
    color: var(--crm-primary);
    background: var(--crm-primary-soft);
}
.crm-color-tool input {
    width: 26px;
    height: 24px;
    margin-left: 5px;
    padding: 0;
    border: 0;
    background: transparent;
}
.crm-mail-editor {
    min-height: 520px;
    max-height: 65vh;
    padding: 18px 20px;
    border: 0;
    border-radius: 0;
    font-size: 14px;
    line-height: 1.75;
}
.crm-html-source {
    min-height: 520px;
    max-height: 65vh;
    border: 0;
    border-radius: 0;
    padding: 18px 20px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    line-height: 1.7;
    resize: vertical;
}
.crm-editor-shell.is-fullscreen {
    position: fixed;
    inset: 3vh 3vw;
    z-index: 9999;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .32);
    border-radius: 18px;
}
.crm-editor-shell.is-fullscreen .crm-mail-editor,
.crm-editor-shell.is-fullscreen .crm-html-source {
    height: calc(94vh - 70px);
    max-height: none;
}
.crm-variable-panel {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 800;
}
.crm-variable-panel button {
    border: 1px solid var(--crm-primary-border);
    border-radius: 999px;
    background: var(--crm-primary-soft);
    color: var(--crm-primary);
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.crm-mail-preview {
    margin-top: 14px;
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.crm-mail-preview-head {
    padding: 12px 14px;
    background: #f9fafb;
    border-bottom: 1px solid var(--crm-border);
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 850;
}
.crm-mail-preview-subject {
    padding: 14px 16px;
    border-bottom: 1px solid var(--crm-border);
    color: var(--crm-text);
    font-size: 17px;
    font-weight: 850;
}
.crm-mail-preview-body {
    padding: 18px;
    color: var(--crm-text);
    line-height: 1.7;
}
.crm-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}
.crm-mail-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--crm-border);
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(8px);
}
.crm-mail-side {
    position: sticky;
    top: 84px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.crm-side-card {
    padding: 16px;
}
.crm-side-card-title {
    margin-bottom: 12px;
}
.crm-variable-side {
    display: grid;
    gap: 8px;
}
.crm-variable-side button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    border: 1px solid var(--crm-border);
    border-radius: 12px;
    background: #fff;
    padding: 9px 10px;
    color: var(--crm-text);
    cursor: pointer;
}
.crm-variable-side button:hover {
    border-color: var(--crm-primary);
    background: var(--crm-primary-soft);
}
.crm-variable-side code {
    color: var(--crm-primary);
    font-weight: 800;
}
.crm-variable-side span {
    color: var(--crm-muted);
    font-size: 12px;
}
.crm-mail-task-mini {
    padding: 10px 0;
    border-bottom: 1px solid var(--crm-border);
}
.crm-mail-task-mini:last-child { border-bottom: 0; }
.crm-mail-task-mini strong {
    display: block;
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 800;
}
.crm-mail-task-mini span {
    display: block;
    margin-top: 4px;
    color: var(--crm-muted);
    font-size: 12px;
}
@media (max-width: 1500px) {
    .crm-mail-layout { grid-template-columns: 1fr; }
    .crm-mail-side { position: static; }
    .crm-reminder-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .crm-mail-hero { flex-direction: column; }
    .crm-mail-hero-actions { justify-content: flex-start; min-width: 0; }
    .crm-mail-grid-3,
    .crm-mail-grid-2,
    .crm-action-grid,
    .crm-account-summary,
    .crm-reminder-grid { grid-template-columns: 1fr; }
    .crm-mail-sticky-actions { flex-wrap: wrap; justify-content: flex-start; }
}

/* v0.16.1 import wizard UI */
.crm-import-page {
    max-width: 1680px;
    margin: 0 auto;
}
.crm-alert {
    margin-bottom: 16px;
    padding: 14px 16px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 700;
}
.crm-alert-success { color: #065f46; background: #ecfdf5; border: 1px solid #a7f3d0; }
.crm-alert-danger { color: #991b1b; background: #fef2f2; border: 1px solid #fecaca; }
.crm-import-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}
.crm-import-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    max-width: 640px;
}
.crm-import-action,
.crm-import-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 15px;
    border-radius: 12px;
    border: 1px solid var(--crm-border-strong);
    background: #fff;
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.crm-import-action:hover,
.crm-import-submit:hover {
    border-color: var(--crm-primary);
    background: var(--crm-primary-soft);
    color: var(--crm-primary);
}
.crm-import-action-primary,
.crm-import-submit {
    border-color: var(--crm-primary);
    background: var(--crm-primary);
    color: #fff;
}
.crm-import-action-primary:hover,
.crm-import-submit:hover {
    background: #1d4ed8;
    color: #fff;
}
.crm-import-stepper {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}
.crm-import-step {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: #fff;
    color: var(--crm-muted);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
}
.crm-import-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: #f3f4f6;
    color: var(--crm-muted);
    font-weight: 900;
}
.crm-import-step strong {
    font-size: 13px;
    font-weight: 850;
}
.crm-import-step.is-active {
    border-color: var(--crm-primary-border);
    background: linear-gradient(180deg, #fff, var(--crm-primary-soft));
    color: var(--crm-primary);
}
.crm-import-step.is-active span {
    background: var(--crm-primary);
    color: #fff;
}
.crm-import-step.is-done span {
    background: var(--crm-success);
    color: #fff;
}
.crm-import-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 18px;
    align-items: start;
}
.crm-import-main,
.crm-import-side {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.crm-import-side {
    position: sticky;
    top: 82px;
}
.crm-import-card {
    border: 1px solid var(--crm-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
    overflow: hidden;
}
.crm-import-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(180deg, #fff, #f9fafb);
}
.crm-import-card-head.compact { padding: 16px 18px; }
.crm-import-card-head-spaced { border-top: 1px solid var(--crm-border); margin-top: 20px; }
.crm-import-card-head h2 {
    margin: 0;
    color: var(--crm-text);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -0.015em;
}
.crm-import-card-head p {
    margin: 5px 0 0;
    color: var(--crm-muted);
    font-size: 13px;
    line-height: 1.6;
}
.crm-import-workflow { padding-bottom: 22px; }
.crm-import-type-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 20px 22px 0;
}
.crm-import-type-card {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-height: 144px;
    padding: 16px;
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    background: #fff;
    cursor: pointer;
    transition: .16s ease;
}
.crm-import-type-card:hover,
.crm-import-type-card.is-selected {
    border-color: var(--crm-primary);
    background: var(--crm-primary-soft);
    box-shadow: 0 12px 26px rgba(37, 99, 235, .10);
    transform: translateY(-1px);
}
.crm-import-type-card input { display: none; }
.crm-import-type-card span {
    align-self: flex-start;
    border-radius: 999px;
    background: #f3f4f6;
    padding: 4px 9px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 850;
}
.crm-import-type-card.is-selected span {
    background: #dbeafe;
    color: var(--crm-primary);
}
.crm-import-type-card strong {
    color: var(--crm-text);
    font-size: 15px;
    font-weight: 900;
}
.crm-import-type-card small {
    color: var(--crm-muted);
    font-size: 12px;
    line-height: 1.65;
}
.crm-import-upload {
    position: relative;
    margin: 20px 22px 0;
    min-height: 210px;
    border: 2px dashed var(--crm-primary-border);
    border-radius: 22px;
    background: linear-gradient(180deg, var(--crm-primary-soft), #fff);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
    padding: 24px;
    transition: .16s ease;
}
.crm-import-upload:hover,
.crm-import-upload.is-dragover,
.crm-import-upload.has-file {
    border-color: var(--crm-primary);
    box-shadow: inset 0 0 0 4px rgba(37, 99, 235, .08);
}
.crm-import-upload input[type=file] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.crm-import-upload-icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    background: var(--crm-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: 900;
    box-shadow: 0 16px 28px rgba(37, 99, 235, .22);
}
.crm-import-upload strong {
    color: var(--crm-text);
    font-size: 18px;
    font-weight: 900;
}
.crm-import-upload p {
    margin: 6px 0 0;
    color: var(--crm-muted);
    font-size: 13px;
}
.crm-import-file-name {
    position: relative;
    z-index: 1;
    display: inline-flex;
    border-radius: 999px;
    background: #fff;
    padding: 7px 12px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 800;
    border: 1px solid var(--crm-border);
}
.crm-import-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: end;
    padding: 20px 22px 0;
}
.crm-import-controls label span {
    display: block;
    margin-bottom: 7px;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 850;
}
.crm-import-preview { overflow: hidden; }
.crm-import-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    padding: 20px 22px 0;
}
.crm-import-stat {
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    background: #f9fafb;
    padding: 16px;
}
.crm-import-stat span {
    display: block;
    color: var(--crm-muted);
    font-size: 12px;
    font-weight: 800;
}
.crm-import-stat strong {
    display: block;
    margin-top: 8px;
    color: var(--crm-text);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}
.crm-import-stat.is-success { background: var(--crm-success-soft); border-color: #a7f3d0; }
.crm-import-stat.is-danger { background: var(--crm-danger-soft); border-color: #fecaca; }
.crm-import-stat.is-warning { background: var(--crm-warning-soft); border-color: #fde68a; }
.crm-import-mapping {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 12px;
    padding: 16px 22px 0;
}
.crm-import-mapping-card {
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
}
.crm-import-mapping-card strong {
    display: block;
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 8px;
}
.crm-import-mapping-card p {
    margin: 0;
    color: var(--crm-muted);
    font-size: 12px;
    line-height: 1.6;
}
.crm-import-mapping-card.is-danger { background: var(--crm-danger-soft); border-color: #fecaca; }
.crm-import-mapping-card.is-success { background: var(--crm-success-soft); border-color: #a7f3d0; }
.crm-import-mapping-card.is-info { background: var(--crm-primary-soft); border-color: var(--crm-primary-border); }
.crm-import-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.crm-import-chip-list span {
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    padding: 4px 8px;
    background: #f9fafb;
    color: var(--crm-text);
    font-size: 11px;
    font-weight: 800;
}
.crm-import-chip-list em {
    color: var(--crm-muted);
    font-style: normal;
    font-size: 12px;
}
.crm-import-quality {
    margin: 16px 22px 0;
    border: 1px solid #fde68a;
    border-radius: 18px;
    background: var(--crm-warning-soft);
    padding: 14px 16px;
    color: #92400e;
}
.crm-import-quality strong { display: block; margin-bottom: 6px; font-weight: 900; }
.crm-import-quality ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.8; }
.crm-import-table-wrap {
    margin: 18px 22px 0;
    overflow-x: auto;
    border: 1px solid var(--crm-border);
    border-radius: 18px;
}
.crm-import-table {
    width: 100%;
    min-width: 820px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}
.crm-import-table th {
    padding: 12px 14px;
    background: #f9fafb;
    color: var(--crm-muted);
    font-size: 12px;
    text-align: left;
    border-bottom: 1px solid var(--crm-border);
}
.crm-import-table td {
    padding: 13px 14px;
    border-bottom: 1px solid #f3f4f6;
    color: var(--crm-text);
    font-size: 13px;
}
.crm-import-table tr:last-child td { border-bottom: 0; }
.crm-import-table tr.has-error td { background: #fff7f7; }
.crm-import-table tr.has-warning td { background: #fffdf3; }
.crm-import-badge {
    display: inline-flex;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 11px;
    font-weight: 850;
}
.crm-import-badge.success { background: var(--crm-success-soft); color: #047857; }
.crm-import-badge.danger { background: var(--crm-danger-soft); color: #b91c1c; }
.crm-import-badge.warning { background: var(--crm-warning-soft); color: #b45309; }
.crm-import-muted { color: var(--crm-subtle); }
.crm-import-confirm {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 18px 22px 22px;
    padding: 16px;
    border: 1px solid var(--crm-primary-border);
    border-radius: 18px;
    background: var(--crm-primary-soft);
}
.crm-import-confirm strong {
    display: block;
    color: var(--crm-text);
    font-weight: 900;
}
.crm-import-confirm p {
    margin: 4px 0 0;
    color: var(--crm-muted);
    font-size: 12px;
}
.crm-import-empty {
    padding: 20px 18px;
    color: var(--crm-muted);
}
.crm-import-empty strong {
    display: block;
    color: var(--crm-text);
    font-weight: 900;
    margin-bottom: 4px;
}
.crm-import-batch-list {
    display: grid;
    gap: 12px;
    padding: 14px;
}
.crm-import-batch {
    border: 1px solid var(--crm-border);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
}
.crm-import-batch-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}
.crm-import-batch-top strong {
    color: var(--crm-text);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.4;
    word-break: break-word;
}
.crm-import-status {
    display: inline-flex;
    white-space: nowrap;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 11px;
    font-weight: 900;
    background: #f3f4f6;
    color: var(--crm-muted);
}
.crm-import-status.is-processing { background: var(--crm-primary-soft); color: var(--crm-primary); }
.crm-import-status.is-completed { background: var(--crm-success-soft); color: #047857; }
.crm-import-status.is-partial { background: var(--crm-warning-soft); color: #b45309; }
.crm-import-status.is-failed { background: var(--crm-danger-soft); color: #b91c1c; }
.crm-import-progress-bar {
    height: 9px;
    margin: 12px 0;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
}
.crm-import-progress-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--crm-primary), #38bdf8);
}
.crm-import-batch-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    color: var(--crm-muted);
    font-size: 12px;
}
.crm-import-message {
    margin: 10px 0 0;
    color: var(--crm-muted);
    font-size: 12px;
    line-height: 1.6;
}
.crm-import-batch-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.crm-import-batch-actions a,
.crm-import-batch-actions button {
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text);
    padding: 6px 9px;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
    cursor: pointer;
}
.crm-import-batch-actions a:hover,
.crm-import-batch-actions button:hover {
    border-color: var(--crm-primary);
    background: var(--crm-primary-soft);
    color: var(--crm-primary);
}
.crm-import-batch-actions button.danger:hover {
    border-color: #fecaca;
    background: var(--crm-danger-soft);
    color: #b91c1c;
}
.crm-import-rule-list {
    display: grid;
    gap: 10px;
    padding: 14px 18px 16px;
}
.crm-import-rule-list div {
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: #f9fafb;
    padding: 10px 12px;
    color: var(--crm-text);
    font-size: 13px;
    line-height: 1.55;
}
.crm-import-rule-list.soft div { color: var(--crm-muted); background: #fff; }
.crm-import-details {
    margin: 0 18px 18px;
    border: 1px solid var(--crm-border);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
.crm-import-details summary {
    cursor: pointer;
    padding: 12px 14px;
    color: var(--crm-primary);
    font-size: 13px;
    font-weight: 900;
}
.crm-import-field-groups {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
}
.crm-import-field-groups div {
    border-top: 1px solid var(--crm-border);
    padding-top: 10px;
}
.crm-import-field-groups strong {
    display: block;
    margin-bottom: 5px;
    color: var(--crm-text);
    font-size: 12px;
    font-weight: 900;
}
.crm-import-field-groups p {
    margin: 0;
    color: var(--crm-muted);
    font-size: 12px;
    line-height: 1.7;
}
@media (max-width: 1500px) {
    .crm-import-layout { grid-template-columns: 1fr; }
    .crm-import-side { position: static; }
    .crm-import-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crm-import-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .crm-import-mapping { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .crm-import-header { flex-direction: column; }
    .crm-import-actions { justify-content: flex-start; max-width: none; }
    .crm-import-stepper { grid-template-columns: 1fr; }
    .crm-import-type-grid,
    .crm-import-stat-grid,
    .crm-import-controls { grid-template-columns: 1fr; }
    .crm-import-confirm { align-items: stretch; flex-direction: column; }
}

/* v0.17 workbench and mail workstation polish */
.crm-workbench-v17 { max-width: 1680px; margin: 0 auto; }
.crm-workbench-header { align-items: center; }
.crm-workbench-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
.crm-today-command-card { display:grid; grid-template-columns:minmax(0,1fr) 520px; gap:20px; padding:22px; margin-bottom:18px; background:linear-gradient(135deg,#ffffff 0%,#f8fafc 54%,#eff6ff 100%); }
.crm-today-progress-line { display:flex; align-items:baseline; gap:10px; margin-top:8px; }
.crm-today-progress-line strong { font-size:36px; font-weight:900; letter-spacing:-.04em; color:var(--crm-text); }
.crm-today-progress-line span { color:var(--crm-muted); font-weight:750; }
.crm-progress-bar { height:12px; border-radius:999px; background:#e5e7eb; overflow:hidden; margin-top:16px; }
.crm-progress-bar span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#2563eb,#22c55e); transition:width .25s ease; }
.crm-today-command-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; align-items:stretch; }
.crm-today-command-stats div { padding:14px; border:1px solid var(--crm-primary-border); border-radius:14px; background:#fff; }
.crm-today-command-stats span { display:block; color:var(--crm-muted); font-size:12px; font-weight:800; }
.crm-today-command-stats strong { display:block; margin-top:6px; color:var(--crm-text); font-size:26px; font-weight:900; }
.crm-workbench-grid-v17 { margin-top:18px; }

.crm-mail-workspace-v17 { max-width:1720px; margin:0 auto; }
.crm-mail-commandbar { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:22px; background:linear-gradient(135deg,#ffffff 0%,#f8fafc 58%,#eff6ff 100%); }
.crm-mail-commandbar .crm-page-desc strong { color:var(--crm-text); }
.crm-mail-layout-v17 { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:18px; align-items:start; }
.crm-mail-step .crm-mail-section-title { display:flex; align-items:center; gap:8px; }
.crm-mail-step .crm-mail-section-title span { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:999px; background:var(--crm-primary); color:#fff; font-size:12px; font-weight:900; }
.crm-company-picker .crm-company-search { margin-bottom:8px; }
.crm-reminder-grid-v17 { grid-template-columns:repeat(6,minmax(0,1fr)); }
.crm-account-summary-v17 div { border-color:var(--crm-primary-border); }
.crm-editor-shell-v17 { border-radius:18px; box-shadow:0 2px 10px rgba(15,23,42,.04); }
.crm-editor-topbar-v17 { gap:10px; padding:12px; }
.crm-editor-topbar-v17 .crm-editor-group { gap:6px; }
.crm-editor-topbar-v17 button { gap:5px; min-width:38px; }
.crm-editor-topbar-v17 button span { font-size:12px; font-weight:800; }
.crm-editor-topbar-v17 select { min-width:76px; }
.crm-mail-sticky-actions-v17 { box-shadow:0 -8px 22px rgba(15,23,42,.05); }
.crm-mail-side-v17 { top:92px; }
.crm-context-card { background:linear-gradient(180deg,#fff 0%,#f8fafc 100%); }
.crm-mail-preview-warning { margin:0 18px 18px; padding:10px 12px; border:1px solid #fde68a; border-radius:12px; color:#92400e; background:#fffbeb; font-size:13px; font-weight:750; }
.crm-alert a { margin-left:10px; color:inherit; font-weight:850; text-decoration:underline; }

.crm-email-test-panel { border:1px solid var(--crm-border); border-radius:16px; padding:16px; background:#f8fafc; }
.crm-email-test-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.crm-email-test-head strong { display:block; color:var(--crm-text); font-size:15px; font-weight:850; }
.crm-email-test-head p { margin:.25rem 0 0; color:var(--crm-muted); font-size:13px; }
.crm-email-test-actions { display:flex; flex-wrap:wrap; gap:8px; }
.crm-email-test-result { margin-top:12px; display:grid; gap:4px; padding:12px; border-radius:12px; font-size:13px; }
.crm-email-test-result.is-ok { border:1px solid #a7f3d0; background:#ecfdf5; color:#065f46; }
.crm-email-test-result.is-failed { border:1px solid #fecaca; background:#fef2f2; color:#991b1b; }
.crm-email-test-result span { font-weight:700; }
.crm-email-test-result small { opacity:.75; }
.crm-account-status-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.crm-account-status-summary > div { border:1px solid var(--crm-border); border-radius:14px; padding:12px; background:#fff; display:grid; gap:5px; }
.crm-account-status-summary .is-ok { border-color:#a7f3d0; background:#ecfdf5; color:#065f46; }
.crm-account-status-summary .is-failed { border-color:#fecaca; background:#fef2f2; color:#991b1b; }
.crm-account-status-summary .is-unknown { color:var(--crm-muted); }
.crm-account-status-summary strong { font-weight:850; }
.crm-account-status-summary span, .crm-account-status-summary small { font-size:12px; overflow-wrap:anywhere; }

.crm-email-template-editor [contenteditable="true"],
.crm-email-template-editor .ProseMirror,
.crm-email-template-editor textarea { min-height:480px !important; }
.crm-email-signature-editor [contenteditable="true"],
.crm-email-signature-editor .ProseMirror,
.crm-email-signature-editor textarea { min-height:360px !important; }

@media (max-width: 1500px) {
    .crm-mail-layout-v17 { grid-template-columns:1fr; }
    .crm-mail-side-v17 { position:static; }
    .crm-today-command-card { grid-template-columns:1fr; }
}
@media (max-width: 900px) {
    .crm-mail-commandbar, .crm-workbench-header { flex-direction:column; align-items:flex-start; }
    .crm-reminder-grid-v17, .crm-today-command-stats, .crm-account-status-summary { grid-template-columns:1fr; }
}

/* v0.17.1: efficiency-first full width workspace and target progress */
.crm-workbench-v17,
.crm-mail-workspace-v17,
.crm-import-page-v161,
.crm-import-ui {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.crm-mail-layout-v17 {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
}
.crm-target-card-v171 { margin-bottom: 18px; }
.crm-target-grid-v171 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: 18px;
}
.crm-target-panel-v171 {
    border: 1px solid var(--crm-border);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    padding: 16px;
}
.crm-target-panel-head-v171 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.crm-target-panel-head-v171 strong {
    display: block;
    font-size: 16px;
    font-weight: 850;
    color: var(--crm-text);
}
.crm-target-panel-head-v171 span {
    display: block;
    margin-top: 3px;
    color: var(--crm-muted);
    font-size: 12px;
}
.crm-target-main-rate-v171 {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}
.crm-target-main-rate-v171 b {
    font-size: 30px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em;
    color: var(--crm-primary);
}
.crm-target-main-rate-v171 span {
    color: var(--crm-muted);
    font-weight: 750;
}
.crm-target-row-list-v171 {
    margin-top: 14px;
    display: grid;
    gap: 10px;
}
.crm-target-row-v171 {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--crm-border);
}
.crm-target-row-v171 span,
.crm-target-row-v171 strong {
    position: relative;
    z-index: 1;
}
.crm-target-row-v171 span {
    color: var(--crm-muted);
    font-size: 13px;
    font-weight: 750;
}
.crm-target-row-v171 strong {
    color: var(--crm-text);
    font-weight: 900;
}
.crm-target-row-v171 em {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 0;
    max-width: 100%;
    background: linear-gradient(90deg, rgba(37,99,235,.12), rgba(34,197,94,.12));
}
@media (max-width: 1200px) {
    .crm-target-grid-v171 { grid-template-columns: 1fr; }
}
.crm-import-page { width:100% !important; max-width:none !important; margin-left:0 !important; margin-right:0 !important; }

/* v0.18: product-grade closure polish */
.crm-v18-fullwidth,
.crm-workbench-v17,
.crm-mail-workbench-v17,
.crm-import-v16 {
    width: 100%;
    max-width: none !important;
}
.crm-review-card-v18 { margin-top: 16px; }
.crm-review-grid-v18 {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.crm-review-item-v18 {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    padding: 14px;
}
.crm-review-item-v18 span { display:block; font-size:12px; color:#64748b; }
.crm-review-item-v18 strong { display:block; font-size:24px; margin:4px 0; color:#0f172a; }
.crm-review-item-v18 em { display:block; font-size:12px; color:#64748b; font-style:normal; line-height:1.5; }
.crm-health-card-v18 { margin-top: 16px; }
.crm-health-list-v18 { display:grid; gap:10px; margin-top:12px; }
.crm-health-row-v18,
.crm-health-command-v18 {
    display:grid;
    grid-template-columns: 220px 90px 1fr;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    border:1px solid #e5e7eb;
    border-radius:12px;
    background:#fff;
}
.crm-health-row-v18.ok span { color:#047857; font-weight:700; }
.crm-health-row-v18.bad { border-color:#fecaca; background:#fff7f7; }
.crm-health-row-v18.bad span { color:#b91c1c; font-weight:700; }
.crm-health-row-v18 em { color:#64748b; font-style:normal; }
.crm-health-command-v18 { grid-template-columns: 220px 1fr; }
.crm-health-command-v18 code { white-space: normal; word-break: break-all; background:#f8fafc; border:1px solid #e5e7eb; border-radius:8px; padding:8px; }
.crm-email-detail-v18 { display:grid; gap:8px; font-size:14px; }
.crm-email-body-preview-v18 { border:1px solid #e5e7eb; border-radius:12px; padding:16px; background:#fff; min-height:220px; }
.crm-danger-text { color:#b91c1c; }
.crm-email-template-preview-v18 { border:1px solid #e5e7eb; border-radius:14px; padding:16px; background:#fff; }
.crm-variable-help-v18 { padding:10px 12px; background:#eff6ff; color:#1e3a8a; border:1px solid #bfdbfe; border-radius:12px; }
.crm-duplicate-compare-v18 { display:grid; gap:12px; }
.crm-duplicate-compare-v18 pre { white-space: pre-wrap; background:#f8fafc; border:1px solid #e5e7eb; border-radius:12px; padding:12px; }
.fi-fo-rich-editor.crm-tall-rich-editor-v18 .tiptap,
.crm-email-template-editor .tiptap { min-height: 480px !important; }
.crm-email-signature-editor .tiptap { min-height: 360px !important; }
@media (max-width: 1100px) {
    .crm-review-grid-v18 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .crm-health-row-v18, .crm-health-command-v18 { grid-template-columns: 1fr; }
}
