/* Feedback — a code-isolated "follow-me" feedback overlay (TestKit's free-form
   sibling). A small box that trails you as you use the app, knows the current page,
   and lets you POINT at an element (or highlight text) so a note attaches to an exact
   target. Self-contained styling (no app tokens); all classes fb- prefixed. */
.fb-panel { position: fixed; z-index: 2147483600; bottom: 20px; right: 20px; width: 312px;
  display: flex; flex-direction: column; background: #15171d; color: #e7e9ee; border: 1px solid #343845;
  border-radius: 12px; box-shadow: 0 18px 52px -14px rgba(0,0,0,.7);
  font-family: -apple-system, system-ui, "Segoe UI", sans-serif; font-size: 13px; line-height: 1.45; overflow: hidden; }
.fb-head { display: flex; align-items: center; gap: 8px; padding: 9px 11px; cursor: grab;
  background: #1f222a; border-bottom: 1px solid #343845; user-select: none; }
.fb-head:active { cursor: grabbing; }
.fb-dot { width: 8px; height: 8px; border-radius: 50%; background: #e0795a; flex: none; }
.fb-title { font-weight: 600; flex: 1; }
.fb-x { background: none; border: none; color: #9aa0ad; cursor: pointer; font-size: 17px; line-height: 1; padding: 0 5px; border-radius: 6px; }
.fb-x:hover { background: #343845; color: #fff; }
.fb-body { padding: 11px; display: flex; flex-direction: column; gap: 9px; }
.fb-page { font-family: ui-monospace, monospace; font-size: 11px; color: #9aa0ad; display: flex; align-items: center; gap: 6px; }
.fb-page b { color: #cfe3ff; font-weight: 600; }
.fb-ctx { font: inherit; font-size: 11px; cursor: pointer; border-radius: 999px; padding: 2px 9px;
  border: 1px solid #343845; background: #1b1f2a; color: #9aa0ad; display: inline-flex; align-items: center; gap: 4px; }
.fb-ctx::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #5a6072; }
.fb-ctx--on { border-color: #2f6f49; background: #16291d; color: #d8ffe8; }
.fb-ctx--on::before { background: #5ad08a; }
.fb-page--off { color: #c9a24a; }
/* 3pvn: platform segmented control (Auto / Desktop / Mobile) */
.fb-seg { display: flex; gap: 0; border: 1px solid #343845; border-radius: 8px; overflow: hidden; background: #11131a; }
.fb-seg__opt { flex: 1; font: inherit; font-size: 11px; cursor: pointer; padding: 5px 4px; border: none;
  border-left: 1px solid #343845; background: transparent; color: #9aa0ad; white-space: nowrap; }
.fb-seg__opt:first-child { border-left: none; }
.fb-seg__opt:hover { background: #1b1f2a; color: #cfd3dc; }
.fb-seg__opt--on { background: #21344f; color: #cfe3ff; font-weight: 600; }
.fb-pick { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; padding: 9px 0;
  border-radius: 8px; border: 1px solid #3a5fa8; background: #21344f; color: #cfe3ff; font: inherit; font-weight: 600; cursor: pointer; }
.fb-pick:hover { background: #28406a; }
.fb-pick--on { background: #2f6f49; border-color: #2f6f49; color: #d8ffe8; }
.fb-target { background: #11131a; border: 1px solid #343845; border-radius: 8px; padding: 7px 9px; font-size: 11px;
  display: flex; align-items: flex-start; gap: 8px; }
.fb-target__main { flex: 1; min-width: 0; }
.fb-target__sel { font-family: ui-monospace, monospace; color: #9ad1ff; word-break: break-all; }
.fb-target__txt { color: #c2c7d0; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-target__clear { background: none; border: none; color: #9aa0ad; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 2px; }
.fb-target__clear:hover { color: #fff; }
/* 13k0: recent-action picker */
.fb-acts { display: flex; flex-direction: column; gap: 5px; margin: 9px 0 2px; }
.fb-acts__cap { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: #6f7686; }
.fb-act { display: flex; align-items: center; gap: 6px; width: 100%; text-align: left; cursor: pointer;
  background: #11131a; border: 1px solid #343845; border-radius: 7px; padding: 6px 8px; color: #c2c7d0; font: inherit; font-size: 11px; }
.fb-act:hover { border-color: #4a6fa5; }
.fb-act--on { border-color: #4c8bf5; background: #16233d; color: #dce8ff; }
.fb-act__txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-act__chk { flex: 0 0 auto; color: #7fa8f0; font-weight: 700; }
/* OSS: recently-sent history (anti-repeat) */
.fb-sent { margin-top: 10px; border-top: 1px solid #2a2e38; padding-top: 8px; }
.fb-sent__head { width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  color: #9aa0ad; font: inherit; font-size: 11px; padding: 2px 0; }
.fb-sent__head:hover { color: #c2c7d0; }
.fb-sent__item { margin-top: 6px; background: #11131a; border: 1px solid #2a2e38; border-radius: 7px; padding: 6px 8px; }
.fb-sent__note { font-size: 11px; color: #c2c7d0; overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fb-sent__meta { font-size: 10px; color: #6f7686; margin-top: 2px; }
.fb-noterow { display: flex; gap: 7px; align-items: flex-end; }
.fb-note { flex: 1; box-sizing: border-box; background: #11131a; border: 1px solid #343845; border-radius: 8px;
  color: #e7e9ee; padding: 8px; font: inherit; font-size: 12px; resize: vertical; min-height: 56px; }
.fb-note:focus { outline: none; border-color: #4a6fa5; }
.fb-mic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9px; border: 1px solid #343845; background: #23262e;
  color: #cfd3dc; cursor: pointer; display: grid; place-items: center; font-size: 16px; }
.fb-mic:hover { background: #2c303a; }
.fb-mic--on { background: #e0795a; color: #fff; border-color: #e0795a; }
.fb-mic:disabled { opacity: .4; cursor: default; }
.fb-send { width: 100%; padding: 9px 0; border-radius: 8px; border: none; background: #2f6f49; color: #eafff2;
  font: inherit; font-weight: 600; cursor: pointer; }
.fb-send:hover { background: #37805674; background: #378056; }
.fb-send:disabled { opacity: .45; cursor: default; }
.fb-msg { font-size: 11px; color: #7ee2a4; min-height: 14px; }
.fb-msg--err { color: #f2a3a3; }
/* Default sits ABOVE the app's AI button (.aifab, bottom:24/right:24, 58px) so the
   two don't overlap out of the box. Draggable (touch + mouse) — touch-action:none
   lets a finger-drag move it instead of scrolling the page; its position persists. */
.fb-launch { position: fixed; z-index: 2147482600; bottom: 92px; right: 18px; width: 42px; height: 42px;
  border-radius: 50%; background: #1f222a; color: #e0795a; border: 1px solid #343845; cursor: grab;
  font-size: 17px; box-shadow: 0 6px 18px rgba(0,0,0,.5); display: grid; place-items: center;
  touch-action: none; }
.fb-launch:hover { background: #2c303a; }
.fb-launch:active { cursor: grabbing; }
.fb-launch--dragging { opacity: .9; box-shadow: 0 10px 26px rgba(0,0,0,.6); }
/* i09s: while the AI dock is open its Send button sits exactly under this launcher
   (bottom-right), and our huge z-index would swallow the tap — "I can't send on the
   AI dock". Hide the launcher whenever the dock is mounted so it never blocks it. */
body:has(.aidock) .fb-launch { display: none; }

/* The picker: a highlight that follows the hovered element (pointer-events:none so it
   never blocks elementFromPoint), plus a body crosshair while picking. */
.fb-hl { position: fixed; z-index: 2147483500; pointer-events: none; border: 2px solid #4c8bf5;
  background: rgba(76,139,245,.14); border-radius: 3px; transition: all .04s linear; box-shadow: 0 0 0 1px rgba(0,0,0,.4); }
.fb-hl__tag { position: absolute; top: -19px; left: -2px; background: #4c8bf5; color: #fff; font-family: ui-monospace, monospace;
  font-size: 10px; padding: 1px 5px; border-radius: 3px; white-space: nowrap; }
body.fb-picking, body.fb-picking * { cursor: crosshair !important; }
