/*
 * 1024Token Welcome · Sub2API 外观覆盖 v1.0 · 2026-10-22
 * 参考：sub2api-extra-node/apps/web/src/landing/styles.module.css。
 * 将本文件作为独立 CSS，在官方页面原有样式之后加载；无需修改镜像。
 * 只调整颜色、字体、边框颜色和阴影，保留原布局、交互及明暗切换。
 * 改色集中在下方两组 --t1024-* 变量；html.dark 由原站控制。
 * 不覆盖红/橙/黄/成功状态、支付品牌色；不加载外部字体或脚本。
 */

:root {
  --t1024-font: 'Avenir Next', Avenir, 'Century Gothic', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --t1024-bg: #f4f6f3;
  --t1024-surface: #ffffff;
  --t1024-raised: #f9fbf8;
  --t1024-subtle: #edf1ed;
  --t1024-hover: #e6ede7;
  --t1024-glass: rgba(255, 255, 255, 0.93);
  --t1024-line: #d6ddd7;
  --t1024-line-strong: #b8c6bc;
  --t1024-ink: #19231f;
  --t1024-text: #34433c;
  --t1024-muted: #5c6b63;
  --t1024-faint: #76837b;
  --t1024-accent: #b7e2ce;
  --t1024-link: #315f4a;
  --t1024-link-hover: #214c38;
  --t1024-accent-soft: #e2efe6;
  --t1024-accent-line: #adcdb9;
  --t1024-solid: #376b53;
  --t1024-solid-hover: #2b5844;
  --t1024-cta: #dce9df;
  --t1024-cta-hover: #c5e8d6;
  --t1024-cta-ink: #19231f;
  --t1024-cta-line: #a8beb0;
  --t1024-focus: #477d60;
  --t1024-ring: rgba(71, 125, 96, 0.28);
  --t1024-shadow: 0 1px 3px rgba(25, 35, 31, 0.04);
  --t1024-float-shadow: 0 12px 36px rgba(25, 35, 31, 0.12);
}

html.dark {
  --t1024-bg: #080b0d;
  --t1024-surface: #101618;
  --t1024-raised: #151d1f;
  --t1024-subtle: #192225;
  --t1024-hover: #1e2a2b;
  --t1024-glass: rgba(16, 22, 24, 0.94);
  --t1024-line: #283336;
  --t1024-line-strong: #3c4d4e;
  --t1024-ink: #f0f2ee;
  --t1024-text: #c2c9c9;
  --t1024-muted: #8c969a;
  --t1024-faint: #74827f;
  --t1024-link: #b7e2ce;
  --t1024-link-hover: #d2efdf;
  --t1024-accent-soft: #1b3028;
  --t1024-accent-line: #39584a;
  --t1024-solid: #35694f;
  --t1024-solid-hover: #427b5e;
  --t1024-cta: #e0ebe2;
  --t1024-cta-hover: #c5e8d6;
  --t1024-cta-line: #e0ebe2;
  --t1024-focus: #b7e2ce;
  --t1024-ring: rgba(183, 226, 206, 0.28);
  --t1024-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  --t1024-float-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

html:root body {
  color: var(--t1024-ink);
  background-color: var(--t1024-bg);
  font-family: var(--t1024-font);
}

html:root ::selection { color: #19231f; background: #b7e2ce; }

/* 中性工具类：精确匹配，浅色与 dark: 变体各自生效。 */
html:not(.dark) :is(.bg-gray-50, .bg-gray-50\/80, .bg-gray-50\/60) {
  background-color: var(--t1024-bg);
}
html:not(.dark) :is(.bg-gray-100, .bg-gray-100\/50) {
  background-color: var(--t1024-subtle);
}
html:not(.dark) :is(.bg-gray-200, .bg-gray-300) {
  background-color: var(--t1024-line);
}
html:not(.dark) :is(.bg-white\/70, .bg-white\/80, .bg-white\/90) {
  background-color: var(--t1024-glass);
}
html.dark :is(.dark\:bg-dark-950, .dark\:bg-gray-950) {
  background-color: var(--t1024-bg);
}
html.dark :is(.dark\:bg-dark-900, .dark\:bg-gray-900) {
  background-color: var(--t1024-surface);
}
html.dark :is(.dark\:bg-dark-800, .dark\:bg-gray-800) {
  background-color: var(--t1024-raised);
}
html.dark :is(.dark\:bg-dark-700, .dark\:bg-gray-700) {
  background-color: var(--t1024-subtle);
}
html.dark :is(.dark\:bg-dark-600, .dark\:bg-dark-500, .dark\:bg-gray-600) {
  background-color: var(--t1024-line-strong);
}
html.dark :is(.dark\:bg-dark-800\/50, .dark\:bg-dark-800\/60, .dark\:bg-dark-800\/70) {
  background-color: rgba(21, 29, 31, 0.75);
}
html.dark :is(.dark\:bg-dark-900\/30, .dark\:bg-dark-900\/40, .dark\:bg-dark-900\/50) {
  background-color: rgba(16, 22, 24, 0.65);
}
html.dark :is(.dark\:bg-dark-700\/50, .dark\:bg-dark-800\/30) {
  background-color: rgba(25, 34, 37, 0.55);
}
html:not(.dark) :is(.text-gray-950, .text-gray-900, .text-gray-800) { color: var(--t1024-ink); }
html:not(.dark) :is(.text-gray-700, .text-gray-600) { color: var(--t1024-text); }
html:not(.dark) .text-gray-500 { color: var(--t1024-muted); }
html:not(.dark) .text-gray-400 { color: var(--t1024-faint); }
html.dark :is(.dark\:text-gray-100, .dark\:text-gray-200, .dark\:text-dark-100, .dark\:text-dark-200) {
  color: var(--t1024-ink);
}
html.dark :is(.dark\:text-gray-300, .dark\:text-dark-300) { color: var(--t1024-text); }
html.dark :is(.dark\:text-gray-400, .dark\:text-dark-400) { color: var(--t1024-muted); }
html.dark :is(.dark\:text-gray-500, .dark\:text-dark-500) { color: var(--t1024-faint); }

/* 边框只匹配中性色；错误输入交给原站的红色状态规则。 */
html:not(.dark) :is(.border-gray-100, .border-gray-200, .border-gray-200\/50):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-line);
}
html:not(.dark) .border-gray-300:not(.input-error):not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-line-strong);
}
html.dark :is(.dark\:border-dark-800, .dark\:border-dark-700, .dark\:border-gray-700, .dark\:border-dark-700\/50, .dark\:border-dark-700\/60):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-line);
}
html.dark :is(.dark\:border-dark-600, .dark\:border-dark-500, .dark\:border-dark-400):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-line-strong);
}
html:not(.dark) :is(.divide-gray-100, .divide-gray-200) > :not([hidden]) ~ :not([hidden]),
html.dark .dark\:divide-dark-700 > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--t1024-line);
}

