
    /* ============ KB search: a real control, generated with its index ============
       The box was disabled markup with a ⌘K hint bound to nothing. These styles ship
       from tools/build-kb.py so both KB pages get them identically. */
    .faq-search { position: relative; }
    .faq-search:focus-within { border-color: var(--mineral); }
    .faq-search input { cursor: text; }
    .faq-search input[disabled] { cursor: not-allowed; }
    .faq-search-shortcut[hidden] { display: none; }

    .kb-sr { position: fixed; z-index: 120; display: none; flex-direction: column; max-height: min(60vh, 520px); overflow-y: auto; background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 24px 60px rgba(0,0,0,.55); padding: 6px; }
    .kb-sr[data-open] { display: flex; }
    .kb-sr-group { font-family: var(--mono,'JetBrains Mono',monospace); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--faint); padding: 10px 10px 4px; }
    .kb-sr-item { display: flex; align-items: baseline; gap: 8px; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--muted); cursor: pointer; }
    .kb-sr-item:hover, .kb-sr-item[data-active] { background: rgba(230,224,210,.06); }
    .kb-sr-t { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.4; color: var(--text); }
    .kb-sr-t mark { background: transparent; color: var(--mineral); font-weight: 500; }
    .kb-sr-s { font-size: 11.5px; color: var(--faint); margin-top: 2px; display: block; }
    .kb-sr-c { flex-shrink: 0; font-family: var(--mono,'JetBrains Mono',monospace); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--faint); border: 1px solid var(--line-soft); border-radius: 999px; padding: 2px 7px; }
    .kb-sr-none { padding: 14px 12px; font-size: 13px; color: var(--muted); }
    .kb-sr-foot { border-top: 1px solid var(--line-soft); margin-top: 4px; padding: 9px 10px; font-size: 11.5px; color: var(--faint); display: flex; gap: 10px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
    .kb-sr-widen { font: inherit; color: var(--mineral); background: transparent; border: 0; padding: 0; cursor: pointer; text-decoration: underline; }
    .kb-sr-keys { font-family: var(--mono,'JetBrains Mono',monospace); font-size: 10px; }
    .kb-hit { animation: kb-hit 1.6s ease-out 1; }
    @keyframes kb-hit { 0%, 40% { background: rgba(230,224,210,.10); } 100% { background: transparent; } }

    /* Search stays available where the nav does not: the sidebar is display:none below
       760px, which would have made a working search box invisible on every phone. */
    @media (max-width: 760px) {
      .faq-sidebar { display: block; position: static; max-height: none; overflow: visible; border-right: 0; margin-right: 0; padding: 12px 0 0; }
      .faq-sidebar .faq-nav { display: none; }
      .faq-search { margin-bottom: 16px; }
      /* no keyboard, no keyboard hint */
      .faq-search-shortcut { display: none; }
    }
    