/* search.css — «Поиск» и фрагмент (js/search.js): строка запроса, режим и фильтры, карточки с подсветкой <mark>,
   колонка задач и идей по названию. Основа — claude-me css/pages/search.css; только токены. Владелец — агент `kb`. */

.search-form { display: flex; flex-direction: column; gap: var(--s3); margin-bottom: var(--s3); }
.search-row { display: flex; gap: var(--s2); }
.search-row input[type="search"] { flex: 1 1 auto; min-width: 0; }
.search-row .btn { flex: none; }
.search-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s4); }
.search-filters .field.inline > span { color: var(--fg-muted); }
.search-filters select, .search-filters input[type="date"] { width: auto; min-height: var(--control-h-sm); }
/* режим — радиокнопки в виде сегмента: стрелки и Tab работают от самих radio */
.search-mode { margin: 0; border: 0; min-width: 0; }
.search-mode .seg-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.search-mode input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.search-mode .seg-btn:has(input:checked) { background: var(--seg-active-bg); color: var(--seg-active-fg);
  border-color: var(--seg-active-border); box-shadow: var(--seg-active-shadow); font-weight: var(--fw-semibold); }
.search-mode .seg-btn:has(input:focus-visible) { outline: var(--focus-w) solid var(--ring); outline-offset: 1px; }
.sr-space { gap: var(--s1h); }
.search-note { display: flex; align-items: center; gap: var(--s2); min-height: var(--s5); margin-bottom: var(--s2); }
#sr-results[aria-busy="true"] { cursor: progress; }
#sr-results > .notice { margin-bottom: var(--s3); }

.search-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); align-items: start; }
.search-layout.has-side { grid-template-columns: minmax(0, 1fr) 320px; }
.search-aside { display: flex; flex-direction: column; gap: var(--s4); }
.search-aside .card + .card { margin-top: 0; }
.side-h { display: flex; align-items: center; gap: var(--s2); margin-bottom: var(--s2); font-size: var(--fs-md); }
.side-h .icon { color: var(--fg-muted); }
.search-side .list li { align-items: flex-start; }
.search-side .list a { text-decoration: none; }
.search-side .list a:hover { text-decoration: underline; }

.results { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s3); }
.results .card + .card { margin-top: 0; }
.result { --card-border: var(--border); display: flex; flex-direction: column; gap: var(--s2); }
.result:hover, .result:focus-within { --card-border: var(--border-strong); }
.result-title { font-size: var(--fs-base); overflow-wrap: anywhere; }
.result-title a { text-decoration: none; }
.result-title a:hover { text-decoration: underline; }
.result-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1h) var(--s3); font-size: var(--fs-sm); color: var(--fg-muted); }
.result-meta .chip .icon, .hit-authors .icon { width: 12px; height: 12px; }
.hit-authors { display: inline-flex; align-items: center; gap: var(--s1); }
.snippet { font-size: var(--fs-md); line-height: var(--lh-body); color: var(--fg-muted); overflow-wrap: anywhere; }
mark { background: var(--mark-bg); color: var(--mark-fg); border-radius: var(--r-xs); box-shadow: var(--shadow-mark);
  font-weight: var(--fw-semibold); }
.search-idle { max-width: 600px; }

/* фрагмент целиком */
.chunk-meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--s1h) var(--s3); }
.chunk-meta .chip .icon { width: 12px; height: 12px; }
.chunk-card { display: flex; flex-direction: column; gap: var(--s3); }
.chunk-head { margin: 0; }
.chunk-text { display: flex; flex-direction: column; gap: var(--s1h); line-height: var(--lh-body); overflow-wrap: anywhere; }
.chunk-nav { margin-top: var(--s4); }

@media (max-width: 900px) {
  .search-layout.has-side { grid-template-columns: minmax(0, 1fr); }
  .search-aside { order: -1; }
}
@media (max-width: 640px) {
  .search-row { flex-wrap: wrap; }
  .search-row .btn { flex: 1 1 100%; }
  .search-filters { gap: var(--s2); }
  .search-filters .field.inline { flex: 1 1 140px; flex-direction: column; align-items: stretch; gap: var(--s1); }
  .search-filters .field.sr-source-field { flex-basis: 100%; }
  .search-filters select, .search-filters input[type="date"] { width: 100%; }
  .search-mode { flex: 1 1 100%; }
}
