/* Feedback mode (feedback-mode.js). Sits above every view; uses the app's light palette. */
#fbm-root { font:13px/1.45 -apple-system,Segoe UI,Roboto,sans-serif; color:var(--text,#20242e); }
#fbm-root [hidden] { display:none !important; }
html.fbm-on, html.fbm-on * { cursor:crosshair !important; }
html.fbm-on #fbm-root, html.fbm-on #fbm-root * { cursor:auto !important; }
html.fbm-on #fbm-root button, html.fbm-on #fbm-root a { cursor:pointer !important; }

.fbm-fab { position:fixed; left:18px; bottom:18px; z-index:2147483000; display:flex; gap:6px; }
.fbm-toggle, .fbm-inbox { border:1px solid var(--line,#e6e9f0); background:#fff; color:var(--text,#20242e); border-radius:999px;
  padding:8px 14px; font:600 13px/1 inherit; box-shadow:0 4px 16px rgba(15,23,42,.14); }
.fbm-toggle:hover, .fbm-inbox:hover { border-color:var(--accent,#2f6fed); }
.fbm-toggle.active { background:var(--bad,#e5484d); border-color:var(--bad,#e5484d); color:#fff; }

.fbm-bar { position:fixed; top:0; left:0; right:0; z-index:2147483001; background:#20242e; color:#fff; padding:8px 16px;
  display:flex; gap:10px; align-items:center; justify-content:center; flex-wrap:wrap; }
.fbm-bar .fbm-link { color:#cfe0ff; }
.fbm-kbd { border:1px solid #6b7385; border-radius:4px; padding:0 5px; font-size:11px; }

.fbm-hover { position:fixed; z-index:2147482990; pointer-events:none; border:2px solid var(--bad,#e5484d); border-radius:4px;
  background:rgba(229,72,77,.07); transition:all .06s ease-out; }
.fbm-hover::after { content:attr(data-label); position:absolute; left:-2px; top:-22px; max-width:340px; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; background:var(--bad,#e5484d); color:#fff; font-size:11px; padding:2px 6px; border-radius:4px 4px 0 0; }

.fbm-pin { position:fixed; z-index:2147482995; width:22px; height:22px; border-radius:50%; border:2px solid #fff; padding:0;
  background:var(--accent,#2f6fed); color:#fff; font:700 11px/18px inherit; box-shadow:0 2px 8px rgba(15,23,42,.25); }
.fbm-pin.s-built, .fbm-pin.s-building { background:var(--warn,#c9821a); }
.fbm-pin.s-shipped { background:var(--ok,#1f9d55); }

.fbm-composer { position:fixed; z-index:2147483002; width:340px; max-width:calc(100vw - 24px); background:#fff; border:1px solid var(--line,#e6e9f0);
  border-radius:10px; box-shadow:0 12px 40px rgba(15,23,42,.22); padding:12px; display:flex; flex-direction:column; gap:8px; }
.fbm-what { font-size:12px; color:var(--muted,#8790a3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fbm-what span { color:var(--text,#20242e); }
.fbm-composer textarea, .fbm-ask textarea { width:100%; box-sizing:border-box; resize:vertical; font:inherit; padding:8px; border:1px solid var(--line,#e6e9f0); border-radius:6px; }
.fbm-row { display:flex; gap:6px; align-items:center; }
.fbm-hint { flex:1; font-size:11px; color:var(--muted,#8790a3); }
.fbm-btn { border:1px solid var(--line,#e6e9f0); background:#fff; border-radius:6px; padding:6px 12px; font:600 12px/1.2 inherit; }
.fbm-btn.primary { background:var(--accent,#2f6fed); border-color:var(--accent,#2f6fed); color:#fff; }
.fbm-btn:disabled { opacity:.6; }
.fbm-link { background:none; border:0; padding:0; color:var(--accent,#2f6fed); font:inherit; }
.fbm-err { color:var(--bad,#e5484d); font-size:12px; }
.fbm-toast { position:fixed; left:50%; bottom:70px; transform:translateX(-50%); z-index:2147483003; background:#20242e; color:#fff;
  padding:9px 14px; border-radius:8px; max-width:min(520px,90vw); box-shadow:0 8px 24px rgba(15,23,42,.25); }

.fbm-panel { position:fixed; right:0; top:0; bottom:0; width:min(440px,100vw); z-index:2147483002; background:var(--bg,#eef1f6);
  border-left:1px solid var(--line,#e6e9f0); box-shadow:-12px 0 40px rgba(15,23,42,.15); display:flex; flex-direction:column; }
.fbm-ph { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:#fff; border-bottom:1px solid var(--line,#e6e9f0); font-size:15px; }
.fbm-x { border:0; background:none; font-size:16px; }
.fbm-pb { overflow-y:auto; padding:12px 16px 80px; }
.fbm-pb h4 { margin:16px 0 6px; font-size:13px; }
.fbm-muted { color:var(--muted,#8790a3); }
.fbm-loop { background:#fff; border:1px solid var(--line,#e6e9f0); border-radius:8px; padding:10px; display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; }
.fbm-loop label { display:flex; gap:5px; align-items:center; font-size:12px; }
.fbm-dot { width:8px; height:8px; border-radius:50%; background:var(--muted,#8790a3); display:inline-block; }
.fbm-dot.ok { background:var(--ok,#1f9d55); }
.fbm-ask { margin-top:10px; display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
.fbm-note, .fbm-build { background:#fff; border:1px solid var(--line,#e6e9f0); border-radius:8px; padding:9px 10px; margin-bottom:8px; }
.fbm-build.s-built { border-color:var(--warn,#c9821a); }
.fbm-nh { font-size:11px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.fbm-nc { margin:5px 0 2px; white-space:pre-wrap; }
.fbm-ne { font-size:12px; color:var(--muted,#8790a3); }
.fbm-no, .fbm-sum { font-size:12px; margin-top:4px; background:var(--panel2,#f5f8ff); border-radius:6px; padding:6px 8px; white-space:pre-wrap; }
.fbm-na { display:flex; gap:10px; align-items:center; margin-top:6px; font-size:12px; flex-wrap:wrap; }
.fbm-na pre { max-height:220px; overflow:auto; font-size:11px; background:#f6f7f9; padding:6px; white-space:pre-wrap; }
.fbm-st { font-weight:600; padding:1px 7px; border-radius:999px; background:#eef1f6; }
.fbm-st.s-built, .fbm-st.s-building, .fbm-st.s-running, .fbm-st.s-shipping, .fbm-st.s-ship_requested { background:#fff3dc; color:#8a5a0b; }
.fbm-st.s-shipped { background:#dff5e8; color:#17784a; }
.fbm-st.s-failed, .fbm-st.s-needs_person { background:#fde4e4; color:#b42328; }
.mono { font-family:ui-monospace,Menlo,monospace; }
