/* ============================================================
 * corenode brand stylesheet — Linear / Vercel inspired.
 * Single accent color, high-contrast text, no gradient text,
 * no glassmorphism, no radial light blobs.
 * ============================================================ */

:root {
  /* Single accent. Light: pure white bg, near-black text. */
  --cn-accent:        #2563EB;
  --cn-accent-hover:  #1D4ED8;
  --cn-accent-active: #1E40AF;
  --cn-accent-soft:   rgba(37, 99, 235, 0.08);
  --cn-accent-ring:   rgba(37, 99, 235, 0.25);

  --cn-bg:        #FFFFFF;
  --cn-surface:   #FFFFFF;
  --cn-surface-2: #F9FAFB;
  --cn-fg:        #0F172A;
  --cn-fg-muted:  #475569;
  --cn-fg-subtle: #94A3B8;
  --cn-border:    #E2E8F0;
  --cn-border-strong: #CBD5E1;

  --cn-success: #16A34A;
  --cn-warning: #D97706;
  --cn-danger:  #DC2626;

  --cn-font: -apple-system, BlinkMacSystemFont, "Inter", "PingFang SC",
             "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --cn-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --cn-radius-sm: 6px;
  --cn-radius:    8px;
  --cn-radius-lg: 12px;

  --cn-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04);
  --cn-shadow:    0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
  --cn-shadow-lg: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.06);

  /* Map to Semi UI tokens */
  --semi-color-primary:        var(--cn-accent) !important;
  --semi-color-primary-hover:  var(--cn-accent-hover) !important;
  --semi-color-primary-active: var(--cn-accent-active) !important;
  --semi-color-primary-disabled: rgba(37, 99, 235, 0.4) !important;
  --semi-color-primary-light-default: var(--cn-accent-soft) !important;
  --semi-color-primary-light-hover:   rgba(37, 99, 235, 0.14) !important;
  --semi-color-primary-light-active:  rgba(37, 99, 235, 0.20) !important;
  --semi-color-link:        var(--cn-accent) !important;
  --semi-color-link-hover:  var(--cn-accent-hover) !important;
  --semi-color-link-active: var(--cn-accent-active) !important;
  --semi-color-focus-border: var(--cn-accent) !important;
  --semi-color-success: var(--cn-success) !important;
  --semi-color-warning: var(--cn-warning) !important;
  --semi-color-danger:  var(--cn-danger) !important;

  --background: var(--cn-bg);
  --foreground: var(--cn-fg);
  --card: var(--cn-surface);
  --card-foreground: var(--cn-fg);
  --primary: var(--cn-accent);
  --primary-foreground: #FFFFFF;
  --accent: var(--cn-accent-soft);
  --accent-foreground: var(--cn-fg);
  --ring: var(--cn-accent);
  --chart-1: var(--cn-accent);
  --chart-2: #0F172A;
  --chart-3: #64748B;
  --chart-4: #94A3B8;
  --chart-5: #CBD5E1;
}

@media (prefers-color-scheme: dark) {
  :root {
    --cn-bg:        #0A0A0A;
    --cn-surface:   #111111;
    --cn-surface-2: #161616;
    --cn-fg:        #FAFAFA;
    --cn-fg-muted:  #A1A1AA;
    --cn-fg-subtle: #71717A;
    --cn-border:    #27272A;
    --cn-border-strong: #3F3F46;
    --cn-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
    --cn-shadow:    0 1px 3px rgba(0, 0, 0, 0.5);
    --cn-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.5);
  }
}

/* Base */
html, body, #root {
  background: var(--cn-bg) !important;
  color: var(--cn-fg);
  font-family: var(--cn-font) !important;
  -webkit-font-smoothing: antialiased;
}
body, button, input, textarea, select { font-family: var(--cn-font) !important; }

/* Kill leftover gradient/blur from previous themes */
.semi-layout-content::before,
.login-page::before,
[class*="login"]::before,
[class*="register"]::before,
[class*="topup"]::before,
.cn-shell::before {
  background: none !important;
  filter: none !important;
}

a, .text-blue-600 { color: var(--cn-accent) !important; }
a:hover { color: var(--cn-accent-hover) !important; }
::selection { background: var(--cn-accent-soft); color: var(--cn-fg); }

/* Layout */
.semi-layout, .semi-layout-content, .semi-layout-sider { background: var(--cn-bg) !important; }

header,
.semi-layout-header,
.semi-navigation-header,
nav.semi-navigation-horizontal {
  background: var(--cn-bg) !important;
  border-bottom: 1px solid var(--cn-border) !important;
  backdrop-filter: none !important;
}
.semi-navigation-vertical, aside.semi-layout-sider {
  background: var(--cn-surface) !important;
  border-right: 1px solid var(--cn-border) !important;
}

/* Single brand label */
[data-corenode-brand] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: var(--cn-fg) !important;
  font-weight: 700 !important;
  font-size: 16px;
  letter-spacing: -0.01em;
  text-decoration: none !important;
}
[data-corenode-brand]::before {
  content: "";
  display: inline-block;
  width: 22px; height: 22px;
  flex: 0 0 22px;
  border-radius: 6px;
  background: var(--cn-accent);
}
[data-corenode-brand] ~ [data-corenode-brand] { display: none !important; }

/* Kill default new-api logos beside ours */
.semi-navigation-header > .semi-navigation-item:first-child img,
header > div:first-child img:not([alt="corenode"]),
header [class*="Logo"]:not([data-corenode-brand]),
.semi-navigation-header span[class*="systemName"] {
  display: none !important;
}