/* 公共容器：保留官方尺寸、圆角、定位和响应式规则。 */
html:root :is(.card, .stat-card, .modal-content, .dialog-container, .dropdown, .select-dropdown-portal):not(:is(
  .bg-red-50, .bg-red-100, .bg-rose-50, .bg-rose-100,
  .bg-emerald-50, .bg-emerald-100, .bg-green-50, .bg-green-100,
  .bg-amber-50, .bg-amber-100, .bg-yellow-50, .bg-yellow-100, .bg-orange-50,
  .border-red-200, .border-emerald-200, .border-amber-200
)) {
  background-color: var(--t1024-surface);
  border-color: var(--t1024-line);
  box-shadow: var(--t1024-shadow);
}
html:root :is(.glass-card, .card-glass, .glass) {
  background-color: var(--t1024-glass);
  border-color: var(--t1024-line);
}
html:root :is(.glass-card, .card-glass) { box-shadow: var(--t1024-shadow); }
html:root :is(.modal-content, .dialog-container, .dropdown, .select-dropdown-portal) {
  box-shadow: var(--t1024-float-shadow);
}
html:root :is(.card-header, .card-footer, .modal-header, .modal-footer, .dialog-header, .dialog-footer, .table-container) {
  border-color: var(--t1024-line);
}
html:root .dialog-footer { background-color: var(--t1024-raised); }
html:root .card-hover:hover { border-color: var(--t1024-line-strong); box-shadow: var(--t1024-shadow); }
html:root .toast { background-color: var(--t1024-surface); box-shadow: var(--t1024-float-shadow); }
html:root .toast-info { border-left-color: var(--t1024-accent); }
html:root :is(.page-title, .modal-title, .empty-state-title) { color: var(--t1024-ink); }
html:root :is(.page-description, .stat-label, .input-hint, .empty-state-description) { color: var(--t1024-muted); }

