/* Rabbit API · 全站赛博朋克主题 · 正式稿
   由 cyber-global.preview.css 整理：去掉 Google Fonts @import，改为自托管 woff2；
   补齐对话框/抽屉/下拉/Toast/分页/Tabs/Switch/登录页/404。
   通过 NPM 同源 /rb-theme/cyber.css 或 inject.js 内联注入。 */

@font-face {
  font-family: "Orbitron";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/rb-theme/fonts/orbitron-500.woff2") format("woff2");
}
@font-face {
  font-family: "Orbitron";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/rb-theme/fonts/orbitron-700.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/rb-theme/fonts/jetbrains-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/rb-theme/fonts/jetbrains-mono-600.woff2") format("woff2");
}

:root, .dark, html.light, html:not(.dark), html[data-theme-preset] {
  --background: #050814; --foreground: #e0f2fe;
  --card: #0a0f1f; --card-foreground: #e0f2fe;
  --popover: #0a0f1f; --popover-foreground: #e0f2fe;
  --primary: #00f0ff; --primary-foreground: #050814;
  --secondary: #0f1a2e; --secondary-foreground: #7df5ff;
  --muted: #0b1326; --muted-foreground: rgba(224,242,254,.62);
  --accent: rgba(0,240,255,.12); --accent-foreground: #e0f2fe;
  --destructive: #ff0055; --destructive-foreground: #fff;
  --success: #00ff9d; --success-foreground: #050814;
  --warning: #ffd700; --warning-foreground: #050814;
  --info: #0088ff; --info-foreground: #fff;
  --neutral: rgba(224,242,254,.5); --neutral-foreground: #e0f2fe;
  --border: rgba(0,240,255,.18); --input: rgba(0,240,255,.28); --ring: #00f0ff;
  --chart-1: #00f0ff; --chart-2: #00ff9d; --chart-3: #ff0055; --chart-4: #ffd700; --chart-5: #0088ff;
  --overview-accent-1: #00f0ff; --overview-accent-2: #00ff9d; --overview-accent-3: #ff0055;
  --sidebar: #070b18; --sidebar-foreground: #e0f2fe;
  --sidebar-primary: #00f0ff; --sidebar-primary-foreground: #050814;
  --sidebar-accent: rgba(0,240,255,.1); --sidebar-accent-foreground: #7df5ff;
  --sidebar-border: rgba(0,240,255,.15); --sidebar-ring: #00f0ff;
  --radius: 0px;
  color-scheme: dark;
}
html { color-scheme: dark; }

body { background: #050814 !important; }
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle at 50% 0%, rgba(0,240,255,.12) 0%, transparent 40%),
    radial-gradient(circle at 100% 100%, rgba(0,255,157,.07) 0%, transparent 40%),
    radial-gradient(circle at 0% 100%, rgba(255,0,85,.07) 0%, transparent 40%),
    linear-gradient(rgba(0,240,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,240,255,.045) 1px, transparent 1px);
  background-size: auto, auto, auto, 48px 48px, 48px 48px;
}
body::after {
  content: ""; position: fixed; inset: 0; z-index: 2147483000; pointer-events: none; opacity: .45;
  background: linear-gradient(to bottom, transparent 50%, rgba(0,240,255,.03) 51%, transparent 51%);
  background-size: 100% 4px;
}
#root { position: relative; z-index: 1; }

h1, h2, .font-semibold.tracking-tight { letter-spacing: .02em; }
h1, h2 { text-shadow: 0 0 12px rgba(0,240,255,.25); }
code, pre, kbd, [class*="font-mono"], [class*="tabular-nums"] {
  font-family: "JetBrains Mono", ui-monospace, Consolas, monospace !important;
}
header .font-semibold.tracking-tight {
  font-family: Orbitron, system-ui, sans-serif;
  letter-spacing: .08em; text-transform: uppercase; font-size: .78rem;
  color: #00f0ff; text-shadow: 0 0 10px rgba(0,240,255,.5);
}

header nav { border-radius: 0 !important; }
header nav.bg-background\/60, header nav[class*="bg-background/60"] {
  background: rgba(5,8,20,.82) !important;
  box-shadow: 0 0 0 1px rgba(0,240,255,.35), 0 0 24px rgba(0,240,255,.15) !important;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}