/* Sidebar nav */
.semi-navigation-item-selected,
.semi-navigation-item-normal-selected {
  background: var(--cn-accent-soft) !important;
  color: var(--cn-accent) !important;
  border-radius: var(--cn-radius-sm) !important;
}
.semi-navigation-item-selected .semi-navigation-item-text,
.semi-navigation-item-selected .semi-navigation-item-icon { color: var(--cn-accent) !important; }

/* Buttons */
.semi-button {
  border-radius: var(--cn-radius) !important;
  font-weight: 500 !important;
  transition: background-color 120ms, color 120ms, border-color 120ms, box-shadow 120ms !important;
}
.semi-button-primary, button[type="submit"].semi-button {
  background: var(--cn-accent) !important;
  border: 1px solid var(--cn-accent) !important;
  color: #FFFFFF !important;
  box-shadow: var(--cn-shadow-sm) !important;
}
.semi-button-primary:hover {
  background: var(--cn-accent-hover) !important;
  border-color: var(--cn-accent-hover) !important;
  box-shadow: var(--cn-shadow) !important;
}
.semi-button-primary:active {
  background: var(--cn-accent-active) !important;
  border-color: var(--cn-accent-active) !important;
}
.semi-button-borderless, .semi-button-secondary {
  color: var(--cn-fg) !important;
  background: transparent !important;
  border: 1px solid var(--cn-border) !important;
}
.semi-button-borderless:hover, .semi-button-secondary:hover {
  background: var(--cn-surface-2) !important;
  border-color: var(--cn-border-strong) !important;
}
.semi-button-tertiary { color: var(--cn-fg-muted) !important; background: transparent !important; }
.semi-button-tertiary:hover { color: var(--cn-fg) !important; background: var(--cn-surface-2) !important; }
.semi-button-danger {
  background: var(--cn-danger) !important;
  border-color: var(--cn-danger) !important;
  color: #FFFFFF !important;
}

/* Cards */
.semi-card, .semi-collapse-item, .shadcn-card, [class*="-card"] {
  background: var(--cn-surface) !important;
  border: 1px solid var(--cn-border) !important;
  border-radius: var(--cn-radius-lg) !important;
  box-shadow: none !important;
  transition: border-color 120ms !important;
}
.semi-card:hover { border-color: var(--cn-border-strong) !important; }

/* Inputs */
.semi-input, .semi-input-textarea, .semi-select-selection, .semi-input-number-inner {
  background: var(--cn-surface) !important;
  border: 1px solid var(--cn-border) !important;
  border-radius: var(--cn-radius) !important;
  color: var(--cn-fg) !important;
  transition: border-color 120ms, box-shadow 120ms !important;
}
.semi-input:focus, .semi-input-wrapper:focus-within, .semi-input-textarea:focus,
.semi-select-selection:focus, .semi-input-number-inner:focus {
  border-color: var(--cn-accent) !important;
  box-shadow: 0 0 0 3px var(--cn-accent-ring) !important;
  outline: none !important;
}
::placeholder { color: var(--cn-fg-subtle) !important; }

/* Tables */
.semi-table, .semi-table-tbody, .semi-table-thead { background: var(--cn-surface) !important; }
.semi-table-thead > .semi-table-row > .semi-table-row-head {
  background: var(--cn-surface-2) !important;
  color: var(--cn-fg-muted) !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--cn-border) !important;
}
.semi-table-tbody > .semi-table-row > .semi-table-row-cell {
  border-bottom: 1px solid var(--cn-border) !important;
  color: var(--cn-fg) !important;
}
.semi-table-tbody > .semi-table-row:hover > .semi-table-row-cell {
  background: var(--cn-surface-2) !important;
}

/* Tags / badges */
.semi-tag, .semi-tag-solid { border-radius: var(--cn-radius-sm) !important; font-weight: 500 !important; }
.semi-tag-solid.semi-tag-primary, .semi-badge-count {
  background: var(--cn-accent) !important;
  border: none !important;
  color: #FFFFFF !important;
}

/* Modal / popover */
.semi-modal, .semi-popover-content {
  background: var(--cn-surface) !important;
  border: 1px solid var(--cn-border) !important;
  border-radius: var(--cn-radius-lg) !important;
  box-shadow: var(--cn-shadow-lg) !important;
}

/* Toast */
.semi-toast, .semi-notification-notice {
  background: var(--cn-surface) !important;
  border: 1px solid var(--cn-border) !important;
  border-radius: var(--cn-radius) !important;
  box-shadow: var(--cn-shadow-lg) !important;
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--cn-border-strong);
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--cn-fg-subtle); background-clip: padding-box; }

/* Page-specific subtle accents */
body[data-corenode-page="login"] .semi-layout-content,
body[data-corenode-page="register"] .semi-layout-content { background: var(--cn-bg) !important; }
body[data-corenode-page="login"] .semi-card,
body[data-corenode-page="register"] .semi-card {
  border: 1px solid var(--cn-border) !important;
  box-shadow: var(--cn-shadow-lg) !important;
}
body[data-corenode-page="topup"] .semi-card { border: 1px solid var(--cn-border) !important; }

.echarts-for-react canvas { filter: none !important; }

/* Public landing helpers */
.cn-shell { background: var(--cn-bg); color: var(--cn-fg); font-family: var(--cn-font); }
.cn-link { color: var(--cn-accent); text-decoration: none; }
.cn-link:hover { color: var(--cn-accent-hover); text-decoration: underline; }
