/* FILIPA UI — LibreChat theme v=filipa-lc6 */
:root {
  --filipa-green: #8bd30f;
  --filipa-green-dark: #6fb00c;
  --filipa-green-soft: rgba(139, 211, 15, 0.16);
  --filipa-bg: #ffffff;
  --filipa-surface: #ffffff;
  --filipa-sidebar: #ffffff;
  --filipa-text: #1a1d21;
  --filipa-muted: #6b7280;
  --filipa-border: #e8e8ea;
  --filipa-border-strong: #d1d5db;
  --filipa-radius: 14px;
  --filipa-radius-sm: 10px;
  --filipa-radius-lg: 22px;
  --filipa-shadow: 0 8px 28px rgba(17, 24, 39, 0.08);
  --filipa-shadow-sm: 0 2px 10px rgba(17, 24, 39, 0.05);
  --g-gray-20: #ffffff;
  --g-gray-0: #ffffff;
  --text-primary: #1a1d21;
  --text-secondary: #6b7280;
  --border-light: #e8e8ea;
  --border-medium: #d1d5db;
  --surface-primary: #ffffff;
  --surface-secondary: #ffffff;
  --brand-purple: #8bd30f;
  --brand-purple-hover: #6fb00c;
}

html, body, #root {
  background: #fff !important;
  color: var(--filipa-text) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

html.dark, .dark { color-scheme: light !important; }

