/* @farming-labs/svelte-theme — darksharp theme overrides
 * All-black, sharp edges, zero-radius look.
 * Applied on top of docs.css base styles.
 */

/* ─── Color overrides (light) ─────────────────────────────────────── */

body:has(#nd-docs-layout),
#nd-docs-layout {
  --color-fd-background: oklch(1 0 0);
  --color-fd-foreground: oklch(0.147 0.004 49.25);
  --color-fd-card: oklch(1 0 0);
  --color-fd-card-foreground: oklch(0.147 0.004 49.25);
  --color-fd-popover: oklch(1 0 0);
  --color-fd-popover-foreground: oklch(0.147 0.004 49.25);
  --color-fd-primary: oklch(0.216 0.006 56.043);
  --color-fd-primary-foreground: oklch(0.985 0.001 106.423);
  --color-fd-secondary: oklch(0.97 0.001 106.424);
  --color-fd-secondary-foreground: oklch(0.216 0.006 56.043);
  --color-fd-muted: oklch(0.97 0.001 106.424);
  --color-fd-muted-foreground: oklch(0.553 0.013 58.071);
  --color-fd-accent: oklch(0.97 0.001 106.424);
  --color-fd-accent-foreground: oklch(0.216 0.006 56.043);
  --color-fd-border: oklch(0.923 0.003 48.717);
  --color-fd-ring: oklch(0.709 0.01 56.259);
}

/* ─── Color overrides (dark) ──────────────────────────────────────── */

html.dark body:has(#nd-docs-layout),
body.dark:has(#nd-docs-layout),
body:has(#nd-docs-layout.dark),
:is(html.dark, body.dark) #nd-docs-layout,
#nd-docs-layout.dark {
  --color-fd-background: hsl(0 0% 0%);
  --color-fd-foreground: oklch(0.985 0.001 106.423);
  --color-fd-card: hsl(0 0% 0%);
  --color-fd-card-foreground: oklch(0.985 0.001 106.423);
  --color-fd-popover: hsl(0 0% 6%);
  --color-fd-popover-foreground: oklch(0.985 0.001 106.423);
  --color-fd-primary: oklch(0.985 0.001 106.423);
  --color-fd-primary-foreground: oklch(0.216 0.006 56.043);
  --color-fd-secondary: hsl(0 0% 10%);
  --color-fd-secondary-foreground: oklch(0.985 0.001 106.423);
  --color-fd-muted: hsl(0 0% 10%);
  --color-fd-muted-foreground: hsl(0 0% 55%);
  --color-fd-accent: hsl(0 0% 12%);
  --color-fd-accent-foreground: oklch(0.985 0.001 106.423);
  --color-fd-border: hsl(0 0% 14%);
  --color-fd-ring: hsl(0 0% 30%);
}

/* ═══════════════════════════════════════════════════════════════════
 * Sharp radius — override all rounded utilities
 * ═══════════════════════════════════════════════════════════════════ */

#nd-docs-layout .fd-sidebar,
#nd-docs-layout .fd-nav,
#nd-docs-layout .fd-card,
#nd-docs-layout .fd-callout,
#nd-docs-layout .fd-code-block,
#nd-docs-layout .fd-search-dialog,
#nd-docs-layout .fd-toc,
#nd-docs-layout [class*="rounded-lg"] {
  border-radius: 0.2rem !important;
}

#nd-docs-layout [class*="rounded-md"] {
  border-radius: 0.1rem !important;
}

#nd-docs-layout [class*="rounded-xl"],
#nd-docs-layout [class*="rounded-2xl"] {
  border-radius: 0.2rem !important;
}

/* ─── Tables ──────────────────────────────────────────────────────── */

#nd-docs-layout table {
  border-radius: 0 !important;
  border-collapse: collapse;
}

:is(html.dark, body.dark) #nd-docs-layout th,
#nd-docs-layout.dark th {
  background: hsl(0 0% 8%);
  color: hsl(0 0% 80%);
  font-weight: 500;
}

:is(html.dark, body.dark) #nd-docs-layout td,
#nd-docs-layout.dark td {
  background: hsl(0 0% 2%);
}

