/* search.css — the site-wide search panel (⌘K) + the corner magnifier (requires theme.css + ui.css) */
body.ks-lock { overflow: hidden; }
/* 遮罩与面板用 ui.css 的 .scrim / .surface-float，这里只写位置与尺寸：
   面板贴近视口上沿，内部分头、结果、脚三段，自身不留内边距。 */
#ksBg { z-index: 10001; align-items: flex-start; padding: 12vh 16px 16px; padding-top: 12dvh; }
#ksPanel {
  --dialog-w: 600px; --dialog-h: 72vh; --surface-pad: 0;
  overflow: hidden;
}
.ks-head {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px 12px 16px;
  border-bottom: var(--bw) solid var(--border);
}
.ks-icon { color: var(--blue2); flex: none; }
#ksInput {
  flex: 1; min-width: 0;
  border: none; background: transparent; outline: none;
  font-family: var(--font-sans); font-size: 16px; color: var(--text);
  -webkit-appearance: none;
}
#ksInput::placeholder { color: var(--text3); }
#ksInput::-webkit-search-cancel-button { display: none; }
/* 桌面为 Esc 键帽（.kbd），可点 */
#ksClose { flex: none; cursor: pointer; transition: color var(--dur-fast); }
#ksClose:hover { color: var(--text); }
.ks-esc-x { display: none; }
/* 面板内的加载行、失败态与空态取紧凑内边距（ui.css --state-pad / --state-line-pad）。
   状态区在结果列表（listbox）之外，没有内容时不占位；列表为空时同样不占位。 */
.ks-status {
  --state-pad: 14px 16px; --state-line-pad: 8px 0;
  flex: none; padding: 6px 6px 0;
}
.ks-status:empty, .ks-body:empty { display: none; }
.ks-body {
  overflow-y: auto; padding: 6px; scrollbar-width: thin; min-height: 80px;
}
.ks-status:not(:empty) + .ks-body { padding-top: 0; }
.ks-h {
  font-size: 11px; font-weight: 400; letter-spacing: .18em; color: var(--text3);
  padding: 10px 10px 4px;
}
.ks-row {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--r-md);
  text-decoration: none; color: var(--text);
  transition: background var(--dur-fast);
}
.ks-row.active { background: rgba(var(--blue-rgb), 0.12); }
.ks-ic { flex: none; width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 14px; background: var(--surface-muted); color: var(--blue2); }
.ks-txt { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 1px; }
.ks-title { font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-sub { font-size: 12px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-row mark { background: none; color: var(--blue2); }
.ks-go { flex: none; font-size: 11px; color: var(--text3); opacity: 0; transition: opacity var(--dur-fast); }
.ks-row.active .ks-go { opacity: 1; }
.ks-foot {
  display: flex; gap: 14px; justify-content: flex-end;
  padding: 8px 14px; border-top: var(--bw) solid var(--border);
  font-size: 11px; color: var(--text3);
}
.ks-foot .kbd { margin-right: 3px; }
/* 窄屏与触屏（含横屏手机、平板）没有 Esc 键与方向键：键帽换成 ✕，去掉底部的键位提示 */
@media (max-width: 580px), (pointer: coarse) {
  #ksBg { padding: 8vh 10px 10px; padding-top: 8dvh; }
  #ksPanel { --dialog-h: 80vh; }
  .ks-foot { display: none; }
  /* 关闭钮为 36px 见方的 ✕。 */
  #ksClose { display: flex; align-items: center; justify-content: center;
             width: 36px; height: 36px; padding: 0; border-radius: 50%;
             font-size: 14px; letter-spacing: 0; }
  .ks-esc-key { display: none; }
  .ks-esc-x { display: inline-flex; }
}


/* 触屏没有回车键，结果行右侧的 ↵ 提示只在有键盘的设备上显示 */
@media (pointer: coarse) { .ks-go { display: none; } }

/* 动态视口高度：移动端地址栏收放时面板不被裁切；不支持 dvh 的浏览器保留上面的 vh */
@supports (height: 1dvh) {
  #ksPanel { --dialog-h: 72dvh; }
  @media (max-width: 580px), (pointer: coarse) {
    #ksPanel { --dialog-h: 80dvh; }
  }
}