/* ===== Login ===== */
/* ===== Login — Omniventus-like, no gray boxes ===== */
body:has(form[action*="login"]),
body.filipa-auth, html.filipa-auth, html.filipa-auth body {
  background: #ffffff !important;
}
html.filipa-auth #root,
body.filipa-auth #root,
body.filipa-auth #root > div,
body.filipa-auth main,
body.filipa-auth [class*="Auth"],
body.filipa-auth [class*="Login"],
body.filipa-auth [class*="auth"],
body.filipa-auth [class*="login"] {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.filipa-auth-wrap {
  min-height: 100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:22px; padding:32px 20px; background: #ffffff !important;
}
.filipa-auth-brand { display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.filipa-auth-brand img {
  width:80px; height:80px; object-fit:contain; border-radius:20px;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
}
.filipa-auth-brand h1 {
  margin:0; font-size:1.45rem; font-weight:700; letter-spacing:-0.03em; color:#111;
}
.filipa-auth-brand p {
  margin:0; font-size:.92rem; color:#6b7280; font-weight:500;
}
/* Form is NOT a gray card — open layout */
.filipa-auth-card,
body.filipa-auth form,
html.filipa-auth form {
  width:min(380px,100%) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 8px 0 0 !important;
  outline: none !important;
}
body.filipa-auth form > div,
html.filipa-auth form > div,
.filipa-auth-card > div {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.filipa-auth-card input,
.filipa-auth-card input[type="email"],
.filipa-auth-card input[type="password"],
.filipa-auth-card input[type="text"],
body.filipa-auth input[type="email"],
body.filipa-auth input[type="password"],
body.filipa-auth input[type="text"],
html.filipa-auth input[type="email"],
html.filipa-auth input[type="password"],
html.filipa-auth input[type="text"] {
  background: #fafafa !important;
  color: #111 !important;
  border: 1px solid #ececec !important;
  border-radius: 14px !important;
  padding: 15px 16px !important;
  box-shadow: none !important;
}
.filipa-auth-card input:focus,
body.filipa-auth input:focus,
html.filipa-auth input:focus {
  outline: none !important;
  background: #fff !important;
  border-color: var(--filipa-green) !important;
  box-shadow: 0 0 0 3px rgba(139,211,15,.18) !important;
}
.filipa-auth-card button[type="submit"],
body.filipa-auth button[type="submit"],
html.filipa-auth button[type="submit"] {
  background: var(--filipa-green) !important;
  color: #111 !important;
  border: none !important;
  border-radius: 9999px !important;
  font-weight: 700 !important;
  padding: 13px 18px !important;
  width: 100% !important;
  margin-top: 8px !important;
  box-shadow: 0 6px 18px rgba(139,211,15,.28) !important;
}
.filipa-auth-card button[type="submit"]:hover,
body.filipa-auth button[type="submit"]:hover {
  background: var(--filipa-green-dark) !important;
}
/* Kill leftover gray panels around LibreChat login */
body.filipa-auth form [class*="bg-"],
html.filipa-auth form [class*="bg-"],
body.filipa-auth form [class*="gray"],
html.filipa-auth form [class*="gray"],
body.filipa-auth [class*="card"],
html.filipa-auth [class*="card"] {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

form:has(input[type="password"]) button[type="submit"],
button[type="submit"].btn-primary, .btn-primary {
  background:var(--filipa-green) !important; color:#111 !important; border:none !important;
  border-radius:9999px !important; font-weight:600 !important;
}

/* ===== Sidebar — flat white, no gray boxes ===== */
nav, aside, [class*="Nav"], [class*="Sidebar"], [class*="side-panel"],
div[class*="nav"], .nav, #chat-history {
  background:#fff !important;
  border-right:1px solid var(--filipa-border) !important;
  color:var(--filipa-text) !important;
}

/* Kill light gray rectangular panels everywhere in app shell */
body.filipa-app .bg-gray-50,
body.filipa-app .bg-gray-100,
body.filipa-app .bg-surface-secondary,
body.filipa-app .bg-surface-tertiary,
body.filipa-app [class*="bg-gray-50"],
body.filipa-app [class*="bg-gray-100"],
body.filipa-app [class*="bg-surface-secondary"] {
  background: transparent !important;
  background-color: transparent !important;
}

/* Main canvas — pure white, no boxed panels */
main, [role="main"] {
  background: #fff !important;
}

/* Welcome / empty state — no gray card behind text */
body.filipa-app main > div,
body.filipa-app [class*="Landing"],
body.filipa-app [class*="Empty"],
body.filipa-app [class*="center"] {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Composer wrapper — remove outer gray rectangle */
body.filipa-app form.w-full,
body.filipa-app [class*="ChatForm"],
body.filipa-app [class*="InputRow"],
body.filipa-app .absolute.bottom-0,
body.filipa-app div:has(> form textarea),
body.filipa-app div:has(> textarea[placeholder]) {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Only the actual textarea/input shell is a soft white card */
form.w-full textarea,
textarea[placeholder],
div[class*="Textarea"] textarea {
  background: #fff !important;
  border: 1px solid var(--filipa-border) !important;
  border-radius: var(--filipa-radius-lg) !important;
  box-shadow: var(--filipa-shadow-sm) !important;
  color: var(--filipa-text) !important;
  padding: 14px 16px !important;
}
form.w-full textarea:focus,
textarea[placeholder]:focus {
  border-color: var(--filipa-border-strong) !important;
  box-shadow: var(--filipa-shadow) !important;
  outline: none !important;
}

/* Kill double/overlapping borders on composer */
body.filipa-app form.w-full > div,
body.filipa-app form.w-full [class*="rounded"] {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: none !important;
}
body.filipa-app form.w-full textarea {
  border: 1px solid var(--filipa-border) !important;
  box-shadow: var(--filipa-shadow-sm) !important;
  background: #fff !important;
}

/* Conversation rows */
#chat-history a, #chat-history button, [class*="Conversation"] {
  border-radius: var(--filipa-radius-sm) !important;
  color: var(--filipa-text) !important;
  background: transparent !important;
}
#chat-history a:hover, #chat-history button:hover { background: #f5f5f5 !important; }
#chat-history a.bg-gray-200, #chat-history [aria-selected="true"], #chat-history .active {
  background: var(--filipa-green-soft) !important;
}

/* ===== Layering — stop overlapping windows ===== */
[role="menu"], [role="listbox"], [data-headlessui-state],
[class*="Popover"], [class*="Dropdown"], [class*="Menu"],
div[class*="menu"], .headlessui-menu-items {
  z-index: 10050 !important;
  position: relative;
}
[role="dialog"], [data-radix-popper-content-wrapper],
[data-headlessui-portal], .fixed.inset-0 {
  z-index: 10040 !important;
}
/* Profile / user menu above Admin Settings */
body.filipa-app [role="menu"],
body.filipa-app div[class*="MenuItems"],
body.filipa-app div[class*="popover"] {
  z-index: 10100 !important;
  background: #fff !important;
  border: 1px solid var(--filipa-border) !important;
  box-shadow: var(--filipa-shadow) !important;
}
/* When any menu/dialog open, push Admin Settings under */
body.filipa-menu-open a[href*="admin"],
body.filipa-menu-open button:has(svg):has(+ *),
body.filipa-menu-open [class*="Admin"] {
  z-index: 1 !important;
  pointer-events: none;
  opacity: 0.35;
}

/* Agent Marketplace — hidden for non-admin (JS toggles .filipa-is-admin) */
body.filipa-app:not(.filipa-is-admin) a[href*="agents"],
body.filipa-app:not(.filipa-is-admin) a[href*="marketplace"],
body.filipa-app:not(.filipa-is-admin) button:has(+ *),
body.filipa-app:not(.filipa-is-admin) [data-testid*="agent"],
body.filipa-app:not(.filipa-is-admin) .filipa-hide-marketplace {
  /* specific rules below */
}
body.filipa-app:not(.filipa-is-admin) a[href*="/agents"],
body.filipa-app:not(.filipa-is-admin) a[href*="marketplace"],
body.filipa-app:not(.filipa-is-admin) [href*="Agent Marketplace"],
body.filipa-app:not(.filipa-is-admin) .filipa-marketplace {
  display: none !important;
}

/* Side panel marketplace drawer for non-admin */
body.filipa-app:not(.filipa-is-admin) aside:has(h1),
body.filipa-app:not(.filipa-is-admin) [class*="SidePanel"] {
  /* keep side panel but marketplace content hidden via JS class */
}

a[href*="librechat.ai"], a[href*="github.com/danny-avila"], footer a[href*="librechat"] {
  display: none !important;
}

/* ===== Bottom dock ===== */
#filipa-dock {
  position: fixed; left:50%; bottom:14px; transform:translateX(-50%);
  z-index: 99999; display:flex; align-items:center; gap:4px;
  padding:8px 10px; background:rgba(255,255,255,0.96);
  border:1px solid var(--filipa-border); border-radius:9999px;
  box-shadow:var(--filipa-shadow); backdrop-filter:blur(10px);
}
#filipa-dock a {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; min-width:64px; padding:8px 10px; border-radius:9999px;
  text-decoration:none; color:var(--filipa-muted); font-size:11px; font-weight:600; line-height:1.1;
}
#filipa-dock a svg {
  width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8;
  stroke-linecap:round; stroke-linejoin:round;
}
#filipa-dock a:hover, #filipa-dock a.active {
  background:var(--filipa-green-soft); color:var(--filipa-text);
}
#filipa-dock a.active svg { stroke:var(--filipa-green-dark); }

body.filipa-app main, body.filipa-app #root { padding-bottom: 88px; }
#loading-container, .loading { background:#fff !important; }

/* Soft cards/dialogs */
.rounded-2xl, .rounded-xl, [role="dialog"], .modal {
  border-radius: var(--filipa-radius) !important;
  border-color: var(--filipa-border) !important;
  box-shadow: var(--filipa-shadow) !important;
  background: #fff !important;
}