:is(html.dark, body.dark) #nd-docs-layout tr,
#nd-docs-layout.dark tr {
  border-color: hsl(0 0% 14%);
}

/* ─── Code blocks ─────────────────────────────────────────────────── */

#nd-docs-layout .fd-code-block,
#nd-docs-layout .fd-code-block pre {
  border-radius: 0.2rem !important;
}

#nd-docs-layout .fd-code-block button {
  border-radius: 0.1rem !important;
}

/* ─── Inline code ─────────────────────────────────────────────────── */

#nd-docs-layout code:not(pre code) {
  border-radius: 0.1rem !important;
}

:is(html.dark, body.dark) #nd-docs-layout code:not(pre code),
#nd-docs-layout.dark code:not(pre code) {
  background: hsl(0 0% 10%);
  border: 1px solid hsl(0 0% 16%);
  color: hsl(0 0% 85%);
}

/* ─── Callouts ────────────────────────────────────────────────────── */

:is(html.dark, body.dark) #nd-docs-layout .fd-card,
#nd-docs-layout.dark .fd-card,
:is(html.dark, body.dark) #nd-docs-layout .fd-callout,
#nd-docs-layout.dark .fd-callout {
  border-color: hsl(0 0% 14%);
}

/* ─── Selection ───────────────────────────────────────────────────── */

#nd-docs-layout::selection,
#nd-docs-layout *::selection {
  background: var(--color-fd-foreground);
  color: var(--color-fd-background);
}

/* ─── Sidebar (dark) ──────────────────────────────────────────────── */

:is(html.dark, body.dark) #nd-docs-layout .fd-sidebar,
#nd-docs-layout.dark .fd-sidebar {
  background: hsl(0 0% 0%);
  border-color: hsl(0 0% 12%);
}

:is(html.dark, body.dark) #nd-docs-layout .fd-sidebar a[data-active="true"],
#nd-docs-layout.dark .fd-sidebar a[data-active="true"] {
  background: hsl(0 0% 14%) !important;
  color: hsl(0 0% 96%) !important;
}

:is(html.dark, body.dark) #nd-docs-layout .fd-sidebar a:hover,
#nd-docs-layout.dark .fd-sidebar a:hover {
  background: hsl(0 0% 10%);
  color: hsl(0 0% 90%);
}

/* ─── TOC ─────────────────────────────────────────────────────────── */

:is(html.dark, body.dark) #nd-docs-layout .fd-toc,
#nd-docs-layout.dark .fd-toc {
  border-color: hsl(0 0% 12%);
}

/* ─── Separator ───────────────────────────────────────────────────── */

:is(html.dark, body.dark) #nd-docs-layout hr,
#nd-docs-layout.dark hr {
  border-color: hsl(0 0% 14%);
}

/* ─── Nav cards (prev/next) ───────────────────────────────────────── */

:is(html.dark, body.dark) #nd-docs-layout .fd-nav-card,
#nd-docs-layout.dark .fd-nav-card {
  border-color: hsl(0 0% 14%);
}

:is(html.dark, body.dark) #nd-docs-layout .fd-nav-card:hover,
#nd-docs-layout.dark .fd-nav-card:hover {
  background: hsl(0 0% 8%);
  border-color: hsl(0 0% 20%);
}

/* ─── Search dialog ───────────────────────────────────────────────── */

#nd-docs-layout .fd-search-dialog {
  border-radius: 0.2rem !important;
}

/* ─── AI Chat (sharp edges) ───────────────────────────────────────── */

#nd-docs-layout .fd-ai-dialog,
#nd-docs-layout .fd-ai-bubble-user,
#nd-docs-layout .fd-ai-bubble-ai,
#nd-docs-layout .fd-ai-input-wrap,
#nd-docs-layout .fd-ai-send-btn,
#nd-docs-layout .fd-ai-close-btn,
#nd-docs-layout .fd-ai-floating-btn,
#nd-docs-layout .fd-ai-suggestion,
#nd-docs-layout .fd-ai-result,
#nd-docs-layout .fd-ai-esc,
#nd-docs-layout .fd-ai-clear-btn,
#nd-docs-layout .fd-ai-fm-input-container,
#nd-docs-layout .fd-ai-fm-send-btn,
#nd-docs-layout .fd-ai-fm-close-btn,
#nd-docs-layout .fd-ai-fm-suggestion,
#nd-docs-layout .fd-ai-fm-trigger-btn,
#nd-docs-layout .fd-ai-code-block,
#nd-docs-layout .fd-ai-code-copy {
  border-radius: 2px !important;
}

