/* 大学生赛事聚合平台 · 全局样式 */
:root{
  --bg:#f9fafb; --card:#fff; --ink:#111827; --sub:#4b5563; --muted:#9ca3af;
  --line:#e5e7eb; --brand:#2563eb; --brand-d:#1d4ed8; --brand-l:#eff6ff;
  --orange:#ea580c; --green:#059669; --red:#e11d48;
  --radius:12px; --radius-sm:8px;
  --shadow-sm:0 1px 2px rgba(17,24,39,.06);
  --shadow-md:0 4px 8px -2px rgba(17,24,39,.10);
  --shadow:var(--shadow-sm);
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:"Inter","Source Han Sans SC","思源黑体","Noto Sans SC",-apple-system,BlinkMacSystemFont,
    "Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased;
  font-size:14px; font-weight:400; line-height:1.6;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
/* 统一过渡：可点击元素不做硬切换 */
a,button,.chip,.cat-pill,.check,.focus-chip,.mini,.tag,.stat,.view-toggle button,.tabs button,
.ev-card,.pin-card,.res-card,.team-card,.panel,.toast,.to-top{
  transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);
}
.container{width:min(1120px,calc(100vw - 48px));margin:0 auto}

/* 顶部导航 */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.header.scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}
.header .container{height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:16px;letter-spacing:.1px}
.brand i{width:32px;height:32px;border-radius:var(--radius-sm);display:grid;place-items:center;font-style:normal;
  background:var(--brand);color:#fff;font-size:14px;font-weight:600}
.nav{display:flex;gap:4px;align-items:center}
.nav a{font-size:14px;color:var(--sub);padding:8px 16px;border-radius:var(--radius-sm);transition:.2s}
.nav a:hover{color:var(--ink);background:#f3f4f6}
.nav a.on{color:var(--brand-d);background:var(--brand-l);font-weight:600}
.h-actions{display:flex;align-items:center;gap:8px}
.wut-badge{font-size:12px;font-weight:500;color:#1e40af;background:#eff6ff;
  border:1px solid #dbeafe;border-radius:999px;padding:4px 12px;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;
  border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;
  transition:.2s;background:#fff}
.btn.primary{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}
.btn.primary:hover{background:var(--brand-d)}
.btn.ghost{border-color:var(--line);color:var(--sub)}
.btn.ghost:hover{border-color:#d1d5db;color:var(--ink);background:#f9fafb}
.btn.sm{padding:8px 14px;font-size:13px;border-radius:var(--radius-sm)}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;
  background:#fff;border:1px solid var(--line);font-size:13.5px;font-weight:500}
.user-chip span.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:var(--brand);font-size:12px}

/* 头部下方通用页头 */
.page-hero{padding:34px 0 10px}
.page-hero h1{font-size:28px;letter-spacing:-.4px}
.page-hero p{color:var(--sub);font-size:14px;margin-top:8px}

/* 首页 Hero */
.hero{padding:56px 0 24px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;left:50%;top:-140px;width:760px;height:420px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(37,99,235,.08),transparent 75%);pointer-events:none}
.hero h1{font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.25;letter-spacing:-.8px;text-align:center;
  background:linear-gradient(120deg,#111827 25%,#2563eb 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{text-align:center;color:var(--muted);margin-top:16px;font-size:14px}
.search{display:flex;align-items:center;gap:8px;max-width:640px;margin:24px auto 0;background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:6px 6px 6px 20px;box-shadow:var(--shadow-sm);transition:.2s}
.search:focus-within{border-color:#bfdbfe;box-shadow:0 0 0 4px rgba(37,99,235,.08)}
.search input{flex:1;border:0;outline:0;font-size:14px;background:transparent;padding:10px 0}
.search input::placeholder{color:#9ca3af}
.search .btn{border-radius:999px}
.cats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}
.cat-pill{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;
  color:var(--sub);cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:8px}
.cat-pill:hover{border-color:#d1d5db;color:var(--ink);background:#fafafa}
.cat-pill.on{background:var(--brand-l);border-color:#bfdbfe;color:var(--brand-d);font-weight:600}
.cat-pill b{font-weight:600}

/* 筛选栏 */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 24px;margin-top:24px;box-shadow:var(--shadow-sm)}
.f-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.f-label{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.3px}
.chip{padding:6px 14px;border-radius:999px;border:1px solid transparent;background:#f3f4f6;color:var(--sub);
  font-size:13px;cursor:pointer;transition:.2s}
.chip:hover{background:#e5e7eb;color:var(--ink)}
.chip.on{background:var(--brand-l);color:var(--brand-d);border-color:#bfdbfe;font-weight:600}

/* 区块标题 */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:40px 0 16px}
.sec-head h2{font-size:20px;font-weight:600;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}
.sec-head .more{font-size:13px;color:var(--brand);font-weight:500}
.sec-head p{font-size:13px;color:var(--muted);margin-top:4px}

/* 即将截止置顶条 */
.pinned{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.pin-card{position:relative;display:flex;gap:12px;align-items:flex-start;padding:16px 20px;
  background:#fff;border:1px solid #fed7aa;border-radius:var(--radius);
  box-shadow:var(--shadow-sm);transition:all .2s}
.pin-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.pin-card .fire{font-size:18px;line-height:1.3}
.pin-card h4{font-size:14px;font-weight:600;line-height:1.5;margin-bottom:8px}
.pin-card .meta{font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}
.countdown{font-weight:500;color:var(--sub)}
.countdown.warn{color:#c2410c}

/* 赛事卡片 */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.view-toggle{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px;gap:4px}
.view-toggle button{border:0;background:transparent;padding:6px 16px;border-radius:6px;font-size:13px;
  color:var(--sub);cursor:pointer;transition:.2s}
.view-toggle button.on{background:var(--brand-l);color:var(--brand-d);font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:16px}
.ev-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow-sm);transition:all .2s;display:flex;flex-direction:column}
.ev-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
/* 已收藏卡片：一圈光边顺时针绕卡片运行 */
@property --ring-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes ring-run{to{--ring-a:360deg}}
.ev-card.is-fav::before{content:'';position:absolute;inset:-1px;border-radius:var(--radius);padding:2px;
  background:conic-gradient(from var(--ring-a),
    rgba(34,211,238,0) 0deg 205deg,
    rgba(34,211,238,.35) 250deg,
    #22d3ee 298deg,
    #a78bfa 330deg,
    #f472b6 352deg,
    rgba(244,114,182,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  filter:drop-shadow(0 0 5px rgba(56,189,248,.45));
  animation:ring-run 3.2s linear infinite;
  pointer-events:none;z-index:2}
@media (prefers-reduced-motion:reduce){.ev-card.is-fav::before{animation:none}}
/* 收藏卡片本体也染上青→紫→玫的淡色 */
.ev-card.is-fav{background:linear-gradient(165deg,#ecfeff,#f4f2ff 52%,#fff1f5);
  border-color:rgba(34,211,238,.4)}
.ev-card.is-fav:hover{border-color:rgba(34,211,238,.6)}
.ev-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}

/* 标签 pill */
.tag{font-size:12px;padding:4px 10px;border-radius:999px;background:#f3f4f6;color:var(--sub);font-weight:500;
  display:inline-flex;align-items:center;line-height:1.5}
.tag.cat{background:var(--brand-l);color:var(--brand-d)}
.tag.tag-cat{background:transparent}
.tag-status{font-size:11.5px}
.tag-status.soon{background:#fff7ed;color:#c2410c}
.tag-status.open{background:#ecfdf5;color:#047857}
.tag-status.upcoming{background:#f3f4f6;color:#6b7280}
.tag-status.running{background:#eff6ff;color:#1d4ed8}
.tag-status.ended{background:#f9fafb;color:#9ca3af}
.tag-hot{background:#fff7ed;color:#c2410c}

.ev-card h3{font-size:17px;font-weight:600;line-height:1.5;letter-spacing:-.2px;margin-bottom:8px}
.ev-card h3 a:hover{color:var(--brand)}
.ev-intro{font-size:12.5px;line-height:1.7;color:#9ca3af;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}
.ev-tags{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 12px}

/* 倒计时独立块 */
.ev-cd{display:flex;flex-direction:column;gap:2px;padding:12px 16px;margin-top:auto;
  border-radius:var(--radius-sm);background:#f9fafb;border:1px solid #f3f4f6}
.ev-cd b{font-size:13.5px;font-weight:600;color:#6b7280}
.ev-cd span{font-size:12px;color:#9ca3af}
.ev-cd.soon{background:#fff7ed;border-color:#fed7aa}
.ev-cd.soon b{color:#c2410c}
.ev-cd.soon span{color:#ea580c}
.ev-cd.ended{opacity:.55}

.ev-foot{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-top:12px;border-top:1px solid #f3f4f6}
.ev-org{font-size:12px;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav{width:32px;height:32px;flex:none;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;
  cursor:pointer;display:grid;place-items:center;font-size:16px;line-height:1;transition:.2s;color:#d1d5db}
.fav:hover{border-color:#fecdd3;color:var(--red);background:#fff1f2}
.fav.on{background:#fff1f2;border-color:#fecdd3;color:var(--red)}
.detail-link{font-size:13px;font-weight:500;color:var(--brand);display:inline-flex;align-items:center;gap:4px}
.detail-link:hover{gap:8px}

/* 日历视图 */
.calendar-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-top:14px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.cal-head h3{font-size:17px}
.cal-nav{display:flex;gap:8px;align-items:center}
.cal-nav button{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--sub)}
.cal-nav button:hover{border-color:#c9d6ea;color:var(--ink)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-wd{text-align:center;font-size:12px;color:var(--muted);padding-bottom:4px;font-weight:600}
.cal-cell{min-height:86px;border:1px solid #f3f4f6;border-radius:var(--radius);padding:8px;background:#fafafa;position:relative}
.cal-cell.empty{background:transparent;border-color:transparent}
.cal-cell.today{border-color:#c9d2ff;background:#f6f8ff}
.cal-cell .d{font-size:12.5px;font-weight:700;color:var(--sub)}
.cal-cell.today .d{color:var(--brand)}
.cal-ev{margin-top:4px;font-size:10.5px;line-height:1.3;padding:2px 4px;border-radius:4px;
  background:#fff;border-left:3px solid var(--c,#4f63f5);color:#47536b;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;font-size:12px;color:var(--sub)}
.cal-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}

/* 赛事广场：侧栏 + 列表 */
.plaza{display:grid;grid-template-columns:264px 1fr;gap:24px;margin-top:24px;align-items:start}
.side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow-sm);position:sticky;top:88px}
.side h4{font-size:13px;font-weight:600;margin:16px 0 8px;color:#374151;letter-spacing:.2px}
.side h4:first-child{margin-top:0}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sub);
  padding:6px 8px;margin:0 -8px;border-radius:var(--radius-sm);cursor:pointer;transition:.15s}
.check:hover{background:#f9fafb;color:var(--ink)}
.check:has(input:checked){background:var(--brand-l);color:var(--brand-d);font-weight:500}
.check input{accent-color:var(--brand);width:15px;height:15px;cursor:pointer;flex:none}
.side .chip{margin:0 4px 8px 0;display:inline-block}
.sortbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.sortbar .count{font-size:13px;color:var(--muted)}
.sortbar select{border:1px solid var(--line);background:#fff;border-radius:var(--radius-sm);padding:8px 12px;
  font-size:13px;outline:0;cursor:pointer}
.empty{display:flex;flex-direction:column;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:48px 24px;text-align:center;color:var(--muted);font-size:13px}
.empty .empty-ico{font-size:28px;line-height:1;opacity:.85}
.empty .empty-title{font-size:14px;color:var(--sub)}
.empty .empty-sub{font-size:12.5px;color:var(--muted)}
.empty .btn{margin-top:8px}

/* 骨架屏：数据加载时的灰色占位卡片 */
.skeleton{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}
.sk-row{display:flex;gap:8px}
.sk-pill,.sk-line{border-radius:999px;
  background:linear-gradient(90deg,#f1f3f5 25%,#e9ecef 37%,#f1f3f5 63%);
  background-size:400% 100%;animation:shimmer 1.3s ease-in-out infinite}
.sk-pill{width:64px;height:22px}
.sk-pill.sm{width:48px}
.sk-line{height:12px;width:100%}
.sk-line.lg{height:16px;width:78%;margin:16px 0 10px}
.sk-line.blank{height:44px;border-radius:var(--radius-sm);margin-top:20px}
@keyframes shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}

/* 已选筛选标签 */
.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.active-filters .af-label{font-size:12px;color:var(--muted)}
.af-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 12px;border-radius:999px;
  background:var(--brand-l);border:1px solid #dbeafe;color:var(--brand-d);font-size:12.5px;font-weight:500}
.af-chip button{border:0;background:transparent;cursor:pointer;color:#60a5fa;font-size:14px;line-height:1;
  padding:0 2px;transition:.15s}
.af-chip button:hover{color:var(--brand-d)}
.af-clear{border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px}
.af-clear:hover{color:var(--ink)}

/* 面包屑 */
.crumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:24px 0 0;font-size:13px;color:var(--muted)}
.crumb a{color:var(--muted);transition:.15s}
.crumb a:hover{color:var(--brand)}
.crumb .sep{color:#d1d5db}
.crumb em{font-style:normal;color:#374151;font-weight:500}

/* 赛事详情 */
.detail{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:24px;align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}
.panel + .panel{margin-top:16px}
.panel h2{font-size:17px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.d-title{font-size:26px;font-weight:600;line-height:1.4;letter-spacing:-.5px;margin:12px 0 8px}
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px;margin-top:16px}
.info-item{background:#f9fafb;border:1px solid #f3f4f6;border-radius:var(--radius);padding:12px 16px}
.info-item b{display:block;font-size:11.5px;color:var(--muted);font-weight:500;margin-bottom:4px;letter-spacing:.3px}
.info-item span{font-size:13px;color:var(--ink);line-height:1.5}
.track{border-left:3px solid var(--brand);background:#f9fafb;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:12px 16px;margin-bottom:8px}
.track b{font-size:14px;font-weight:600;display:block;margin-bottom:4px}
.track p{font-size:13px;color:var(--sub);line-height:1.7}
.stars{color:#d97706;letter-spacing:2px;font-size:15px}
.res-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f3f4f6;font-size:13px}
.res-item:last-child{border:0}
.res-item .ico{width:32px;height:32px;border-radius:var(--radius-sm);display:grid;place-items:center;background:#f3f4f6;font-size:15px}
.res-item .t{flex:1;font-weight:500}
.res-item .tag{font-size:11px}
.side-card{position:sticky;top:88px}
.side-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.side-actions .btn{width:100%}
.cmt{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f3f4f6}
.cmt:last-child{border:0}
.cmt .av{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;
  background:var(--brand);font-size:12px;font-weight:500}
.cmt .b{flex:1}
.cmt .n{font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center}
.cmt .n small{color:var(--muted);font-weight:400;font-size:11.5px}
.cmt p{font-size:13px;color:var(--sub);line-height:1.7;margin-top:4px;white-space:pre-wrap;word-break:break-word}
.cmt .tag{font-size:11px}

/* 表单 */
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--sub);margin-bottom:6px}
.input,select,textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:10px 12px;
  font-size:14px;outline:0;width:100%;transition:.2s}
.input:focus,select:focus,textarea:focus{border-color:#bfdbfe;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
textarea{resize:vertical;min-height:76px;line-height:1.6}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}
.form-note{font-size:12px;color:var(--muted);line-height:1.6}
.err{color:#d33;font-size:12.5px;margin-top:8px;min-height:18px}

/* 组队帖 */
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:14px}
.team-top{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.team-card h3{font-size:15.5px;margin-bottom:6px}
.team-card .who{font-size:12.5px;color:var(--muted)}
.needs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.need{font-size:12px;padding:4px 10px;border-radius:8px;background:#eef1ff;color:#4156d6;font-weight:600}
.need.role{background:#fff3e8;color:#b36a12}
.team-info{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12.5px;color:var(--sub);margin-top:10px}
.contact-box{margin-top:12px;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.contact-box b{color:var(--ink)}
.contact-box .locked{color:var(--muted);font-size:12px}

/* 干货库 */
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:16px}
.res-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:all .2s}
.res-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.res-card h3{font-size:15px;line-height:1.5;margin:10px 0 8px}
.res-card p{font-size:12.8px;line-height:1.65;color:var(--sub)}
.res-card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;
  border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}
.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* 个人中心 */
.auth{max-width:460px;margin:32px auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:32px;box-shadow:var(--shadow-sm)}
.auth h2{font-size:22px;text-align:center;letter-spacing:-.3px}
.auth .sub{text-align:center;font-size:13px;color:var(--sub);margin:8px 0 22px}
.tabs{display:flex;background:#f3f4f6;border-radius:var(--radius);padding:4px;margin-bottom:20px}
.tabs button{flex:1;border:0;background:transparent;padding:9px;border-radius:var(--radius-sm);font-size:13.5px;
  font-weight:600;color:var(--sub);cursor:pointer}
.tabs button.on{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(30,50,100,.08)}
.captcha-row{display:flex;gap:10px;align-items:center}
.captcha-box{flex:none;min-width:118px;height:42px;border-radius:var(--radius-sm);border:1px dashed #c7d3e6;background:#f9fafb;
  display:grid;place-items:center;font-size:14px;font-weight:700;letter-spacing:1.5px;color:#3a4a6b;cursor:pointer;user-select:none}
.dash{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;align-items:start}
.dash .panel h2{font-size:16px}
.mini-list{display:flex;flex-direction:column;gap:10px}
.mini{display:flex;align-items:center;gap:12px;padding:12px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:var(--radius);font-size:13px}
.mini .t{flex:1;font-weight:600;line-height:1.45}
.mini .meta{display:block;font-size:11.5px;color:var(--muted);font-weight:400;margin-top:3px}
.mini .tag{flex:none}
.profile-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.profile-head .av{width:56px;height:56px;border-radius:var(--radius);display:grid;place-items:center;font-size:22px;font-weight:700;
  color:#fff;background:linear-gradient(135deg,#4f63f5,#8b5cf6);flex:none}
.profile-head h2{font-size:20px;margin-bottom:4px}
.profile-head .meta{font-size:12.5px;color:var(--muted)}
.focus-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.focus-chip{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--sub);cursor:pointer}
.focus-chip.on{background:#eef1ff;border-color:#c9d2ff;color:var(--brand-d);font-weight:600}

/* toast：右下角淡色轻提示 */
.toast{position:fixed;right:24px;bottom:24px;left:auto;z-index:300;max-width:min(360px,80vw);
  background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-md);
  padding:12px 20px;border-radius:var(--radius-sm);font-size:13.5px;line-height:1.5;
  opacity:0;pointer-events:none;transform:translateY(8px);transition:all .2s}
.toast.show{opacity:1;transform:translateY(0)}

/* 返回顶部：柔和浮动按钮 */
.to-top{position:fixed;right:24px;bottom:80px;z-index:200;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-sm);color:var(--sub);
  font-size:16px;cursor:pointer;display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:all .2s}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{color:var(--ink);box-shadow:var(--shadow-md)}

/* 首页统计看板 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow-sm)}
.stat b{display:block;font-size:28px;font-weight:600;line-height:1.1;letter-spacing:-.6px}
.stat span{display:block;font-size:12.5px;color:var(--muted);margin-top:4px}
.stat .bar{height:2px;border-radius:999px;margin-top:12px;opacity:.9}
.cat-pill i{width:8px;height:8px;border-radius:50%;display:inline-block}
.check .dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}

/* 订阅与通知 */
.sub-grid{display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 14px}
.sub-note{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);
  background:#f9fafb;border:1px solid var(--line);font-size:12.5px;color:var(--sub);line-height:1.6}
.sub-note b{color:var(--ink)}
.sub-note em{font-style:normal;color:var(--brand);font-weight:700}

/* 打印 / 导出 PDF：只保留赛事内容 */
@media print{
  .header,footer,.side-card,.page-hero,.btn,.fav,.detail-link,.ev-foot,.cmt,#cmtForm,.ev-tags{display:none!important}
  body{background:#fff;color:#111}
  .container{width:100%}
  .detail{display:block;margin-top:0}
  .panel{box-shadow:none;border:1px solid #dbe3ee;margin-bottom:12px;break-inside:avoid;page-break-inside:avoid}
  .panel h2,.d-title{color:#111}
  .info-item{background:#f7f9fc}
  .tag{background:#f1f4f9!important;color:#333!important;border-color:#e2e8f0!important}
  .track{background:#f7f9fc}
}

/* footer */
footer{padding:46px 0 34px;margin-top:50px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;text-align:center;line-height:1.9}

/* 响应式 */
@media (max-width:980px){
  .detail{grid-template-columns:1fr}
  .side-card{position:static}
  .plaza{grid-template-columns:1fr}
  .side{position:static}
  .dash{grid-template-columns:1fr}
}
@media (max-width:720px){
  .container{width:calc(100vw - 32px)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .nav a{padding:7px 11px;font-size:13px}
  .header .container{height:58px;gap:12px}
  .brand span{display:none}
  .info-grid,.form-grid{grid-template-columns:1fr}
  .hero{padding:36px 0 16px}
  .grid,.pinned,.res-grid{grid-template-columns:1fr}
  .cal-cell{min-height:62px}
  .cal-ev{font-size:9.5px}
}
@media (max-width:520px){
  .nav{display:none}
  .detail{padding:0}
  .panel{padding:20px}
  .d-title{font-size:22px}
}

/* ================= 首页 · 星海暗色主题 ================= */
body.dark-ui{--bg:#050914;--card:#0b1322;--ink:#eef2fa;--sub:#9aa6be;--muted:#78859d;
  --line:rgba(255,255,255,.09);--brand:#6b8dff;--brand-d:#b6c6ff;--brand-l:rgba(107,141,255,.14);
  color:var(--ink);background-color:#050914;
  /* 星云背景随页面滚动；高清竖版拼接图按原始比例铺开，避免整页拉伸导致模糊 */
  background-image:
    linear-gradient(180deg,rgba(5,9,20,.9),rgba(5,9,20,.56) 18%,rgba(5,9,20,.62) 55%,rgba(5,9,20,.88)),
    url('/assets/home-bg.jpg');
  background-size:100% 100%,100% auto;
  background-position:center top,center top;
  background-repeat:no-repeat,repeat-y;
  background-attachment:scroll,scroll}
/* 仅首页内容接近全宽，内页保持居中的阅读宽度 */
.page-home .container{width:100%;max-width:none;padding-left:24px;padding-right:24px}
.dark-ui .home-header.scrolled{border-bottom-color:rgba(255,255,255,.12);
  box-shadow:0 8px 28px rgba(0,0,0,.45)}

/* 顶部导航 */
.dark-ui .header{background:rgba(5,9,20,.55)}
.dark-ui .header.scrolled{background:rgba(5,9,20,.9);border-bottom-color:rgba(255,255,255,.1);
  box-shadow:0 8px 28px rgba(0,0,0,.45)}
.dark-ui .brand{color:#f4f7ff}
.dark-ui .brand i{background:linear-gradient(135deg,#67e8f9,#8b5cf6);color:#04101f;
  box-shadow:0 0 18px rgba(56,189,248,.45)}
.dark-ui .nav a{color:#94a1b9}
.dark-ui .nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
.dark-ui .nav a.on{color:#fff;background:linear-gradient(135deg,rgba(6,182,212,.3),rgba(139,92,246,.3));
  border:1px solid rgba(103,232,249,.45);box-shadow:0 0 18px rgba(56,189,248,.25)}
.dark-ui .wut-badge{color:#dbe4f6;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}
.dark-ui .btn.ghost{border-color:rgba(255,255,255,.18);color:#cfd8ea;background:transparent}
.dark-ui .btn.ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.28);color:#fff}
.dark-ui .user-chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#eaf0fb}

/* Hero 主视觉 */
.dark-ui .hero{padding:120px 0 56px;margin:-64px -24px 0;min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.dark-ui .hero::before{display:none}
.dark-ui .hero-bg{position:absolute;inset:0;
  background:url('/assets/hero-neon-clean.jpg') center 40%/cover no-repeat;
  filter:brightness(1.3) saturate(1.08)}
.dark-ui .hero-bg::after{content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 50% 48%,rgba(5,9,20,.26),rgba(5,9,20,.55) 58%,#050914 94%),
    linear-gradient(180deg,rgba(5,9,20,.5),transparent 24%,transparent 55%,#050914 100%)}
/* 顶部霓虹光环：三层倾斜圆环叠出空间纵深 */
.dark-ui .hero-rings{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.dark-ui .hero-ring{position:absolute;border-radius:50%;opacity:.7;
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
  mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px))}
.dark-ui .ring-a{width:min(76vw,860px);aspect-ratio:1;left:50%;top:47%;
  transform:translate(-50%,-50%) rotateX(74deg) rotateZ(-16deg);
  background:conic-gradient(from 200deg,rgba(34,211,238,.16),#67e8f9 58deg,rgba(59,130,246,.6) 132deg,rgba(139,92,246,.92) 212deg,rgba(34,211,238,.38) 300deg,rgba(34,211,238,.16) 360deg);
  filter:blur(.4px) drop-shadow(0 0 18px rgba(56,189,248,.5)) drop-shadow(0 0 46px rgba(139,92,246,.32))}
.dark-ui .ring-b{width:min(54vw,620px);aspect-ratio:1;left:65%;top:38%;
  transform:translate(-50%,-50%) rotateX(66deg) rotateZ(26deg);
  background:conic-gradient(from 20deg,rgba(139,92,246,.16),#c4b5fd 52deg,rgba(99,102,241,.6) 128deg,rgba(34,211,238,.85) 208deg,rgba(139,92,246,.4) 296deg,rgba(139,92,246,.16) 360deg);
  filter:blur(.4px) drop-shadow(0 0 16px rgba(139,92,246,.55)) drop-shadow(0 0 40px rgba(56,189,248,.28))}
.dark-ui .ring-c{width:min(34vw,400px);aspect-ratio:1;left:35%;top:63%;
  transform:translate(-50%,-50%) rotateX(78deg) rotateZ(8deg);
  background:conic-gradient(from 240deg,rgba(34,211,238,.14),#a5f3fc 60deg,rgba(56,189,248,.65) 138deg,rgba(129,140,248,.8) 218deg,rgba(34,211,238,.35) 300deg,rgba(34,211,238,.14) 360deg);
  filter:blur(.4px) drop-shadow(0 0 14px rgba(103,232,249,.55)) drop-shadow(0 0 34px rgba(59,130,246,.28))}
/* 外围更小的倾斜环，延续第一批的细描边与轨道感 */
.dark-ui .ring-d{width:min(30vw,360px);aspect-ratio:1;left:18%;top:30%;opacity:.6;
  transform:translate(-50%,-50%) rotateX(72deg) rotateZ(-32deg);
  background:conic-gradient(from 150deg,rgba(34,211,238,.14),#67e8f9 56deg,rgba(59,130,246,.6) 134deg,rgba(139,92,246,.88) 214deg,rgba(34,211,238,.34) 300deg,rgba(34,211,238,.14) 360deg);
  filter:blur(.4px) drop-shadow(0 0 14px rgba(56,189,248,.45)) drop-shadow(0 0 34px rgba(139,92,246,.26))}
.dark-ui .ring-e{width:min(28vw,340px);aspect-ratio:1;left:82%;top:62%;opacity:.6;
  transform:translate(-50%,-50%) rotateX(68deg) rotateZ(40deg);
  background:conic-gradient(from 320deg,rgba(139,92,246,.14),#c4b5fd 54deg,rgba(99,102,241,.6) 132deg,rgba(34,211,238,.85) 212deg,rgba(139,92,246,.36) 300deg,rgba(139,92,246,.14) 360deg);
  filter:blur(.4px) drop-shadow(0 0 14px rgba(139,92,246,.5)) drop-shadow(0 0 32px rgba(56,189,248,.24))}
.dark-ui .ring-f{width:min(20vw,240px);aspect-ratio:1;left:66%;top:20%;opacity:.6;
  transform:translate(-50%,-50%) rotateX(76deg) rotateZ(14deg);
  background:conic-gradient(from 260deg,rgba(34,211,238,.14),#a5f3fc 60deg,rgba(56,189,248,.66) 140deg,rgba(129,140,248,.82) 220deg,rgba(34,211,238,.34) 304deg,rgba(34,211,238,.14) 360deg);
  filter:blur(.4px) drop-shadow(0 0 12px rgba(103,232,249,.5)) drop-shadow(0 0 30px rgba(59,130,246,.24))}
.dark-ui .hero-inner{position:relative;width:100%;padding:0 24px;margin:0 auto}
.dark-ui .hero h1{font-size:clamp(30px,4.5vw,54px);font-weight:700;line-height:1.24;
  letter-spacing:-.8px;text-align:center;background:none;
  -webkit-text-fill-color:#f4f8ff;color:#f4f8ff;
  text-shadow:0 0 20px rgba(56,189,248,.5),0 0 52px rgba(139,92,246,.32),0 6px 30px rgba(0,0,0,.6)}
.dark-ui .hero p{color:#b3c6e4;font-size:15px;margin-top:18px;
  text-shadow:0 2px 12px rgba(0,0,0,.65)}

/* 搜索框 */
.dark-ui .search{position:relative;max-width:720px;margin:30px auto 0;padding:6px 6px 6px 24px;
  background:rgba(6,12,26,.82);border:1px solid rgba(34,211,238,.6);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 0 0 4px rgba(34,211,238,.08),0 0 34px rgba(34,211,238,.18),0 18px 44px rgba(0,0,0,.5)}
/* 搜索框外圈跑动光边 */
.dark-ui .search::before{content:'';position:absolute;inset:-2px;border-radius:999px;padding:2px;
  background:conic-gradient(from var(--ring-a),
    rgba(34,211,238,0) 0deg 200deg,
    rgba(34,211,238,.32) 246deg,
    #22d3ee 292deg,
    #a78bfa 326deg,
    #67e8f9 350deg,
    rgba(103,232,249,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  filter:drop-shadow(0 0 6px rgba(56,189,248,.55));
  animation:ring-run 3.6s linear infinite;
  pointer-events:none;z-index:2}
@media (prefers-reduced-motion:reduce){.dark-ui .search::before{animation:none}}
.dark-ui .search:focus-within{border-color:rgba(103,232,249,.9);
  box-shadow:0 0 0 4px rgba(34,211,238,.16),0 0 44px rgba(34,211,238,.28),0 18px 44px rgba(0,0,0,.55)}
.dark-ui .search input{color:#f2f7ff;font-size:15px}
.dark-ui .search input::placeholder{color:#7f93b1}
.dark-ui .search .btn{background:linear-gradient(135deg,#22d3ee,#3b82f6 52%,#8b5cf6);color:#fff;
  font-weight:600;padding:10px 28px;
  box-shadow:0 6px 22px rgba(56,189,248,.38),0 0 18px rgba(139,92,246,.25)}
.dark-ui .search .btn:hover{filter:brightness(1.12);transform:translateY(-1px)}

/* 分类 pills */
.dark-ui .cats{margin-top:22px;gap:10px}
.dark-ui .cat-pill{background:rgba(10,18,36,.78);border-color:rgba(103,232,249,.18);color:#c2cee3;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 16px}
.dark-ui .cat-pill:hover{border-color:rgba(103,232,249,.55);color:#fff;background:rgba(17,30,54,.88);
  box-shadow:0 0 16px rgba(34,211,238,.18)}
.dark-ui .cat-pill.on{background:linear-gradient(135deg,#06b6d4,#3b82f6 52%,#8b5cf6);
  border-color:rgba(165,243,252,.6);color:#fff;font-weight:600;
  box-shadow:0 8px 26px rgba(56,189,248,.32),0 0 20px rgba(139,92,246,.2)}

/* 统计看板：四张卡片分别用紫 / 青 / 橙 / 蓝渐变区分 */
.dark-ui .stats{gap:20px;margin-top:26px}
.dark-ui .stat{position:relative;isolation:isolate;overflow:hidden;--tone:139,92,246;
  background:linear-gradient(158deg,rgba(var(--tone),.22),rgba(var(--tone),.07) 44%,rgba(7,12,25,.9) 80%);
  border:1px solid rgba(var(--tone),.45);padding:20px 22px 18px;
  box-shadow:0 10px 30px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08),
    0 0 26px rgba(var(--tone),.22);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
/* 左上 1/4 与右下 1/4 的位置，向卡片内部辐射微白光（不突显光点本身） */
.dark-ui .stat::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;
  pointer-events:none;
  background:
    radial-gradient(circle 140px at 25% 0,rgba(255,255,255,.3),rgba(255,255,255,0) 72%),
    radial-gradient(circle 130px at 75% 100%,rgba(255,255,255,.26),rgba(255,255,255,0) 72%)}
.dark-ui .stats .stat:nth-child(1){--tone:139,92,246}
.dark-ui .stats .stat:nth-child(2){--tone:34,211,238}
.dark-ui .stats .stat:nth-child(3){--tone:245,158,11}
.dark-ui .stats .stat:nth-child(4){--tone:59,130,246}
.dark-ui .stat b{font-size:42px;font-weight:600;letter-spacing:-1px;color:#f4f8ff;
  text-shadow:0 0 20px rgba(var(--tone),.55)}
.dark-ui .stat span{font-size:13px;color:#a9b8d4;margin-top:2px}
.dark-ui .stat .bar{height:3px;margin-top:16px;box-shadow:0 0 14px rgba(var(--tone),.6)}

/* 筛选区 */
.dark-ui .filters{background:rgba(11,19,34,.8);border-color:var(--line);margin-top:24px;
  box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dark-ui .f-label{color:#6d7a92}
.dark-ui .chip{background:rgba(255,255,255,.05);color:#9aa6be}
.dark-ui .chip:hover{background:rgba(255,255,255,.1);color:#fff}
.dark-ui .chip.on{background:rgba(34,211,238,.16);border-color:rgba(103,232,249,.4);color:#a5f3fc}
.dark-ui .af-chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#c2cee3}
.dark-ui .af-clear{color:#78859d}
.dark-ui .af-clear:hover{color:#fff}

/* 区块标题 / 置顶条 */
.dark-ui .sec-head h2{color:#eef2fa}
.dark-ui .sec-head p{color:#78859d}
.dark-ui .sec-head .more{color:#67e8f9}
.dark-ui .pin-card{background:linear-gradient(135deg,rgba(30,16,52,.85),rgba(8,14,30,.9));
  border-color:rgba(139,92,246,.35);box-shadow:0 10px 26px rgba(0,0,0,.4),0 0 22px rgba(139,92,246,.14)}
.dark-ui .pin-card:hover{border-color:rgba(165,180,252,.6);
  box-shadow:0 14px 32px rgba(139,92,246,.25),0 0 26px rgba(56,189,248,.18)}
.dark-ui .pin-card .meta{color:#9aa6be}
.dark-ui .pin-card h4{color:#f2f5fb}

/* 赛事卡片 */
.dark-ui .ev-card{background:linear-gradient(160deg,rgba(17,26,45,.95),rgba(9,14,27,.95));
  border-color:rgba(255,255,255,.09);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.dark-ui .ev-card:hover{border-color:rgba(255,255,255,.18);box-shadow:0 14px 30px rgba(0,0,0,.42)}
.dark-ui .ev-card h3 a{color:#eef2fa}
.dark-ui .ev-card h3 a:hover{color:#9db6ff}
.dark-ui .ev-intro{color:#8894ab}
.dark-ui .ev-card .tag{background:rgba(255,255,255,.06);color:#a9b5ca}
.dark-ui .tag.cat{filter:brightness(1.5) saturate(1.15)}
.dark-ui .ev-cd{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.dark-ui .ev-cd b{color:#c5cede}
.dark-ui .ev-cd span{color:#7d8aa3}
.dark-ui .ev-cd.soon{background:rgba(234,88,12,.14);border-color:rgba(234,88,12,.35)}
.dark-ui .ev-cd.soon b{color:#fb923c}
.dark-ui .ev-cd.soon span{color:#fdba74}
.dark-ui .ev-cd.ended{opacity:.45}
.dark-ui .ev-foot{border-top-color:rgba(255,255,255,.08)}
.dark-ui .ev-org{color:#7d8aa3}
.dark-ui .fav{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#8f9cb3}
.dark-ui .fav:hover{background:rgba(244,63,94,.15);border-color:rgba(244,63,94,.4);color:#fb7185}
.dark-ui .fav.on{background:rgba(244,63,94,.18);border-color:rgba(244,63,94,.45);color:#fb7185}
.dark-ui .detail-link{color:#7dd3fc}

/* 已收藏卡片（暗色）：光边在深色卡片上更亮 */
.dark-ui .ev-card.is-fav::before{filter:drop-shadow(0 0 7px rgba(56,189,248,.6))}
.dark-ui .ev-card.is-fav{background:linear-gradient(165deg,rgba(10,42,58,.94),rgba(30,22,62,.94) 54%,rgba(58,16,46,.94));
  border-color:rgba(103,232,249,.35)}
.dark-ui .ev-card.is-fav:hover{border-color:rgba(103,232,249,.55)}

/* 视图切换 / 骨架 / 空状态 / 日历 / 页脚 */
.dark-ui .view-toggle{background:rgba(255,255,255,.05);border-color:var(--line)}
.dark-ui .view-toggle button{color:#9aa6be}
.dark-ui .view-toggle button.on{background:rgba(107,141,255,.2);color:#c9d6ff}
.dark-ui .skeleton{background:rgba(11,19,34,.8);border-color:var(--line);box-shadow:none}
.dark-ui .sk-pill,.dark-ui .sk-line{background:linear-gradient(90deg,#101a2e 25%,#18243c 37%,#101a2e 63%);
  background-size:400% 100%}
.dark-ui .empty{background:rgba(11,19,34,.8);border-color:var(--line)}
.dark-ui .empty .empty-title{color:#b6c1d4}
.dark-ui .empty .empty-sub{color:#6d7a92}
.dark-ui .calendar-wrap{background:rgba(11,19,34,.8);border-color:var(--line);box-shadow:none}
.dark-ui .cal-head h3{color:#eef2fa}
.dark-ui .cal-nav button{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#9aa6be}
.dark-ui .cal-cell{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.07)}
.dark-ui .cal-cell.today{background:rgba(107,141,255,.12);border-color:rgba(107,141,255,.4)}
.dark-ui .cal-cell .d{color:#8e9bb2}
.dark-ui .cal-cell.today .d{color:#c9d6ff}
.dark-ui .cal-ev{background:rgba(255,255,255,.05);color:#c2cee3}
.dark-ui footer{color:#5f6b82;border-top-color:rgba(255,255,255,.08)}

/* ===== 内页组件（赛事广场 / 详情 / 组队 / 干货库 / 个人中心） ===== */
.dark-ui .page-hero h1{color:#f4f8ff}
.dark-ui .page-hero p{color:#9aa6be}
.dark-ui .crumb{color:#78859d}
.dark-ui .crumb .sep{color:#4a5568}
.dark-ui .crumb em{color:#c2cee3}
.dark-ui .side{background:rgba(11,19,34,.82);border-color:var(--line);box-shadow:none;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.dark-ui .side h4{color:#c2cee3}
.dark-ui .check{color:#a9b5ca}
.dark-ui .check:hover{background:rgba(255,255,255,.05);color:#fff}
.dark-ui .check:has(input:checked){background:rgba(34,211,238,.14);color:#a5f3fc}
.dark-ui .sortbar .count{color:#78859d}
.dark-ui .sortbar select{background:rgba(11,19,34,.9);color:#eef2fa;border-color:rgba(255,255,255,.12)}
.dark-ui .panel{background:rgba(11,19,34,.85);border-color:var(--line);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.dark-ui .panel h2,.dark-ui .d-title{color:#eef2fa}
.dark-ui .info-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.dark-ui .info-item b{color:#78859d}
.dark-ui .info-item span{color:#dbe3f1}
.dark-ui .track{background:rgba(255,255,255,.04);border-left-color:#22d3ee}
.dark-ui .track b{color:#eef2fa}
.dark-ui .track p{color:#9aa6be}
.dark-ui .res-item{border-bottom-color:rgba(255,255,255,.07);color:#c2cee3}
.dark-ui .res-item .ico{background:rgba(255,255,255,.06)}
.dark-ui .cmt{border-bottom-color:rgba(255,255,255,.07)}
.dark-ui .cmt .n{color:#eef2fa}
.dark-ui .cmt .n small{color:#78859d}
.dark-ui .cmt p{color:#a9b5ca}
.dark-ui .input,.dark-ui select,.dark-ui textarea{background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.12);color:#eef2fa}
.dark-ui .input:focus,.dark-ui select:focus,.dark-ui textarea:focus{border-color:rgba(103,232,249,.6);
  box-shadow:0 0 0 3px rgba(34,211,238,.15)}
.dark-ui .team-card{background:linear-gradient(160deg,rgba(17,26,45,.95),rgba(9,14,27,.95));
  border-color:var(--line);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.dark-ui .team-card h3{color:#eef2fa}
.dark-ui .team-card .who{color:#78859d}
.dark-ui .need{background:rgba(34,211,238,.12);color:#a5f3fc}
.dark-ui .need.role{background:rgba(234,88,12,.14);color:#fdba74}
.dark-ui .team-info{color:#9aa6be}
.dark-ui .contact-box b{color:#eef2fa}
.dark-ui .res-card{background:linear-gradient(160deg,rgba(17,26,45,.95),rgba(9,14,27,.95));
  border-color:var(--line);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.dark-ui .res-card h3{color:#eef2fa}
.dark-ui .res-card p{color:#9aa6be}
.dark-ui .res-card .foot{border-top-color:rgba(255,255,255,.08);color:#78859d}
.dark-ui .auth{background:rgba(11,19,34,.88);border-color:var(--line);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.dark-ui .auth .sub{color:#9aa6be}
.dark-ui .tabs{background:rgba(255,255,255,.05)}
.dark-ui .tabs button{color:#9aa6be}
.dark-ui .tabs button.on{background:rgba(107,141,255,.2);color:#c9d6ff;box-shadow:none}
.dark-ui .captcha-box{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.2);color:#c9d6ff}
.dark-ui .mini{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:#dbe3f1}
.dark-ui .mini .meta{color:#78859d}
.dark-ui .sub-note{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:#9aa6be}
.dark-ui .sub-note b{color:#eef2fa}
.dark-ui .focus-chip{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#9aa6be}
.dark-ui .focus-chip.on{background:rgba(34,211,238,.14);border-color:rgba(103,232,249,.4);color:#a5f3fc}
.dark-ui .toast{background:#111c30;color:#eef2fa;border-color:rgba(255,255,255,.12)}
.dark-ui .tag{background:rgba(255,255,255,.06);color:#a9b5ca}
.dark-ui .tag.lv{background:rgba(255,255,255,.07);color:#c2cee3}
.dark-ui .tag.hot,.dark-ui .tag.soon{background:rgba(244,63,94,.16);color:#fda4af}
.dark-ui .tag.upcoming{background:rgba(255,255,255,.06);color:#9aa6be}
.dark-ui .tag.open{background:rgba(16,163,107,.16);color:#4ade80}
.dark-ui .tag.running{background:rgba(107,141,255,.16);color:#b6c6ff}
.dark-ui .tag.ended{background:rgba(255,255,255,.05);color:#78859d}

@media (max-width:720px){
  .dark-ui .hero{padding:100px 0 32px;margin-top:-58px}
}
