/* =============================================================================
   竞速魔方 · 统一主题（以「俱乐部学员管理系统」的视觉为基准）
   由门户 /static/theme.css 提供，三个子系统统一引用。
   只覆盖「皮肤层」（配色 / 字体 / 圆角 / 阴影 / 形态），不动布局结构。
   ============================================================================= */
:root{
  --pri:#4F46E5; --pri2:#7C3AED; --ink:#1B1E28; --mut:#6B7280;
  --bd:#E6E8F0; --bg:#F5F6FB; --card:#ffffff;
  --r-lg:16px; --r-md:11px;
  --sh:0 4px 16px rgba(79,70,229,.07);
  --sh-hover:0 10px 26px rgba(79,70,229,.14);
  --grad:linear-gradient(120deg,#4F46E5,#7C3AED);
  --grad-top:linear-gradient(115deg,#4F46E5 0%,#6D28D9 55%,#9333EA 100%);
}
*,*::before,*::after{box-sizing:border-box}

/* ---------- 基础：字体 / 背景 / 文字 ---------- */
body,body.dark{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif !important;
  background:var(--bg) !important; background-image:none !important; background-attachment:scroll !important;
  color:var(--ink) !important; -webkit-font-smoothing:antialiased;
}
a{color:var(--pri)}
.muted,.small{color:var(--mut) !important}

/* ---------- 顶栏：统一靛蓝→紫渐变 ---------- */
.top,body.dark .top{
  background:var(--grad-top) !important; color:#fff !important;
  border-bottom:0 !important; box-shadow:0 6px 20px rgba(79,70,229,.22) !important;
}
.top a,.top .who,body.dark .top a{color:#fff !important}
.top .who,body.dark .who{background:rgba(255,255,255,.22) !important; border-color:rgba(255,255,255,.5) !important}
.top .toplogo,.brandrow img{background:rgba(255,255,255,.92) !important}

/* ---------- 卡片 / 面板 ---------- */
.panel,body.dark .panel{
  background:var(--card) !important; color:var(--ink) !important;
  border:1px solid var(--bd) !important; border-radius:var(--r-lg) !important;
  box-shadow:var(--sh) !important;
}
.panel::before,.panel:before{display:none !important}      /* 去掉 race 面板顶部彩条 */
.panel h3,body.dark .panel h3{color:var(--ink) !important}
.card{
  background:var(--card) !important; border:1px solid var(--bd) !important;
  border-top:1px solid var(--bd) !important; border-radius:var(--r-lg) !important;
  box-shadow:var(--sh) !important;
}
.stat,.todo,.cp{background:var(--card) !important; border:1px solid var(--bd) !important; border-radius:var(--r-lg) !important}

/* ---------- 按钮 ---------- */
.btn,body.dark .btn{
  border-radius:var(--r-md) !important; font-weight:600 !important; font-family:inherit !important;
  background:var(--grad) !important; color:#fff !important; border:0 !important;
  box-shadow:0 4px 12px rgba(79,70,229,.24) !important;
}
.btn:active{transform:translateY(1px)}
.btn.sm,.btn.s{border-radius:9px !important; box-shadow:none !important; padding:7px 13px !important; font-size:13px !important}
.btn.ghost,body.dark .btn.ghost{background:#fff !important; color:var(--pri) !important; border:1.4px solid #C9CBF5 !important; box-shadow:none !important}
.btn.g,.btn.green{background:linear-gradient(120deg,#10B981,#059669) !important}
.btn.r,.btn.red,body.dark .btn.red{background:linear-gradient(120deg,#EF4444,#DC2626) !important}
.btn.gray,.btn.grey{background:#EEF0F7 !important; color:#4B5563 !important}
.btn.red-o{background:#fff !important; color:#DC2626 !important; border:1.5px solid #FECACA !important}
/* 家长正式页（注册 / 登录）主按钮统一为品牌渐变 */
.fbtn{background:var(--grad) !important; color:#fff !important; box-shadow:0 4px 12px rgba(79,70,229,.24) !important; border:0 !important}
.fbtn:hover{filter:brightness(1.05)}

/* ---------- 表单 ---------- */
input,select,textarea,body.dark input,body.dark select,body.dark textarea{
  border:1.4px solid var(--bd) !important; border-radius:var(--r-md) !important;
  font-family:inherit !important; background:#FCFCFE !important; color:var(--ink) !important;
}
input::placeholder,textarea::placeholder{color:#9AA0AE !important}
input:focus,select:focus,textarea:focus{
  outline:0 !important; border-color:var(--pri) !important;
  box-shadow:0 0 0 3px rgba(79,70,229,.13) !important; background:#fff !important;
}
label{color:#5B6280}

/* ---------- 表格 ---------- */
table,body.dark table{color:var(--ink) !important}
th,body.dark th{background:#F5F6FB !important; color:#4B5563 !important; font-weight:600}
th,td{border-bottom:1px solid var(--bd) !important}
tr:nth-child(even) td,body.dark tr:nth-child(even) td{background:transparent !important}
tr:hover td,body.dark tr:hover td{background:#FAFBFF !important}

/* ---------- 导航胶囊（race .menu） ---------- */
.menu a{color:var(--pri) !important; background:#F5F3FF !important; border:1px solid #EDE9FE !important}
.menu a:hover{background:#EDE9FE !important}
.top .menu a{color:#fff !important; background:rgba(255,255,255,.18) !important; border-color:rgba(255,255,255,.32) !important}
.top .menu a:hover{background:rgba(255,255,255,.32) !important}
.menu a.on,.top .menu a.on{background:var(--grad) !important; color:#fff !important; border-color:transparent !important; box-shadow:0 4px 14px rgba(124,58,237,.25) !important}
/* 下拉菜单项（.glist）在白底弹层里，必须用深色 —— 不能被顶栏白字规则带偏成白底白字 */
.menu .glist a,.top .menu .glist a{color:var(--pri) !important; background:#F5F3FF !important; border-color:transparent !important}
.menu .glist a:hover,.top .menu .glist a:hover{background:#EDE9FE !important}
.menu .glist a.on,.top .menu .glist a.on{background:var(--grad) !important; color:#fff !important}

/* ---------- 标签 / 代码 / 页脚 ---------- */.tag{border-radius:999px}
.pill{border-radius:999px; background:#F0F1FB !important; color:var(--pri) !important}
body.dark .tag:not([class*=" "]){background:#EEF0FE !important; color:var(--pri) !important}
code{background:#EEF0FE !important; color:var(--pri) !important}
.foot,body.dark .foot{color:var(--mut) !important; opacity:1 !important; text-shadow:none !important}
.foot a,body.dark .foot a{color:var(--pri) !important}

/* ---------- race 登录后的「迷你科技条 / 入口卡」统一为品牌渐变 ---------- */
.hxmini{
  background:var(--grad-top) !important; color:#fff !important;
  border:0 !important; box-shadow:0 6px 20px rgba(79,70,229,.22) !important;
}
.hxmini::before{display:none !important}
.hxmini .txt b{color:#fff !important}
.hxmini .txt span{color:rgba(255,255,255,.9) !important}
.hxmini .mst span{color:#fff !important; background:rgba(255,255,255,.16) !important; border-color:rgba(255,255,255,.28) !important}
.hxmini .mst span b{color:#fff !important}
.hxmini .mi span{background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.4) !important}

/* ---------- 深色科技皮肤里残留的硬编码统一回浅色 ---------- */
body.dark .brandrow,.dark .brandrow{text-shadow:none !important}
.hero{background:var(--grad-top) !important; color:#fff !important}
.hero .muted,.hero .small,.hero p{color:rgba(255,255,255,.9) !important}

/* ---------- race 首页大 Banner：由深色科技风统一为浅色 ---------- */
.hxwrap{
  background:linear-gradient(135deg,#EEF2FF 0%,#F5F3FF 55%,#FDF2F8 100%) !important;
  color:var(--ink) !important;
  box-shadow:0 10px 30px rgba(79,70,229,.10), inset 0 0 0 1px var(--bd) !important;
}
.hxwrap::before,.hxwrap::after{display:none !important}
.hxkicker{color:var(--pri) !important; background:#EEF0FE !important; border-color:#E0E3FB !important}
.hxtxt h1{background:none !important; -webkit-text-fill-color:var(--pri) !important; color:var(--pri) !important; filter:none !important}
.hxtxt p{color:var(--mut) !important}
.hxst{color:#4B5563 !important; background:#fff !important; border-color:var(--bd) !important; backdrop-filter:none !important}
.hxst b{background:none !important; -webkit-text-fill-color:#4F46E5 !important; color:#4F46E5 !important}
.hxsec .hh{color:var(--ink) !important}
.hxsec .hh em{color:var(--mut) !important}
.hxev{color:var(--ink) !important; background:#fff !important; border-color:var(--bd) !important}
.hxev i{box-shadow:none !important}
.hxcard{background:#fff !important; border-color:var(--bd) !important; color:var(--mut) !important}
.hxcard b{color:var(--ink) !important}
.hxnote{color:var(--mut) !important}
.hxtile{color:var(--ink) !important; background:#fff !important; border-color:var(--bd) !important; box-shadow:var(--sh) !important}
.hxtile:hover{transform:translateY(-3px) !important; border-color:#C9CBF5 !important; box-shadow:var(--sh-hover) !important}
.hxtile .tt{color:var(--ink) !important}
.hxtile .ss{color:var(--mut) !important}
.hxtile .i{background:#EEF0FE !important; border-color:var(--bd) !important}
.hxcubes{display:none !important}

/* ---------- race 首页：移动端固定列数（不随屏幕宽度变化；PC 布局不动） ---------- */
@media (max-width:700px){
  .hxtxt p{white-space:nowrap !important;font-size:clamp(11px,3.3vw,14.5px) !important}   /* 副标题一行不换行 */
  .hxstats{display:grid !important;grid-template-columns:repeat(2,1fr) !important;gap:8px !important}  /* 五个统计卡片：两列 */
  .hxst{justify-content:center !important;padding:8px 10px !important;font-size:12.5px !important}
  .hxgrid{grid-template-columns:repeat(2,1fr) !important}                                  /* 六个入口卡片：两列 */
  .hxevs{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:6px !important}  /* 比赛魔方项目：三列 */
  .hxev{justify-content:center !important;gap:5px !important;padding:7px 6px !important;
        font-size:12px !important;white-space:nowrap !important;overflow:hidden}
}

/* ---------- 全站「返回上一级」按钮（门户注入，浮于顶栏下方左侧） ---------- */
.wb-back{position:fixed;left:12px;top:70px;z-index:9999;display:inline-flex;align-items:center;gap:4px;
  background:#fff;color:var(--pri) !important;border:1px solid #E0E3FB;border-radius:999px;padding:6px 13px;
  font-size:13px;font-weight:700;line-height:1;box-shadow:0 4px 14px rgba(15,23,42,.18);
  text-decoration:none;white-space:nowrap}
.wb-back:hover{background:#F5F3FF;color:var(--pri) !important}
