159 lines
14 KiB
CSS
159 lines
14 KiB
CSS
/* Мелки поверх ДС: сетки, таблицы, графики своими столбиками. Цвета — только токены. */
|
|
a.kt-ai-btn { text-decoration: none; }
|
|
button.kt-ai-btn { font: inherit; }
|
|
|
|
/* ---------- layout ---------- */
|
|
.sb-side { display: flex; flex-direction: column; padding: var(--kt-ai-space-5) var(--kt-ai-space-4); gap: 2px; min-height: 100dvh; }
|
|
.sb-top { display: flex; align-items: center; gap: var(--kt-ai-space-4); padding: 0 var(--kt-ai-space-2) var(--kt-ai-space-6); }
|
|
.sb-top img { width: 24px; height: 24px; border-radius: var(--kt-ai-radius-md); object-fit: contain; }
|
|
.sb-top .nm { min-width: 0; flex: 1; display: flex; flex-direction: column; }
|
|
.sb-top .nm b { font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-semibold); color: var(--kt-ai-fg); letter-spacing: -.01em; line-height: 1.25; }
|
|
.sb-top .nm span { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-muted); }
|
|
.sb-nav { display: flex; flex-direction: column; gap: 2px; }
|
|
.sb-nav .kt-ai-nav-item .lbl { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
|
|
.sb-nav .kt-ai-nav-item .lbl small { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); }
|
|
.sb-foot { margin-top: auto; padding: var(--kt-ai-space-5) var(--kt-ai-space-2) 0; }
|
|
|
|
.topbar-title { display: flex; align-items: baseline; gap: var(--kt-ai-space-4); min-width: 0; }
|
|
.topbar-title .t { font-size: var(--kt-ai-text-lg); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
.topbar-title .sub { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); white-space: nowrap; }
|
|
@media (max-width: 767.98px) { .topbar-title .sub { display: none; } }
|
|
|
|
.view { width: 100%; max-width: 1200px; margin-inline: auto; padding: var(--kt-ai-space-8); }
|
|
.page-head { display: flex; align-items: flex-start; gap: var(--kt-ai-space-6); margin-bottom: var(--kt-ai-space-6); }
|
|
.page-head .ph-text { flex: 1; min-width: 0; }
|
|
.page-head h1 { margin: 0; font-size: var(--kt-ai-text-2xl); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; line-height: 1.15; }
|
|
.page-head .sub { margin-top: var(--kt-ai-space-3); font-size: var(--kt-ai-text-sm); color: var(--kt-ai-fg-muted); max-width: 68ch; }
|
|
.page-head .ph-action { flex-shrink: 0; display: flex; gap: var(--kt-ai-space-4); flex-wrap: wrap; }
|
|
@media (max-width: 639.98px) { .page-head { flex-direction: column; gap: var(--kt-ai-space-5); } }
|
|
|
|
.grid-2 { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--kt-ai-space-6); align-items: start; }
|
|
.grid-2-rev { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--kt-ai-space-6); align-items: start; }
|
|
@media (max-width: 1023.98px) { .grid-2, .grid-2-rev { grid-template-columns: 1fr; } }
|
|
|
|
.kt-ai-card.block { padding: var(--kt-ai-space-6); margin-bottom: var(--kt-ai-space-6); }
|
|
.block-head { display: flex; align-items: center; gap: var(--kt-ai-space-4); margin-bottom: var(--kt-ai-space-5); }
|
|
.block-head h2 { margin: 0; font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; }
|
|
.block-head .cap { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); }
|
|
.block-head .spacer { flex: 1; }
|
|
.block-sub { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); margin: -4px 0 var(--kt-ai-space-5); }
|
|
|
|
/* ---------- фильтры ---------- */
|
|
.filter-row { display: flex; align-items: center; gap: var(--kt-ai-space-4); flex-wrap: wrap; margin-bottom: var(--kt-ai-space-5); }
|
|
.filter-row .kt-ai-select-wrap { width: 220px; }
|
|
.filter-note { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); }
|
|
|
|
/* ---------- таблицы ---------- */
|
|
.table-wrap { max-height: 520px; overflow: auto; border-bottom: 1px solid var(--kt-ai-divider); }
|
|
.kt-ai-table .col-compact { white-space: nowrap; }
|
|
.kt-ai-table tbody tr[data-clickable="true"] { cursor: pointer; }
|
|
.cell-num { font-variant-numeric: tabular-nums; }
|
|
.delta-neg { color: var(--kt-ai-status-risk-fg); }
|
|
.delta-pos { color: var(--kt-ai-status-ok-fg); }
|
|
.cell-orig { font-family: var(--kt-ai-font-mono); font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-muted); }
|
|
|
|
/* отклонения: свод 2 (оранжевый) и более (красный) */
|
|
.cell-dev-2, .cell-dev-3 { box-shadow: inset 2px 0 0 var(--kt-ai-status-warn-fg); background: var(--kt-ai-status-warn-bg); }
|
|
.cell-dev-3 { box-shadow: inset 2px 0 0 var(--kt-ai-status-risk-fg); background: var(--kt-ai-status-risk-bg); }
|
|
/* ошибки единиц */
|
|
.cell-unit-w { box-shadow: inset 2px 0 0 var(--kt-ai-status-risk-fg); background: var(--kt-ai-status-risk-bg); }
|
|
.cell-unit-fixed { box-shadow: inset 2px 0 0 var(--kt-ai-chart-green); background: var(--kt-ai-status-ok-bg); }
|
|
|
|
/* ---------- файлы ---------- */
|
|
.file-list { display: flex; flex-direction: column; gap: 2px; max-height: 360px; overflow: auto; }
|
|
.file-list .kt-ai-row { padding: var(--kt-ai-space-3) var(--kt-ai-space-4); align-items: center; gap: var(--kt-ai-space-4); border-radius: var(--kt-ai-radius-lg); }
|
|
.file-list .f-ic { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: var(--kt-ai-radius-lg); background: var(--kt-ai-bg-soft); border: 1px solid var(--kt-ai-border); color: var(--kt-ai-fg-muted); flex: 0 0 auto; }
|
|
.file-list .f-name { min-width: 0; flex: 1; font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-medium); }
|
|
.file-list .f-meta { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); white-space: nowrap; }
|
|
.kt-icon { width: 16px; height: 16px; display: block; }
|
|
|
|
/* ---------- прогресс ---------- */
|
|
.progress-head { display: flex; align-items: center; gap: var(--kt-ai-space-4); margin-bottom: var(--kt-ai-space-3); }
|
|
.progress-head .cap { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); }
|
|
.progress-head b { font-size: var(--kt-ai-text-sm); font-weight: var(--kt-ai-weight-semibold); font-variant-numeric: tabular-nums; }
|
|
|
|
/* ---------- журнал ---------- */
|
|
.log-list { display: flex; flex-direction: column; gap: var(--kt-ai-space-4); max-height: 430px; overflow: auto; }
|
|
.log-item { display: flex; gap: var(--kt-ai-space-4); align-items: flex-start; }
|
|
.log-item .log-time { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); font-variant-numeric: tabular-nums; width: 40px; flex: 0 0 auto; padding-top: 2px; }
|
|
.log-item .log-tag { flex: 0 0 auto; margin-top: 1px; }
|
|
.log-item p { margin: 0; font-size: var(--kt-ai-text-sm); color: var(--kt-ai-fg-muted); line-height: 1.5; }
|
|
.log-item p b { color: var(--kt-ai-fg); font-weight: var(--kt-ai-weight-medium); }
|
|
|
|
/* ---------- stepper ---------- */
|
|
.steps { display: flex; align-items: center; gap: var(--kt-ai-space-3); flex-wrap: wrap; }
|
|
.step { display: inline-flex; align-items: center; gap: var(--kt-ai-space-3); padding: var(--kt-ai-space-3) var(--kt-ai-space-5); border: 1px solid var(--kt-ai-border); border-radius: var(--kt-ai-radius-full); background: var(--kt-ai-bg-elevated); font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); font-weight: var(--kt-ai-weight-medium); cursor: pointer; transition: border-color var(--kt-ai-dur-fast), color var(--kt-ai-dur-fast); }
|
|
.step:hover:not(:disabled) { border-color: var(--kt-ai-border-strong); color: var(--kt-ai-fg); }
|
|
.step[data-cur="true"] { border-color: var(--kt-ai-primary); color: var(--kt-ai-fg); background: var(--kt-ai-primary-subtle); }
|
|
.step[data-done="true"] { color: var(--kt-ai-fg); }
|
|
.step .ic { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--kt-ai-bg-active); color: var(--kt-ai-fg-muted); font-size: 10px; font-weight: var(--kt-ai-weight-bold); font-variant-numeric: tabular-nums; }
|
|
.step[data-done="true"] .ic { background: var(--kt-ai-status-ok-fg); color: var(--kt-ai-bg); }
|
|
.step[data-cur="true"] .ic { background: var(--kt-ai-primary); color: var(--kt-ai-fg-on-fill); }
|
|
.step:disabled { opacity: .55; cursor: default; }
|
|
.step-sep { width: 14px; height: 1px; background: var(--kt-ai-border-strong); flex: 0 0 auto; }
|
|
|
|
/* ---------- график ---------- */
|
|
.chart-svg { width: 100%; height: 190px; display: block; }
|
|
.cc-bars { display: flex; align-items: flex-end; gap: 6px; height: 190px; padding-top: 20px; }
|
|
.cc-bars .bar { flex: 1; min-width: 16px; max-width: 44px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: var(--kt-ai-space-3); cursor: default; }
|
|
.cc-bars .bar-fill { width: 100%; min-height: 3px; background: var(--kt-ai-chart-blue); border-radius: 2px 2px 0 0; transition: opacity var(--kt-ai-dur-fast); }
|
|
.cc-bars .bar span { font-size: 9px; color: var(--kt-ai-fg-faint); font-variant-numeric: tabular-nums; line-height: 1.1; text-align: center; }
|
|
.cc-bars .bar:hover .bar-fill { opacity: .75; }
|
|
.chart-legend { display: flex; align-items: center; gap: var(--kt-ai-space-5); font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); }
|
|
.chart-legend .sw { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 6px; vertical-align: baseline; }
|
|
|
|
/* ---------- черновик анализа ---------- */
|
|
.navi-row { display: flex; align-items: center; gap: var(--kt-ai-space-5); flex-wrap: wrap; margin-bottom: var(--kt-ai-space-5); }
|
|
.navi-row .sel { display: flex; align-items: center; gap: var(--kt-ai-space-4); min-width: 0; flex: 1; }
|
|
.navi-row .sel b { font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; white-space: nowrap; }
|
|
.navi-row .sel span { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); font-variant-numeric: tabular-nums; }
|
|
.analysis-body { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--kt-ai-space-6); align-items: start; }
|
|
@media (max-width: 1023.98px) { .analysis-body { grid-template-columns: 1fr; } }
|
|
.analysis-list { display: flex; flex-direction: column; gap: 2px; max-height: 470px; overflow: auto; border-right: 1px solid var(--kt-ai-divider); padding-right: var(--kt-ai-space-5); }
|
|
@media (max-width: 1023.98px) { .analysis-list { border-right: none; padding-right: 0; border-bottom: 1px solid var(--kt-ai-divider); padding-bottom: var(--kt-ai-space-4); max-height: none; } }
|
|
.analysis-list .kt-ai-row { flex-wrap: wrap; line-height: 1.5; }
|
|
.analysis-list .kt-ai-row .dot { width: 7px; height: 7px; border-radius: 50%; margin-left: auto; flex: 0 0 auto; }
|
|
.analysis-list .dot-ok { background: var(--kt-ai-status-ok-fg); }
|
|
.analysis-list .dot-gen { background: var(--kt-ai-border-strong); }
|
|
.analysis-list .dot-err { background: var(--kt-ai-status-risk-fg); }
|
|
.analysis-list .sub { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); flex-basis: 100%; margin-left: var(--kt-ai-space-11); }
|
|
|
|
.ed-wrap { border: 1px solid var(--kt-ai-border); border-radius: var(--kt-ai-radius-2xl); background: var(--kt-ai-bg-elevated); overflow: hidden; }
|
|
.ed-head { display: flex; align-items: center; gap: var(--kt-ai-space-4); padding: var(--kt-ai-space-4) var(--kt-ai-space-5); border-bottom: 1px solid var(--kt-ai-divider); background: var(--kt-ai-bg-soft); }
|
|
.ed-head .cap { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); }
|
|
textarea.kt-ai-analysis { width: 100%; min-height: 300px; border: none; border-radius: 0; box-shadow: none; padding: var(--kt-ai-space-5); font-size: var(--kt-ai-text-sm); line-height: 1.65; background: var(--kt-ai-bg); }
|
|
textarea.kt-ai-analysis:focus { box-shadow: none; }
|
|
.ed-stats { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); }
|
|
|
|
/* ---------- записка / excel предпросмотр ---------- */
|
|
.memo { padding: var(--kt-ai-space-7); border: 1px solid var(--kt-ai-border); border-radius: var(--kt-ai-radius-2xl); background: var(--kt-ai-bg-elevated); }
|
|
.memo h3 { margin: 0 0 var(--kt-ai-space-3); font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; }
|
|
.memo p { margin: 0 0 var(--kt-ai-space-4); font-size: var(--kt-ai-text-sm); line-height: 1.65; color: var(--kt-ai-fg-muted); }
|
|
.memo p b { color: var(--kt-ai-fg); font-weight: var(--kt-ai-weight-medium); }
|
|
.memo .memo-meta { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-faint); margin-bottom: var(--kt-ai-space-5); }
|
|
|
|
/* ---------- «О решении» ---------- */
|
|
.pass-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--kt-ai-space-6); }
|
|
.pass-card .kv { display: grid; grid-template-columns: 130px 1fr; gap: var(--kt-ai-space-3) var(--kt-ai-space-5); }
|
|
.pass-card .kv dt { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); padding-top: 2px; }
|
|
.pass-card .kv dd { margin: 0; font-size: var(--kt-ai-text-sm); line-height: 1.55; }
|
|
.pass-card ol, .pass-card ul { margin: 0; padding-left: var(--kt-ai-space-6); display: flex; flex-direction: column; gap: var(--kt-ai-space-2); font-size: var(--kt-ai-text-sm); color: var(--kt-ai-fg-muted); line-height: 1.55; }
|
|
.pass-card ol li, .pass-card ul li { min-width: 0; }
|
|
|
|
/* ---------- toast ---------- */
|
|
.toast-stack { position: fixed; bottom: var(--kt-ai-space-7); right: var(--kt-ai-space-7); display: flex; flex-direction: column; gap: var(--kt-ai-space-4); z-index: 2000; }
|
|
.toast { display: flex; align-items: center; gap: var(--kt-ai-space-4); width: 340px; max-width: calc(100vw - 48px); background: var(--kt-ai-bg-elevated); border: 1px solid var(--kt-ai-border-strong); border-radius: var(--kt-ai-radius-xl); box-shadow: var(--kt-ai-shadow-lg); padding: var(--kt-ai-space-4) var(--kt-ai-space-5); font-size: var(--kt-ai-text-sm); animation: tok-in .18s ease; }
|
|
.toast::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--kt-ai-primary); flex: 0 0 auto; }
|
|
.toast[data-tone="ok"]::before { background: var(--kt-ai-status-ok-fg); }
|
|
.toast[data-tone="warn"]::before { background: var(--kt-ai-status-warn-fg); }
|
|
@keyframes tok-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
|
|
|
|
/* ---------- mobile ---------- */
|
|
.sb-scrim { display: none; position: fixed; inset: 0; background: var(--kt-ai-overlay); z-index: 1400; }
|
|
@media (max-width: 831.98px) {
|
|
.sb-scrim.on { display: block; }
|
|
.sb-side { position: fixed; inset: auto 0 0 auto; width: 280px; z-index: 1500; transform: translateX(100%); transition: transform var(--kt-ai-dur-base) var(--kt-ai-ease-standard); background: var(--kt-ai-bg-elevated); box-shadow: var(--kt-ai-shadow-lg); }
|
|
.sb-side[data-open="true"] { transform: none; }
|
|
.view { padding: var(--kt-ai-space-6) var(--kt-ai-space-5) var(--kt-ai-space-10); }
|
|
}
|