/* Сетка и мелкие детали поверх дизайн-системы. Цвета — только токены, компоненты ДС (.kt-ai-kpi, .kt-ai-card, .kt-ai-table…) не переопределяются. */ .kt-ai-sidebar-inner { display: flex; flex-direction: column; height: 100%; padding: var(--kt-ai-space-6) var(--kt-ai-space-4) var(--kt-ai-space-4); } .kt-ai-sidebar-foot { margin-top: auto; padding: 0 var(--kt-ai-space-4); } /* ===== КPI: карточки-плашки ===== */ .kt-ai-kpi-strip[data-cards="true"] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--kt-ai-space-5); padding: 0; } .kt-ai-kpi-strip[data-cards="true"] .kt-ai-kpi { background: var(--kt-ai-card-bg); border: 1px solid var(--kt-ai-card-border); border-radius: var(--kt-ai-radius-2xl); padding: var(--kt-ai-space-5) var(--kt-ai-space-6); gap: var(--kt-ai-space-2); } .delta { font-size: var(--kt-ai-text-2xs); font-weight: var(--kt-ai-weight-medium); font-variant-numeric: tabular-nums; } .delta.ok { color: var(--kt-ai-status-ok-fg); } .delta.down { color: var(--kt-ai-status-risk-fg); } /* ===== График ===== */ .kt-ai-chart-card { background: var(--kt-ai-card-bg); border: 1px solid var(--kt-ai-card-border); border-radius: var(--kt-ai-radius-2xl); padding: var(--kt-ai-pad-card); } .cc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--kt-ai-space-4); margin-bottom: var(--kt-ai-space-6); } .cc-title { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); } .cc-total { display: flex; align-items: baseline; gap: var(--kt-ai-space-3); margin-top: var(--kt-ai-space-2); } .cc-total .num { font-size: var(--kt-ai-text-2xl); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1.1; } .cc-total .unit { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); } .cc-chart { display: flex; align-items: flex-end; gap: var(--kt-ai-space-3); height: var(--kt-ai-chart-height); padding-top: var(--kt-ai-space-5); border-bottom: 1px solid var(--kt-ai-border-strong); } .cc-bar { flex: 1 1 0; min-width: 0; height: 100%; display: flex; align-items: flex-end; justify-content: center; } .cc-bar i { display: block; width: 22px; max-width: 80%; min-height: 2px; border-radius: 2px 2px 0 0; background: var(--kt-ai-chart-blue); opacity: .85; transition: opacity var(--kt-ai-dur-fast); } .cc-bar:hover i, .cc-bar:focus-visible i, .cc-bar[data-kt-tip-open="true"] i { opacity: 1; } .cc-axis { display: flex; gap: var(--kt-ai-space-3); margin-top: var(--kt-ai-space-3); } .cc-axis span { flex: 1 1 0; min-width: 0; text-align: center; font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); white-space: nowrap; } /* Сетка из двух карточек (направления + топ клиентов) */ .kt-ai-chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--kt-ai-space-5); } /* ===== По направлениям ===== */ .cat-list { display: flex; flex-direction: column; } .cat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--kt-ai-space-2) var(--kt-ai-space-6); align-items: center; padding: var(--kt-ai-space-3) 0; } .cat-row + .cat-row { border-top: 1px solid var(--kt-ai-divider); } .cat-name { font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cat-val { font-size: var(--kt-ai-text-sm); font-variant-numeric: tabular-nums; color: var(--kt-ai-fg-muted); text-align: right; } .cat-track { grid-column: 1 / -1; height: 4px; border-radius: var(--kt-ai-radius-full); background: var(--kt-ai-bg-active); overflow: hidden; } .cat-track i { display: block; height: 100%; border-radius: var(--kt-ai-radius-full); } /* ===== Топ клиентов ===== */ .kt-ai-card .card-cap { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); margin-bottom: var(--kt-ai-space-4); } .toplist { display: flex; flex-direction: column; } .top-row { display: flex; align-items: center; gap: var(--kt-ai-space-4); padding: var(--kt-ai-space-3) 0; } .top-row + .top-row { border-top: 1px solid var(--kt-ai-divider); } .top-rank { width: 22px; height: 22px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--kt-ai-radius-full); background: var(--kt-ai-bg-active); color: var(--kt-ai-fg-muted); font-size: var(--kt-ai-text-2xs); font-weight: var(--kt-ai-weight-semibold); font-variant-numeric: tabular-nums; } .top-info { min-width: 0; flex: 1; } .top-name { font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .top-meta { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); } .top-sum { font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-medium); font-variant-numeric: tabular-nums; } /* ===== Детализация ===== */ .kt-ai-filterbar #dealSearch { max-width: 360px; } .kt-ai-deal-c { min-width: 0; } .deal-dir { display: block; font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); margin-top: 1px; } .kt-ai-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; } .kt-ai-table th.num { text-align: right; } .kt-ai-table-meta { display: flex; flex-wrap: wrap; gap: var(--kt-ai-space-3) var(--kt-ai-space-6); padding: var(--kt-ai-space-4) var(--kt-ai-space-5); font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); justify-content: space-between; } .kt-ai-empty { display: flex; flex-direction: column; align-items: center; gap: var(--kt-ai-space-2); padding: var(--kt-ai-space-10) var(--kt-ai-space-6); color: var(--kt-ai-fg-faint); } .kt-ai-empty .title { color: var(--kt-ai-fg); font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-medium); } .kt-ai-empty .hint { font-size: var(--kt-ai-text-xs); } /* ===== Адаптив ===== */ @media (max-width: 1023px) { .kt-ai-kpi-strip[data-cards="true"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kt-ai-chart-grid { grid-template-columns: 1fr; } } @media (max-width: 639px) { .kt-ai-filterbar #dealSearch { max-width: none; } .cc-chart { gap: var(--kt-ai-space-2); } .cc-bar i { width: 14px; } .cc-axis span { font-size: 10px; } } @media (max-width: 430px) { .kt-ai-kpi-strip[data-cards="true"] { grid-template-columns: 1fr 1fr; gap: var(--kt-ai-space-3); } .kt-ai-kpi-strip[data-cards="true"] .kt-ai-kpi { padding: var(--kt-ai-space-4); } }