.rounded-2xl.border, .rounded-xl.border, .rounded-3xl.border, .rounded-lg.border, [data-slot="card"] {
  position: relative; border-color: rgba(0,240,255,.22) !important; border-radius: 0 !important;
  box-shadow: inset 0 0 40px rgba(0,240,255,.035);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.rounded-2xl.border:hover, .rounded-xl.border:hover, .rounded-3xl.border:hover, [data-slot="card"]:hover {
  border-color: rgba(0,240,255,.5) !important;
  box-shadow: inset 0 0 40px rgba(0,240,255,.06), 0 0 18px rgba(0,240,255,.12);
}
.rounded-2xl.border::before, .rounded-xl.border::before, .rounded-3xl.border::before, [data-slot="card"]::before,
.rounded-2xl.border::after, .rounded-xl.border::after, .rounded-3xl.border::after, [data-slot="card"]::after {
  content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none; z-index: 1;
}
.rounded-2xl.border::before, .rounded-xl.border::before, .rounded-3xl.border::before, [data-slot="card"]::before {
  top: -1px; left: -1px; border-top: 2px solid #00f0ff; border-left: 2px solid #00f0ff;
}
.rounded-2xl.border::after, .rounded-xl.border::after, .rounded-3xl.border::after, [data-slot="card"]::after {
  right: -1px; bottom: -1px; border-right: 2px solid #00f0ff; border-bottom: 2px solid #00f0ff;
}

[data-slot="button"], button.bg-primary, a.bg-primary, a.bg-foreground {
  border-radius: 0 !important;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
[data-slot="button"].bg-primary, .bg-primary[data-slot="button"], a.bg-primary, a.bg-foreground {
  background: #00f0ff !important; color: #050814 !important; font-weight: 700; letter-spacing: .04em;
}
[data-slot="button"].bg-primary:hover, a.bg-primary:hover, a.bg-foreground:hover { filter: brightness(1.1); }
.bg-foreground { background: #00f0ff !important; color: #050814 !important; }
.text-background { color: #050814 !important; }

[data-slot="badge"], [data-slot="status-badge"], .rounded-full.border, .rounded-md.border { border-radius: 0 !important; }
[data-slot="status-badge"] {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  letter-spacing: .06em; text-transform: uppercase; font-size: .68rem;
}
input, textarea, select, [data-slot="input"], [data-slot="select-trigger"], [data-slot="textarea"], [role="combobox"] {
  border-radius: 0 !important; border-color: rgba(0,240,255,.28) !important; background: rgba(10,15,31,.7) !important;
}
input:focus-visible, [data-slot="input"]:focus-visible, [data-slot="textarea"]:focus-visible {
  box-shadow: 0 0 0 1px #00f0ff, 0 0 12px rgba(0,240,255,.35) !important;
}
table th {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; color: rgba(0,240,255,.8) !important;
}
table tr { border-color: rgba(0,240,255,.12) !important; }

[data-sidebar="menu-button"][data-active="true"], [data-sidebar="menu-sub-button"][data-active="true"], [data-active="true"][data-sidebar],
[data-sidebar="menu"] a[data-status="active"], [data-sidebar="menu"] a[aria-current="page"], [data-sidebar="menu-button"]:has(> a[aria-current="page"]) {
  background: rgba(0,240,255,.1) !important; color: #7df5ff !important; border-radius: 0 !important;
  box-shadow: inset 3px 0 0 #00f0ff, 0 0 14px rgba(0,240,255,.12);
}
[data-sidebar="sidebar"] { border-right: 1px solid rgba(0,240,255,.15) !important; }
[data-sidebar="group-label"] {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  letter-spacing: .16em; text-transform: uppercase; color: rgba(0,240,255,.55) !important;
}

a:hover { text-shadow: 0 0 8px rgba(0,240,255,.35); }
.text-primary { color: #00f0ff !important; }
.bg-primary\/10, [class*="bg-primary/10"] { background: rgba(0,240,255,.1) !important; }
.border-primary\/20, [class*="border-primary/20"] { border-color: rgba(0,240,255,.3) !important; }

[data-slot="dialog"], [data-slot="dialog-content"], [role="dialog"], [data-slot="alert-dialog-content"] {
  border-radius: 0 !important; border-color: rgba(0,240,255,.28) !important;
  background: #0a0f1f !important;
  box-shadow: 0 0 0 1px rgba(0,240,255,.35), 0 0 40px rgba(0,240,255,.12) !important;
}
[data-slot="dialog-overlay"], [data-slot="alert-dialog-overlay"], [data-slot="sheet-overlay"] {
  background: rgba(5,8,20,.72) !important;
}
[data-slot="sheet"], [data-slot="sheet-content"], [data-slot="drawer"] {
  border-radius: 0 !important; border-color: rgba(0,240,255,.22) !important; background: #0a0f1f !important;
}

[data-slot="dropdown-menu-content"], [data-slot="select-content"], [data-slot="popover-content"],
[data-radix-popper-content-wrapper] > * {
  border-radius: 0 !important; border-color: rgba(0,240,255,.22) !important; background: #0a0f1f !important;
}

[data-slot="toast"], [data-sonner-toast], [data-slot="tooltip-content"] {
  border-radius: 0 !important; border-color: rgba(0,240,255,.28) !important; background: #0a0f1f !important;
}

[data-slot="tabs-list"] { border-radius: 0 !important; background: #070b18 !important; }
[data-slot="tabs-trigger"] { border-radius: 0 !important; }
[data-slot="tabs-trigger"][data-state="active"] {
  background: rgba(0,240,255,.12) !important; color: #00f0ff !important;
  box-shadow: inset 0 -2px 0 #00f0ff;
}

[data-slot="switch"] { border-radius: 0 !important; }
[data-slot="switch"][data-state="checked"] { background: #00f0ff !important; }
[data-slot="checkbox"], [data-slot="radio-group-item"] { border-radius: 0 !important; border-color: rgba(0,240,255,.4) !important; }

[data-slot="pagination"], [data-slot="pagination-link"] { border-radius: 0 !important; }
[data-slot="separator"] { background: rgba(0,240,255,.15) !important; }

pre, [data-slot="scroll-area"] { border-radius: 0 !important; }
pre { background: #070b18 !important; border: 1px solid rgba(0,240,255,.18) !important; }

a[href="/sign-in"] ~ *, [href="/sign-up"] form, form[action*="login"] { border-radius: 0 !important; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #050814; }
::-webkit-scrollbar-thumb { background: rgba(0,240,255,.25); }
::-webkit-scrollbar-thumb:hover { background: rgba(0,240,255,.45); }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
