/* S2D site-wide global search — canonical styles. Served from /s2d-search.css (public/).
   Uses existing brand tokens (--b-canvas/--b-ink/--b-accent/--b-accent-ink, --font-*, --radius-pill).
   Adds exactly ONE control to the floating header (.s2d-search-btn) — nothing else in the header moves. */

/* ── trigger button (injected into .header__right) — icon-only, desktop + mobile ── */
.s2d-search-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;cursor:pointer;
  background:transparent;border:1px solid color-mix(in srgb,var(--b-ink) 16%,transparent);border-radius:10px;
  color:color-mix(in srgb,var(--b-ink) 78%,transparent);
  transition:border-color var(--dur-fast,120ms),color var(--dur-fast,120ms);}
.s2d-search-btn:hover{border-color:var(--b-accent);color:var(--b-accent);}
.s2d-search-btn:focus-visible{outline:2px solid var(--b-accent);outline-offset:2px;}
.s2d-search-btn svg{width:19px;height:19px;flex:none;}

/* ── command palette overlay (fixed, full viewport) ── */
.s2d-search{position:fixed;inset:0;z-index:2200;display:none;}
.s2d-search.is-open{display:block;}
.s2d-search__scrim{position:absolute;inset:0;background:color-mix(in srgb,#02060d 64%,transparent);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;
  transition:opacity var(--dur-base,200ms) var(--ease-standard,ease);}
.s2d-search.is-open .s2d-search__scrim{opacity:1;}
.s2d-search__panel{position:absolute;left:50%;top:11%;transform:translate(-50%,-8px);
  width:min(640px,calc(100% - 32px));background:color-mix(in srgb,var(--b-canvas) 96%,#fff);
  border:1px solid color-mix(in srgb,var(--b-ink) 14%,transparent);border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,0.55);overflow:hidden;opacity:0;
  transition:opacity var(--dur-base,200ms) var(--ease-standard,ease),transform var(--dur-base,200ms) var(--ease-emphasis,ease);}
.s2d-search.is-open .s2d-search__panel{opacity:1;transform:translate(-50%,0);}
@media (prefers-reduced-motion:reduce){
  .s2d-search__scrim,.s2d-search__panel{transition:none;}
  .s2d-search__panel{transform:translate(-50%,0);}
}

.s2d-search__in{display:flex;align-items:center;gap:13px;padding:17px 18px;
  border-bottom:1px solid color-mix(in srgb,var(--b-ink) 12%,transparent);}
.s2d-search__in svg{width:21px;height:21px;flex:none;color:var(--b-accent);}
.s2d-search__in input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--b-ink);
  font-family:var(--font-sans);font-size:18px;}
.s2d-search__in input::placeholder{color:color-mix(in srgb,var(--b-ink) 40%,transparent);}
.s2d-search__esc{font-family:var(--font-mono);font-size:11px;color:color-mix(in srgb,var(--b-ink) 50%,transparent);
  border:1px solid color-mix(in srgb,var(--b-ink) 18%,transparent);border-radius:6px;padding:3px 7px;cursor:pointer;background:transparent;}

.s2d-search__scope{display:flex;align-items:center;gap:8px;padding:10px 18px;
  border-bottom:1px solid color-mix(in srgb,var(--b-ink) 8%,transparent);font-family:var(--font-mono);font-size:11px;
  letter-spacing:0.06em;text-transform:uppercase;color:color-mix(in srgb,var(--b-ink) 50%,transparent);}
.s2d-search__scope .chip{cursor:pointer;padding:4px 11px;border-radius:var(--radius-pill);background:transparent;
  border:1px solid color-mix(in srgb,var(--b-ink) 16%,transparent);color:color-mix(in srgb,var(--b-ink) 62%,transparent);
  font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;}
.s2d-search__scope .chip.on{background:var(--b-accent);border-color:var(--b-accent);color:var(--b-accent-ink);}

.s2d-search__results{max-height:48vh;overflow-y:auto;padding:8px 8px 12px;}
.s2d-group{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;
  color:color-mix(in srgb,var(--b-ink) 45%,transparent);padding:14px 12px 7px;}
.s2d-hit{display:flex;align-items:center;gap:14px;padding:11px 12px;border-radius:10px;cursor:pointer;text-decoration:none;}
.s2d-hit.active{background:color-mix(in srgb,var(--b-accent) 16%,transparent);}
.s2d-hit__ic{width:34px;height:34px;flex:none;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid color-mix(in srgb,var(--b-ink) 14%,transparent);color:var(--b-accent);}
.s2d-hit__ic svg{width:17px;height:17px;}
.s2d-hit__tx{min-width:0;flex:1;}
.s2d-hit__t{display:block;font-family:var(--font-sans);font-size:15px;font-weight:600;color:var(--b-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.s2d-hit__t mark{background:transparent;color:var(--b-accent);}
.s2d-hit__p{display:block;font-family:var(--font-mono);font-size:11.5px;color:color-mix(in srgb,var(--b-ink) 48%,transparent);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;}
.s2d-hit__badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:0.06em;flex:none;
  padding:3px 8px;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--b-ink) 18%,transparent);
  color:color-mix(in srgb,var(--b-ink) 60%,transparent);}
.s2d-empty{padding:34px 18px 40px;text-align:center;font-family:var(--font-sans);font-size:15px;
  color:color-mix(in srgb,var(--b-ink) 55%,transparent);}
.s2d-empty b{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:color-mix(in srgb,var(--b-ink) 38%,transparent);margin-bottom:6px;font-weight:600;}

.s2d-search__foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:11px 18px;
  border-top:1px solid color-mix(in srgb,var(--b-ink) 10%,transparent);
  font-family:var(--font-mono);font-size:11px;color:color-mix(in srgb,var(--b-ink) 45%,transparent);}
.s2d-search__foot kbd{font-family:var(--font-mono);border:1px solid color-mix(in srgb,var(--b-ink) 18%,transparent);
  border-radius:5px;padding:2px 6px;color:color-mix(in srgb,var(--b-ink) 62%,transparent);}
.s2d-search__foot .count{margin-left:auto;color:var(--b-accent);}
body.s2d-search-open{overflow:hidden;}
