/* ============================================================
   主题变量层
   ------------------------------------------------------------
   所有主题共用同一套变量名，切换主题只需换 body 上的 class。
   号码球的颜色（赛车十色、六合彩波色）属于彩票规则，不随主题变，
   因此不在这里定义，见 home.css 的号码球区块。
   ============================================================ */

/* 主题挂在 <html data-theme> 上而不是 body：
   base.html 的内联脚本能在首屏渲染前设好它，切主题不会闪一下默认色。 */

/* 168 主题（默认）：活力橙 */
:root,
:root[data-theme="168"] {
  --color-primary: #f97316;
  --color-primary-hover: #ea580c;
  --color-primary-light: rgba(249, 115, 22, .12);

  --color-bg: #f8fafc;
  --color-card: #fff;
  --color-card-hover: #fffbf5;

  --color-text: #1e293b;
  --color-text-secondary: #64748b;
  --color-text-muted: #94a3b8;

  --color-border: #e2e8f0;
  --color-border-light: #f1f5f9;

  --color-header-bg: linear-gradient(135deg, #f97316, #fb923c);
  --color-header-text: #fff;

  --color-tab-active: #f97316;
  --color-tab-bg: #fff7ed;

  --color-countdown-bar: linear-gradient(90deg, #f97316, #fbbf24);
  --color-countdown-track: #fed7aa;

  --color-badge-bg: rgba(249, 115, 22, .1);
  --color-badge-text: #ea580c;

  /* 阴影带主色而非纯黑，是这套皮肤的关键细节 */
  --color-shadow: rgba(249, 115, 22, .08);

  --color-strip: #fff7ed;
  --color-table-head: #f8fafc;
  --color-table-border: #f1f5f9;
  --color-table-stripe: #fafafa;

  --color-footer-bg: #1e293b;
  --color-footer-text: #94a3b8;

  --color-loader-mark: linear-gradient(135deg, #f97316, #fb923c);
  --color-loader-track: #fed7aa;
  --color-loader-bar: linear-gradient(90deg, #ea580c, #fbbf24);

  color-scheme: light;
}

/* 暗夜科技 */
:root[data-theme="dark"] {
  --color-primary: #22d3ee;
  --color-primary-hover: #06b6d4;
  --color-primary-light: rgba(34, 211, 238, .14);

  --color-bg: #0c0f1a;
  --color-card: #151929;
  --color-card-hover: #1b2036;

  --color-text: #e5f0ff;
  --color-text-secondary: #94a3b8;
  --color-text-muted: #64748b;

  --color-border: #24304a;
  --color-border-light: #1b2338;

  --color-header-bg: linear-gradient(135deg, #0f172a, #1e293b);
  --color-header-text: #fff;

  --color-tab-active: #22d3ee;
  --color-tab-bg: #16243a;

  --color-countdown-bar: linear-gradient(90deg, #22d3ee, #818cf8);
  --color-countdown-track: #1e2a44;

  --color-badge-bg: rgba(34, 211, 238, .12);
  --color-badge-text: #67e8f9;

  --color-shadow: rgba(0, 0, 0, .28);

  --color-strip: #16243a;
  --color-table-head: #14203a;
  --color-table-border: #24304a;
  --color-table-stripe: #121727;

  --color-footer-bg: #080d17;
  --color-footer-text: #64748b;

  --color-loader-mark: linear-gradient(135deg, #0891b2, #22d3ee);
  --color-loader-track: #1e2a44;
  --color-loader-bar: linear-gradient(90deg, #22d3ee, #818cf8);

  color-scheme: dark;
}

/* 专业蓝（改版前的配色，保留为可选主题） */
:root[data-theme="blue"] {
  --color-primary: #3b82f6;
  --color-primary-hover: #2563eb;
  --color-primary-light: rgba(59, 130, 246, .12);

  --color-bg: #eff6ff;
  --color-card: #fff;
  --color-card-hover: #f8fbff;

  --color-text: #1e3a5f;
  --color-text-secondary: #64748b;
  --color-text-muted: #93b4d4;

  --color-border: #bfdbfe;
  --color-border-light: #dbeafe;

  --color-header-bg: linear-gradient(135deg, #1e40af, #3b82f6);
  --color-header-text: #fff;

  --color-tab-active: #3b82f6;
  --color-tab-bg: #dbeafe;

  --color-countdown-bar: linear-gradient(90deg, #2563eb, #60a5fa);
  --color-countdown-track: #dbeafe;

  --color-badge-bg: rgba(59, 130, 246, .1);
  --color-badge-text: #2563eb;

  --color-shadow: rgba(59, 130, 246, .08);

  --color-strip: #dbeafe;
  --color-table-head: #eff6ff;
  --color-table-border: #dbeafe;
  --color-table-stripe: #f8fbff;

  --color-footer-bg: #fff;
  --color-footer-text: #93b4d4;

  --color-loader-mark: linear-gradient(135deg, #1e40af, #3b82f6);
  --color-loader-track: #bfdbfe;
  --color-loader-bar: linear-gradient(90deg, #2563eb, #60a5fa);

  color-scheme: light;
}

/* 切主题时整体过渡，避免生硬跳变 */
body {
  transition: background-color .3s ease, color .3s ease;
}

/* ============================================================
   头部与主题切换器
   ============================================================ */

.site-header {
  background: var(--color-header-bg);
  box-shadow: 0 2px 12px var(--color-shadow);
  color: var(--color-header-text);
}

.site-header a {
  color: var(--color-header-text);
}

.theme-switch {
  position: relative;
}

.theme-switch-btn {
  align-items: center;
  background: rgba(255, 255, 255, .15);
  border: 0;
  border-radius: 999px;
  color: var(--color-header-text);
  cursor: pointer;
  display: inline-flex;
  font-size: .8125rem;
  font-weight: 600;
  gap: .375rem;
  padding: .375rem .875rem;
  transition: background .15s;
}

.theme-switch-btn:hover {
  background: rgba(255, 255, 255, .26);
}

.theme-switch-menu {
  animation: theme-menu-in .15s ease;
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  box-shadow: 0 12px 32px var(--color-shadow);
  display: none;
  min-width: 9rem;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: calc(100% + .5rem);
  z-index: 60;
}

.theme-switch-menu.is-open {
  display: block;
}

.theme-switch-menu button {
  align-items: center;
  background: none;
  border: 0;
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  font-size: .8125rem;
  font-weight: 600;
  gap: .5rem;
  padding: .625rem .875rem;
  text-align: left;
  width: 100%;
}

.theme-switch-menu button:hover {
  background: var(--color-primary-light);
}

.theme-switch-menu button.is-active {
  color: var(--color-primary);
}

.theme-dot {
  border-radius: 50%;
  display: inline-block;
  height: .875rem;
  width: .875rem;
}

.theme-dot-168 {
  background: linear-gradient(135deg, #f97316, #fb923c);
}

.theme-dot-dark {
  background: linear-gradient(135deg, #0f172a, #22d3ee);
}

.theme-dot-blue {
  background: linear-gradient(135deg, #1e40af, #3b82f6);
}

@keyframes theme-menu-in {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ============================================================
   语义化文本/容器
   ------------------------------------------------------------
   这些原来是模板里写死的 Tailwind 工具类（text-blue-300 之类），
   工具类不吃 CSS 变量，换主题时不会变色，所以收敛到这里。
   ============================================================ */

.text-title {
  color: var(--color-text);
}

.text-issue {
  color: var(--color-text-muted);
}

.text-meta {
  color: var(--color-text-secondary);
}

.text-accent {
  color: var(--color-primary);
}

.text-accent:hover {
  color: var(--color-primary-hover);
}

.text-plus {
  color: var(--color-text-muted);
}

.notice-label {
  color: var(--color-primary);
}

.notice-text {
  color: var(--color-text-secondary);
}

.countdown-display {
  color: var(--color-primary);
}

.panel-surface {
  background: var(--color-card);
  border: 1px solid var(--color-border);
}

.countdown-chip {
  background: var(--color-badge-bg);
}

.countdown-chip .countdown-display {
  color: var(--color-badge-text);
}

.countdown-chip-label {
  color: var(--color-badge-text);
  opacity: .75;
}

/* ============================================================
   走势 · 长龙
   红=大/单/龙，蓝=小/双/虎，沿用开奖站惯例。
   ============================================================ */

.trend-panel {
  border-top: 1px solid var(--color-border-light);
  margin-top: 1.5rem;
  padding-top: 1.25rem;
}

.trend-panel[hidden] {
  display: none;
}

.trend-head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  justify-content: space-between;
  margin-bottom: .875rem;
}

.trend-hint {
  color: var(--color-text-muted);
  font-size: .75rem;
}

.trend-hint b {
  color: var(--color-primary);
  font-weight: 700;
}

.trend-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.trend-cell {
  align-items: center;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  display: flex;
  gap: .625rem;
  padding: .75rem .875rem;
}

/* 达到长龙阈值：整格用主色描边并高亮，一眼能扫到 */
.trend-cell.is-dragon {
  background: var(--color-primary-light);
  border-color: var(--color-primary);
}

.trend-name {
  color: var(--color-text-secondary);
  flex-shrink: 0;
  font-size: .8125rem;
  font-weight: 600;
}

.trend-value {
  align-items: center;
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  flex-shrink: 0;
  font-size: .9375rem;
  font-weight: 700;
  height: 1.75rem;
  justify-content: center;
  width: 1.75rem;
}

.trend-hot {
  background: #ef4444;
}

.trend-cold {
  background: #3b82f6;
}

.trend-count {
  color: var(--color-text-secondary);
  font-size: .8125rem;
  margin-left: auto;
  white-space: nowrap;
}

.trend-count b {
  color: var(--color-primary);
  font-size: 1.0625rem;
  font-weight: 800;
}

.trend-flag {
  background: var(--color-primary);
  border-radius: 999px;
  color: #fff;
  flex-shrink: 0;
  font-size: .6875rem;
  font-weight: 700;
  padding: .125rem .5rem;
}

/* ============================================================
   Keno 号码球（澳洲幸运20 / 台湾宾果）
   白底描边而非实心：20 个球密排时实心太吵。
   前区（1-40）浅蓝、后区（41-80）深色，特别号橙色——
   这样"前后多"那一列的统计直接反映在号码本身的深浅上。
   ============================================================ */

/* Keno 号码球的样式定义在 home.css——那里在本文件之后加载，
   放这儿会被 .lottery-ball / .history-balls .lottery-ball 的实心球样式盖掉。 */

/* ============================================================
   历史表格统计列
   ============================================================ */

.history-table .col-stat {
  text-align: center;
  white-space: nowrap;
}

.stat-cell {
  display: inline-block;
  font-weight: 600;
  padding: 0 .25rem;
}

.stat-hot {
  color: #ef4444;
}

.stat-cold {
  color: #3b82f6;
}

.history-table .col-time {
  color: var(--color-text-secondary);
  font-size: .8125rem;
  white-space: nowrap;
}

.history-table .col-issue {
  color: var(--color-text);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
