.repopicker-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: #0009;
  overscroll-behavior: contain;
}
.repopicker-sheet {
  box-sizing: border-box;
  width: 100%;
  max-width: 520px;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  padding: 10px 16px max(16px, env(safe-area-inset-bottom));
  background: var(--surface-raised);
  color: var(--text);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -10px 30px #0009;
  animation: repopicker-rise .16s ease-out;
}
.repopicker-grab {
  flex: none;
  width: 40px;
  height: 4px;
  border-radius: 2px;
  background: var(--dimmer);
  margin: 2px auto 10px;
}
.repopicker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.repopicker-heading h2 { margin: 0; font: 600 18px 'Space Grotesk', sans-serif; }
.repopicker-sheet button { cursor: pointer; border: 0; }
.repopicker-cancel, .repopicker-retry {
  padding: 10px 4px;
  background: transparent;
  color: var(--pink);
  font: 500 13px 'Space Grotesk', sans-serif;
}
.repopicker-filter {
  box-sizing: border-box;
  flex: none;
  width: 100%;
  height: 42px;
  border: 0;
  border-radius: 12px;
  background: var(--inset);
  box-shadow: inset 0 0 0 1px var(--border-strong);
  padding: 0 12px;
  color: var(--text);
  font: 500 16px 'Hanken Grotesk', sans-serif;
  margin: 10px 0 6px;
}
.repopicker-filter::placeholder { color: var(--dim); }
.repopicker-results { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.repopicker-label {
  font: 400 10.5px 'Space Mono', monospace;
  color: var(--dimmer);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 10px 0 6px;
}
.repopicker-recent { display: flex; gap: 8px; flex-wrap: wrap; }
.repopicker-recent button {
  font: 600 14px 'Space Grotesk', sans-serif;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--pink);
  color: #2a0716;
}
.repopicker-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  width: 100%;
  text-align: left;
  padding: 9px 4px;
  border-bottom: 1px solid var(--hairline) !important;
  background: transparent;
  font: 500 15px 'Hanken Grotesk', sans-serif;
  color: var(--text);
  overflow-wrap: anywhere;
}
.repopicker-family { color: var(--dimmer); font: 400 12px 'Space Mono', monospace; }
.repopicker-row[aria-selected="true"], .repopicker-row:hover { background: var(--chip-bg); }
.repopicker-sheet button:focus-visible, .repopicker-filter:focus-visible { outline: 2px solid var(--pink); outline-offset: -2px; }
.repopicker-empty, .repopicker-note, .repopicker-error { font: 400 11px/1.6 'Space Mono', monospace; }
.repopicker-note, .repopicker-empty { color: var(--dimmer); }
.repopicker-error { color: var(--pink); margin: 8px 0; }
.repopicker-sheet[aria-busy="true"] [data-repo] { opacity: .5; cursor: wait; }
@keyframes repopicker-rise { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .repopicker-sheet { animation: none; } }
/* /vi 6.2-6.3: the origin repo row and several-mode. */
.repopicker-mode {
  margin-left: auto;
  padding: 10px 4px;
  background: transparent;
  color: var(--dim);
  font: 500 13px 'Space Grotesk', sans-serif;
}
.repopicker-mode[aria-pressed="true"] { color: var(--pink); }
.repopicker-origin { box-shadow: inset 3px 0 0 var(--pink); padding-left: 10px; }
.repopicker-from { margin-left: auto; color: var(--pink); font: 400 11px 'Space Mono', monospace; }
.repopicker-check {
  flex: none;
  width: 18px;
  height: 18px;
  align-self: center;
  border-radius: 5px;
  box-shadow: inset 0 0 0 1.5px var(--dim);
  color: var(--pink);
  font: 700 13px/18px 'Space Grotesk', sans-serif;
  text-align: center;
}
.repopicker-row[aria-checked="true"] .repopicker-check { box-shadow: inset 0 0 0 1.5px var(--pink); }
.repopicker-recent button[aria-pressed="false"],
.repopicker-quick button[aria-pressed="false"] { background: var(--chip-bg); color: var(--text); }
/* Most-sent repos (capture a361c21a): their own row under the title, above the filter. The sheet is
   phone-wide everywhere, so title + three pills + Several… + Cancel never fit on one line. */
.repopicker-heading { flex-wrap: wrap; row-gap: 4px; }
.repopicker-quick { order: 3; flex-basis: 100%; display: flex; gap: 6px; flex-wrap: wrap; }
.repopicker-quick:empty { display: none; }
.repopicker-quick button {
  font: 600 12px 'Space Grotesk', sans-serif;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--pink);
  color: #2a0716;
}
.repopicker-send {
  flex: none;
  margin-top: 10px;
  padding: 12px;
  border-radius: 12px;
  background: var(--pink);
  color: #2a0716;
  font: 600 15px 'Space Grotesk', sans-serif;
}
.repopicker-send:disabled { opacity: .45; cursor: default; }
