/* Журнал заявок — компоновка страницы. Все цвета и элементы — из ДС (var(--kt-ai-…)). */ /* Шапка: свой flex-layout (kt-ai-wrap — контентная обёртка лендинга, здесь не нужна) */ .kt-ai-pagehead { border-bottom: 1px solid var(--kt-ai-divider); background: var(--kt-ai-bg); } .kt-ai-pagehead-in { display: flex; align-items: center; gap: var(--kt-ai-space-4); padding-inline: var(--kt-ai-space-6); max-width: var(--kt-ai-content-table); margin: 0 auto; } .brand { display: flex; align-items: center; gap: var(--kt-ai-space-4); min-width: 0; } .brand img { flex: 0 0 auto; } .brand strong { font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-semibold); letter-spacing: -.01em; } /* Двухколоночная рабочая область */ .journal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--kt-ai-space-10); max-width: var(--kt-ai-content-table); margin: 0 auto; padding: var(--kt-ai-space-8) var(--kt-ai-space-6) var(--kt-ai-space-11); align-items: start; } .journal-main { min-width: 0; } .journal-side { position: sticky; top: var(--kt-ai-space-6); } /* Заголовок + поиск в одну строку */ .toolbar-row { display: flex; flex-direction: column; gap: var(--kt-ai-space-5); } .search-row { display: flex; gap: var(--kt-ai-space-3); } .search-row .kt-ai-input { flex: 1 1 auto; min-width: 0; width: auto; } /* Фильтр-пилюли: обычный вариант класса чипа, нажатый — как активный таб */ .status-chip { appearance: none; border: 1px solid var(--kt-ai-border); background: transparent; color: var(--kt-ai-fg-muted); border-radius: var(--kt-ai-radius-full); padding: var(--kt-ai-space-2) var(--kt-ai-space-5); font-family: var(--kt-ai-font-sans); font-size: var(--kt-ai-text-sm); cursor: pointer; display: inline-flex; align-items: center; gap: var(--kt-ai-space-2); } .status-chip:hover { background: var(--kt-ai-bg-hover); color: var(--kt-ai-fg); } .status-chip .count { font-size: var(--kt-ai-text-2xs); color: var(--kt-ai-fg-faint); font-variant-numeric: tabular-nums; } .status-chip[data-active="true"] { background: var(--kt-ai-bg-elevated); border-color: var(--kt-ai-border-strong); color: var(--kt-ai-fg); font-weight: var(--kt-ai-weight-medium); box-shadow: inset 0 0 0 1px var(--kt-ai-border-strong); } .status-chip[data-active="true"] .count { color: var(--kt-ai-fg-muted); } .chips-row { align-items: center; } /* Строки таблицы: выбор и действия */ .kt-ai-table tbody tr.selectable { cursor: pointer; } .kt-ai-table tbody tr.selectable td { height: var(--kt-ai-table-row-relaxed); } .kt-ai-table tbody tr[data-selected="true"] { background: var(--kt-ai-bg-active); } .req-title { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .req-title .id { font-weight: var(--kt-ai-weight-medium); color: var(--kt-ai-fg); } .req-sub { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 340px; } .cell-date { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); font-variant-numeric: tabular-nums; white-space: nowrap; } /* Сбросить фильтры в строке чипов */ .chips-row .clear-all { flex: 0 0 auto; } /* Панель деталей */ .detail-card { background: var(--kt-ai-card-bg); border: 1px solid var(--kt-ai-card-border); border-radius: var(--kt-ai-radius-2xl); box-shadow: var(--kt-ai-card-shadow); padding: var(--kt-ai-space-6) var(--kt-ai-space-7); } .detail-head { display: flex; flex-direction: column; gap: var(--kt-ai-space-2); margin-bottom: var(--kt-ai-space-5); } .detail-head .id { font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-semibold); } .detail-title-row { display: flex; align-items: center; justify-content: space-between; gap: var(--kt-ai-space-4); } .detail-title { font-size: var(--kt-ai-text-md); font-weight: var(--kt-ai-weight-medium); min-width: 0; } .detail-rows { display: flex; flex-direction: column; border-top: 1px solid var(--kt-ai-divider); } .detail-row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--kt-ai-space-5); padding: var(--kt-ai-space-3) 0; border-bottom: 1px solid var(--kt-ai-divider); } .detail-row:last-child { border-bottom: none; } .detail-row .k { font-size: var(--kt-ai-text-xs); color: var(--kt-ai-fg-muted); flex: 0 0 auto; } .detail-row .v { font-size: var(--kt-ai-text-sm); color: var(--kt-ai-fg); text-align: right; min-width: 0; overflow-wrap: anywhere; } .desc-label { margin-top: var(--kt-ai-space-5); } .detail-desc { margin: var(--kt-ai-space-2) 0 0; font-size: var(--kt-ai-text-sm); line-height: var(--kt-ai-leading-normal); color: var(--kt-ai-fg); white-space: pre-wrap; overflow-wrap: anywhere; } .detail-status-line { margin-top: var(--kt-ai-space-5); } .detail-actions { position: sticky; bottom: 0; display: flex; gap: var(--kt-ai-space-3); padding-top: var(--kt-ai-space-5); margin-top: var(--kt-ai-space-5); border-top: 1px solid var(--kt-ai-divider); background: var(--kt-ai-card-bg); } .detail-actions .kt-ai-btn { width: 100%; } .detail-hint { border: 1px dashed var(--kt-ai-border-strong); border-radius: var(--kt-ai-radius-2xl); padding: var(--kt-ai-space-8) var(--kt-ai-space-6); text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--kt-ai-space-3); color: var(--kt-ai-fg-muted); } .detail-hint .kt-icon { width: 22px; height: 22px; flex-basis: 22px; color: var(--kt-ai-fg-faint); } /* Пустое состояние */ .kt-ai-table-wrap .kt-ai-empty { padding: var(--kt-ai-space-10) var(--kt-ai-space-4); } /* Тост: текст рядом с точкой */ .kt-ai-toast { font-size: var(--kt-ai-text-sm); } /* Телефон: одна колонка, панель деталей — под списком */ @media (max-width: 1023px) { .journal-layout { grid-template-columns: 1fr; gap: var(--kt-ai-space-8); } .journal-side { position: static; } } @media (max-width: 639px) { .kt-ai-pagehead-in { flex-wrap: wrap; height: auto; padding: var(--kt-ai-space-3) var(--kt-ai-space-4); row-gap: var(--kt-ai-space-2); } .brand strong { font-size: var(--kt-ai-text-sm); } .journal-layout { padding: var(--kt-ai-space-5) var(--kt-ai-space-4) var(--kt-ai-space-9); } .search-row { flex-direction: column; gap: var(--kt-ai-space-3); } .search-row .kt-ai-input { width: 100%; } .kt-ai-filterbar { gap: var(--kt-ai-space-2); } .req-sub { max-width: none; } }