/* 去除旧主题青蓝色网格光晕，使用欢迎页的克制背景。 */
html:root .bg-mesh-gradient { background-image: none; }
html:root :is(.shadow-glow, .shadow-glow-lg) { box-shadow: var(--t1024-shadow); }
html:root .sidebar { background-color: var(--t1024-surface); border-color: var(--t1024-line); }
html:root .sidebar-header { border-color: var(--t1024-line); }
html:root header.glass { background-color: var(--t1024-glass); border-color: var(--t1024-line); }
html:root .sidebar-link { color: var(--t1024-text); }
html:root .sidebar-link:not(.sidebar-link-active):hover { color: var(--t1024-ink); background-color: var(--t1024-hover); }
html:root .sidebar-link-active { color: var(--t1024-link); background-color: var(--t1024-accent-soft); }
html:root .sidebar-link-active:hover { color: var(--t1024-link-hover); background-color: var(--t1024-accent-soft); }
html:root .sidebar-section-title { color: var(--t1024-muted); }
html:root .sidebar-brand-title { color: var(--t1024-ink); }
html:root .sidebar-brand-title:hover { color: var(--t1024-link); }

/* 按钮：主按钮取欢迎页暖白薄荷色；危险/成功/支付按钮不纳入。 */
html:root .btn-primary {
  color: var(--t1024-cta-ink);
  background-color: var(--t1024-cta);
  background-image: none;
  border-color: var(--t1024-cta-line);
  --tw-shadow: 0 1px 2px rgba(25, 35, 31, 0.08);
  --tw-shadow-colored: 0 1px 2px rgba(25, 35, 31, 0.08);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
html:root .btn-primary:not(:disabled):not([aria-disabled='true']):hover {
  background-color: var(--t1024-cta-hover);
  background-image: none;
  border-color: var(--t1024-cta-hover);
  --tw-shadow: 0 1px 2px rgba(25, 35, 31, 0.08);
  --tw-shadow-colored: 0 1px 2px rgba(25, 35, 31, 0.08);
}
html:root .btn-secondary {
  color: var(--t1024-text);
  background-color: var(--t1024-surface);
  border-color: var(--t1024-line-strong);
}
html:root .btn-secondary:not(:disabled):not([aria-disabled='true']):hover {
  color: var(--t1024-ink);
  background-color: var(--t1024-hover);
  border-color: var(--t1024-line-strong);
}
html:root .btn-ghost { color: var(--t1024-muted); }
html:root .btn-ghost:not(:disabled):not([aria-disabled='true']):hover {
  color: var(--t1024-ink);
  background-color: var(--t1024-hover);
}
html:root :is(.btn-primary, .btn-secondary, .btn-ghost):disabled {
  /* 不修改原有 opacity / cursor / disabled 行为。 */
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
}

/* 输入与 Select：错误边框/错误焦点不被中性样式覆盖。 */
html:root :is(.input, .select-trigger) { color: var(--t1024-ink); background-color: var(--t1024-surface); }
html:root .input:not(.input-error):not([aria-invalid='true']),
html:root .select-trigger:not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-line-strong);
}
html:root .input:not(.input-error):not([aria-invalid='true']):focus,
html:root .select-trigger:not(.select-trigger-error):not([aria-invalid='true']):focus,
html:root .select-trigger-open:not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-focus);
  --tw-ring-color: var(--t1024-ring);
}
html:root .input::placeholder,
html:root .select-search-input::placeholder { color: var(--t1024-faint); }
html:root .input:disabled,
html:root .select-trigger-disabled { background-color: var(--t1024-subtle); }
html:root .input-label { color: var(--t1024-text); }
html:root input:is([type='checkbox'], [type='radio']) {
  accent-color: var(--t1024-solid);
}
html:root :is(.select-icon, .select-clear, .select-empty) { color: var(--t1024-muted); }
html:root .select-clear:hover { color: var(--t1024-ink); }
html:root .select-search { border-color: var(--t1024-line); }
html:root .select-search-input { color: var(--t1024-ink); }
html:root .select-dropdown-portal .select-option { color: var(--t1024-text); }
html:root .select-dropdown-portal .select-option:not([aria-disabled='true']):hover,
html:root .select-dropdown-portal .select-option-focused:not([aria-disabled='true']) {
  color: var(--t1024-ink);
  background-color: var(--t1024-hover);
}
html:root .select-dropdown-portal .select-option-selected,
html:root .select-dropdown-portal .select-option-selected:not([aria-disabled='true']):hover {
  color: var(--t1024-link);
  background-color: var(--t1024-accent-soft);
}
html:root .select-dropdown-portal .select-option-group { color: var(--t1024-muted); background-color: var(--t1024-raised); }
html:root .dropdown-item:not(:is(
  .text-red-500, .text-red-600, .text-red-700, .text-rose-600,
  .text-emerald-600, .text-green-600, .text-amber-600, .text-amber-700,
  .text-orange-600, .text-yellow-700
)) { color: var(--t1024-text); }
html:root .dropdown-item:not(:disabled):not([aria-disabled='true']):not(:is(
  .text-red-500, .text-red-600, .text-red-700, .text-rose-600,
  .text-emerald-600, .text-green-600, .text-amber-600, .text-amber-700,
  .text-orange-600, .text-yellow-700
)):hover { color: var(--t1024-ink); background-color: var(--t1024-hover); }

