/* OFS Agent Dashboard — App-spezifische Styles (ergänzt das Design-System) */

html, body { margin: 0; height: 100%; }
#app { min-height: 100vh; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--ink-300); border-radius: 9999px; border: 3px solid var(--ink-050); }

/* Sidebar-Nav-Icons */
.ofs-navsvg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* Detail-Tabs */
.ofs-tab { position: relative; }

/* Deaktivierter Nav-Eintrag (z. B. Prompts im Pilot) */
.ofs-nav-disabled { opacity: .38; cursor: not-allowed; }
.ofs-nav-disabled:hover { background: transparent !important; color: rgba(255,255,255,.7) !important; }
.ofs-lock { margin-left: auto; font-size: 11px; opacity: .8; }

/* --- Hover-States (ersetzen die style-hover-Attribute des Prototyps) --- */
.ofs-rowbtn:hover { background: var(--ink-050) !important; }
.ofs-card:hover { box-shadow: var(--shadow-3); transform: translateY(-2px); border-color: var(--ink-300); }
.ofs-back:hover { color: var(--calluna-purple) !important; }
.ofs-chip:hover { border-color: var(--calluna-purple) !important; color: var(--calluna-purple) !important; }

/* =========================================================
   Feedback-Overlay
   ========================================================= */
.fb-fab {
  position: fixed; right: 20px; bottom: 20px; z-index: var(--z-toast);
  display: flex; align-items: center; gap: 8px;
  background: var(--calluna-purple); color: #fff;
  border: 0; border-radius: 9999px; padding: 11px 16px;
  font-family: var(--font-body); font-size: 13.5px; font-weight: 600;
  cursor: pointer; box-shadow: var(--shadow-purple);
  transition: transform 160ms var(--ease-out), background 160ms;
}
.fb-fab:hover { background: var(--purple-600); transform: translateY(-1px); }
.fb-fab svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.fb-fab.is-armed { background: var(--calluna-black); }

/* Arm-Modus: Fadenkreuz-Hinweis */
.fb-hint {
  position: fixed; left: 50%; top: 18px; transform: translateX(-50%);
  z-index: var(--z-toast);
  background: var(--calluna-black); color: #fff;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.02em;
  padding: 8px 16px; border-radius: 9999px; box-shadow: var(--shadow-3);
  display: flex; align-items: center; gap: 10px;
}
.fb-hint button { background: rgba(255,255,255,.16); border: 0; color: #fff; font-family: var(--font-mono); font-size: 11px; padding: 3px 9px; border-radius: 9999px; cursor: pointer; }
body.fb-arming, body.fb-arming * { cursor: crosshair !important; }

/* Gesetzte Pins */
.fb-pin {
  position: fixed; z-index: var(--z-toast); transform: translate(-50%, -100%);
  width: 26px; height: 26px; border-radius: 50% 50% 50% 2px;
  background: var(--calluna-purple); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
  box-shadow: var(--shadow-2); border: 2px solid #fff; pointer-events: none;
}

/* Popover / Formular */
.fb-pop {
  position: fixed; z-index: var(--z-toast);
  width: 320px; max-width: calc(100vw - 24px);
  background: #fff; border: 1px solid var(--ink-200); border-radius: 14px;
  box-shadow: 0 20px 60px rgba(10,9,20,.22); padding: 16px;
}
.fb-pop__eyebrow { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--calluna-purple); margin-bottom: 6px; }
.fb-pop__ctx { font-family: var(--font-mono); font-size: 11px; color: var(--ink-500); margin-bottom: 10px; line-height: 1.4; }
.fb-pop textarea, .fb-pop input[type="text"] {
  width: 100%; box-sizing: border-box; font-family: var(--font-body); font-size: 13.5px;
  padding: 10px 12px; border: 1px solid var(--ink-300); border-radius: 10px; resize: vertical; background: #fff;
}
.fb-pop textarea { min-height: 84px; margin-bottom: 8px; }
.fb-pop input[type="text"] { margin-bottom: 10px; }
.fb-pop textarea:focus, .fb-pop input[type="text"]:focus { outline: none; border-color: var(--calluna-purple); box-shadow: 0 0 0 4px rgba(105,51,217,.14); }
.fb-pop__foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fb-btn { font-family: var(--font-body); font-size: 13px; font-weight: 500; padding: 8px 14px; border-radius: 9px; border: 0; cursor: pointer; }
.fb-btn--primary { background: var(--calluna-purple); color: #fff; }
.fb-btn--primary:hover { background: var(--purple-600); }
.fb-btn--primary:disabled { background: var(--purple-200); cursor: not-allowed; }
.fb-btn--ghost { background: transparent; color: var(--ink-600); box-shadow: inset 0 0 0 1px var(--ink-300); }
.fb-btn--ghost:hover { background: var(--ink-100); }
.fb-pop__msg { font-family: var(--font-mono); font-size: 11px; margin-top: 8px; }
.fb-pop__msg.ok { color: var(--color-success); }
.fb-pop__msg.err { color: var(--color-danger); }

/* Toast nach erfolgreichem Absenden */
.fb-toast {
  position: fixed; left: 50%; bottom: 76px; transform: translateX(-50%);
  z-index: var(--z-toast); background: var(--calluna-black); color: #fff;
  font-family: var(--font-body); font-size: 13px; padding: 10px 18px; border-radius: 9999px;
  box-shadow: var(--shadow-3); display: flex; align-items: center; gap: 8px;
  animation: fb-rise 200ms var(--ease-out);
}
.fb-toast span.dot { color: #7fe0aa; }
@keyframes fb-rise { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