#nd-docs-layout .fd-ai-floating-btn:hover {
  box-shadow: 0 0 0 1px var(--color-fd-ring);
  transform: none;
}

#nd-docs-layout .fd-ai-fm-trigger-btn:hover {
  transform: none;
}

/* Custom Ask AI trigger — same as fd-ai-floating-btn for theme */
#nd-docs-layout .fd-ai-floating-trigger .ask-ai-trigger {
  font-family: var(--fd-font-sans, inherit);
  border-radius: 2px !important;
}

#nd-docs-layout .fd-ai-floating-trigger .ask-ai-trigger:hover {
  box-shadow: 0 0 0 1px var(--color-fd-ring);
  transform: none;
}

#nd-docs-layout .fd-ai-fm-input-bar .fd-ai-floating-trigger .ask-ai-trigger {
  border-radius: 2px !important;
}

#nd-docs-layout .fd-ai-fm-input-bar .fd-ai-floating-trigger .ask-ai-trigger:hover {
  transform: none;
}

/* ─── Omni Command Palette — darksharp theme ────────────────────── */

#nd-docs-layout .omni-content {
  border-radius: 0.5rem !important;
  border: 1px solid var(--color-fd-border) !important;
  background: var(--color-fd-popover) !important;
  box-shadow:
    0 24px 60px -12px rgba(0, 0, 0, 0.7),
    0 0 0 1px rgba(255, 255, 255, 0.06) !important;
}

#nd-docs-layout .omni-item {
  border-radius: 0.25rem !important;
}

#nd-docs-layout .omni-highlight {
  background: color-mix(in srgb, var(--color-fd-primary) 30%, transparent) !important;
}

/* ─── Page Actions — darksharp theme ────────────────────────────── */

#nd-docs-layout .fd-page-action-btn {
  border-radius: 0.2rem !important;
  font-size: 0.8125rem !important;
  letter-spacing: normal !important;
  box-shadow: none !important;
  text-transform: capitalize !important;
  font-family: var(--fd-font-sans, ui-sans-serif, system-ui, sans-serif) !important;
}

#nd-docs-layout .fd-page-action-dropdown {
  position: relative !important;
}

#nd-docs-layout .fd-page-action-menu {
  border-radius: 0.2rem !important;
  border: 1px solid var(--color-fd-border) !important;
  box-shadow: 0 4px 24px hsl(0 0% 0% / 0.4) !important;
  background: var(--color-fd-popover) !important;
}

#nd-docs-layout .fd-page-action-menu-item {
  border-radius: 0.1rem !important;
  font-size: 0.8125rem !important;
  color: var(--color-fd-foreground) !important;
}

#nd-docs-layout .fd-page-action-menu-item:hover {
  background: var(--color-fd-accent) !important;
  color: var(--color-fd-accent-foreground) !important;
}

/* ─── Feedback (darksharp theme) ─────────────────────────────────── */

#nd-docs-layout .fd-feedback-input,
#nd-docs-layout .fd-feedback-submit {
  border-radius: 0.2rem !important;
}

:is(html.dark, body.dark) #nd-docs-layout .fd-feedback-input,
#nd-docs-layout.dark .fd-feedback-input {
  background: hsl(0 0% 4%);
}

:is(html.dark, body.dark) #nd-docs-layout .fd-feedback-choice[data-selected="true"],
#nd-docs-layout.dark .fd-feedback-choice[data-selected="true"] {
  background: hsl(0 0% 8%);
}

:is(html.dark, body.dark) #nd-docs-layout .fd-feedback-status[data-status="success"],
#nd-docs-layout.dark .fd-feedback-status[data-status="success"] {
  color: hsl(0 0% 90%);
}