/* 表格、分页和数据区域：保留行状态、选择与排序行为。 */
html:root .table th { color: var(--t1024-muted); background-color: var(--t1024-raised); border-color: var(--t1024-line); }
html:root .table td { border-color: var(--t1024-line); }
html:root .table tbody tr:hover { background-color: var(--t1024-hover); }
html:root .table-wrapper thead.sticky { background-color: var(--t1024-raised); }
html:root :is(.badge-primary, .stat-icon-primary) { color: var(--t1024-link); background-color: var(--t1024-accent-soft); }
html:root .badge-gray { color: var(--t1024-text); background-color: var(--t1024-subtle); }
html:root .tabs { background-color: var(--t1024-subtle); }
html:root .tab { color: var(--t1024-muted); }
html:root .tab:hover { color: var(--t1024-ink); }
html:root .tab-active { color: var(--t1024-ink); background-color: var(--t1024-surface); }
html:root :is(.divider, .skeleton, .progress) { background-color: var(--t1024-line); }
html:root .progress-bar { background-color: var(--t1024-solid); background-image: none; }
html:root .switch { background-color: var(--t1024-line-strong); }
html:root .switch-active { background-color: var(--t1024-solid); }
html:root .code { color: var(--t1024-link); background-color: var(--t1024-subtle); }

/* 品牌文字与小面积提示；不改 text-white，避免影响语义按钮。 */
html:not(.dark) :is(.text-primary-500, .text-primary-600, .text-primary-700, .text-primary-800, .text-primary-900) {
  color: var(--t1024-link);
}
html.dark :is(.dark\:text-primary-100, .dark\:text-primary-200, .dark\:text-primary-300, .dark\:text-primary-400, .dark\:text-primary-500) {
  color: var(--t1024-link);
}
html:not(.dark) :is(.bg-primary-50, .bg-primary-100, .bg-primary-50\/70, .bg-primary-100\/50) {
  background-color: var(--t1024-accent-soft);
}
html.dark :is(.dark\:bg-primary-900\/20, .dark\:bg-primary-900\/30, .dark\:bg-primary-900\/40, .dark\:bg-primary-500\/10, .dark\:bg-primary-500\/20) {
  background-color: var(--t1024-accent-soft);
}
html:root :is(.bg-primary-500, .bg-primary-600, .bg-primary-700) {
  /* 深青色兼容原有白色文字和 Toggle 的白色滑块。 */
  background-color: var(--t1024-solid);
}
html:not(.dark) :is(.border-primary-100, .border-primary-200, .border-primary-300),
html.dark :is(.dark\:border-primary-500\/20, .dark\:border-primary-500\/30, .dark\:border-primary-700) {
  border-color: var(--t1024-accent-line);
}
html:root :is(.border-primary-500, .border-primary-600):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']) {
  border-color: var(--t1024-focus);
}
html:root :is(.ring-primary-500, .ring-primary-500\/20, .ring-primary-500\/30) {
  --tw-ring-color: var(--t1024-ring);
}
html:root .text-gradient {
  color: var(--t1024-link);
  background-image: none;
  -webkit-text-fill-color: currentColor;
}
html:root .bg-gradient-primary { background-image: none; background-color: var(--t1024-solid); }
html:root .from-primary-500 { --tw-gradient-from: var(--t1024-solid) var(--tw-gradient-from-position); --tw-gradient-to: rgba(55, 107, 83, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
html:root .to-primary-600 { --tw-gradient-to: var(--t1024-solid) var(--tw-gradient-to-position); }
html:root .to-primary-400 { --tw-gradient-to: var(--t1024-solid) var(--tw-gradient-to-position); }

/* 登录页现有背景仅改色，不调整光斑的位置、大小或可见性。 */
html:root .bg-gradient-to-br.from-gray-50.via-primary-50\/30 {
  background-image: linear-gradient(135deg, var(--t1024-bg), var(--t1024-raised), var(--t1024-bg));
}
html:root .bg-primary-400\/20 { background-color: rgba(183, 226, 206, 0.12); }
html:root .bg-primary-500\/15 { background-color: rgba(183, 226, 206, 0.08); }
html:root .bg-primary-300\/10 { background-color: rgba(183, 226, 206, 0.06); }
html:root .from-primary-600 {
  --tw-gradient-from: var(--t1024-solid) var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(55, 107, 83, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
html:root .to-primary-500 { --tw-gradient-to: var(--t1024-solid) var(--tw-gradient-to-position); }

/* 精确补齐 hover 工具类，禁用控件保留原状态。 */
html:not(.dark) :is(.hover\:bg-gray-50, .hover\:bg-gray-100, .hover\:bg-gray-200):not(:disabled):not([aria-disabled='true']):hover {
  background-color: var(--t1024-hover);
}
html.dark :is(.dark\:hover\:bg-dark-800, .dark\:hover\:bg-dark-700, .dark\:hover\:bg-dark-600, .dark\:hover\:bg-dark-500):not(:disabled):not([aria-disabled='true']):hover {
  background-color: var(--t1024-hover);
}
html:not(.dark) :is(.hover\:text-gray-600, .hover\:text-gray-700, .hover\:text-gray-900):hover,
html.dark :is(.dark\:hover\:text-gray-200, .dark\:hover\:text-gray-300):hover {
  color: var(--t1024-ink);
}
html:not(.dark) :is(.hover\:text-primary-500, .hover\:text-primary-600, .hover\:text-primary-700):hover,
html.dark :is(.dark\:hover\:text-primary-300, .dark\:hover\:text-primary-400):hover {
  color: var(--t1024-link-hover);
}
html:root :is(.hover\:bg-primary-600, .hover\:bg-primary-700):not(:disabled):not([aria-disabled='true']):hover {
  background-color: var(--t1024-solid-hover);
}
html:not(.dark) :is(.hover\:bg-primary-50, .hover\:bg-primary-100):not(:disabled):not([aria-disabled='true']):hover,
html.dark :is(.dark\:hover\:bg-primary-900\/20, .dark\:hover\:bg-primary-900\/30):not(:disabled):not([aria-disabled='true']):hover {
  background-color: var(--t1024-accent-soft);
}
html:not(.dark) :is(.hover\:border-gray-300, .hover\:border-gray-400):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']):hover,
html.dark :is(.dark\:hover\:border-dark-500, .dark\:hover\:border-dark-400):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']):hover {
  border-color: var(--t1024-line-strong);
}

/* 焦点只调整品牌色；错误输入与原生禁用属性保持优先。 */
html:root :is(.focus\:ring-primary-500, .focus\:ring-primary-500\/20, .focus\:ring-primary-500\/30, .focus\:ring-primary-500\/50):not(.input-error):not(.select-trigger-error):not([aria-invalid='true']):focus {
  --tw-ring-color: var(--t1024-ring);
}
html:root .focus\:border-primary-500:not(.input-error):not(.select-trigger-error):not([aria-invalid='true']):focus {
  border-color: var(--t1024-focus);
}
html:root :is(.btn-primary, .btn-secondary, .btn-ghost, .sidebar-link, .dropdown-item, .tab):not(:disabled):not([aria-disabled='true']):focus-visible {
  --tw-ring-color: var(--t1024-ring);
  --tw-ring-offset-color: var(--t1024-surface);
  outline: 2px solid var(--t1024-focus);
  outline-offset: 3px;
}

/* 错误状态最后定义，避免官方深色 .input 规则遮住红色边框。 */
html:root :is(.input.input-error, .input[aria-invalid='true'], .select-trigger.select-trigger-error, .select-trigger[aria-invalid='true']) {
  border-color: #dc2626;
}
html:root :is(.input.input-error, .input[aria-invalid='true'], .select-trigger.select-trigger-error, .select-trigger[aria-invalid='true']):focus {
  border-color: #dc2626;
  --tw-ring-color: rgba(220, 38, 38, 0.28);
}
html.dark :is(.input.input-error, .input[aria-invalid='true'], .select-trigger.select-trigger-error, .select-trigger[aria-invalid='true']) {
  border-color: #f87171;
}
html.dark :is(.input.input-error, .input[aria-invalid='true'], .select-trigger.select-trigger-error, .select-trigger[aria-invalid='true']):focus {
  border-color: #f87171;
  --tw-ring-color: rgba(248, 113, 113, 0.28);
}
html.dark .dark\:focus\:ring-offset-dark-800:focus {
  --tw-ring-offset-color: var(--t1024-surface);
}

/* 限制：iframe 内容、canvas 图表、图片与第三方支付界面由各自页面控制。
 * 官方升级后，核对登录、侧栏、表格、弹窗和两种明暗模式即可；
 * 新增组件若未使用上述公共类，可针对其明确类名补充规则。
 */
