/* ===== Layout ===== */
.ws-wrap{max-width:860px;margin:0 auto;padding:10px}
a{color:inherit;text-decoration:none}

/* ===== Topbar ===== */
.ws-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;border:1px solid #eef2f7;border-radius:14px;background:#fff;
  position:sticky;top:8px;z-index:10;
  box-shadow:0 6px 18px rgba(15,23,42,.06);
}
.ws-brand{display:flex;align-items:baseline;gap:10px}
.ws-logo{font-weight:900;letter-spacing:.2px}
.ws-sub{font-size:12px;color:#64748b}
.ws-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.ws-navlink{font-size:13px;color:#334155;padding:6px 10px;border-radius:10px}
.ws-navlink.on,.ws-navlink:hover{background:#f1f5f9}

.ws-actions{display:flex;align-items:center;gap:10px}
.desktop-only{display:block}
@media (max-width: 720px){ .desktop-only{display:none} }

/* ===== TZ Badge ===== */
.tz-badge{
  border:none;
  padding:7px 12px;border-radius:999px;
  background:#0f172a;color:#fff;font-size:13px;font-weight:900;
  cursor:pointer;
}
.tz-badge:hover{background:#1e293b}

/* ===== Lang dropdown ===== */
.lang-dd{position:relative}
.lang-btn{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;gap:8px;
  padding:7px 12px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;
  font-size:13px;color:#0f172a;font-weight:800;
}
.lang-btn::-webkit-details-marker{display:none}
.lang-txt{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lang-caret{color:#64748b}
.lang-menu{
  position:absolute;right:0;margin-top:8px;width:190px;
  background:#fff;border:1px solid #e2e8f0;border-radius:12px;
  box-shadow:0 10px 28px rgba(15,23,42,.12);
  padding:6px;display:flex;flex-direction:column;gap:2px;
}
.lang-item{padding:8px 10px;border-radius:10px;font-size:13px;color:#0f172a}
.lang-item:hover{background:#f1f5f9}
.lang-item.on{background:#e0f2fe}

/* ===== Head ===== */
.ws-head{margin-top:12px}
.ws-h1{font-size:20px;margin:0 0 4px}
.ws-desc{font-size:13px;color:#64748b}

/* ===== Week Picker ===== */
.ut_weekpeacker_wrap{width:100%;margin:10px 0}
.ut_weekpeacker{display:flex;align-items:center;gap:10px}
.ut_day_prev,.ut_day_next{
  width:36px;height:36px;border-radius:50%;
  background:#111;color:#fff;font-size:22px;
  display:flex;align-items:center;justify-content:center;
}
.ut_week_inner{
  display:flex;gap:6px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  padding:2px 4px;
  scrollbar-width:none;
}
.ut_week_inner::-webkit-scrollbar{display:none}
.ut_day{
  scroll-snap-align:center;
  flex:0 0 auto;
  width:56px;padding:7px 0;
  text-align:center;border-radius:12px;
  background:#f1f5f9;
  font-size:13px;font-weight:900;color:#111;
  border:1px solid #e2e8f0;
}
.ut_day:hover{background:#e2e8f0}
.ut_active{background:#111;color:#fff;border-color:#111}

/* ===== Groups ===== */
.ws-group{margin-top:14px}
.ws-gtitle{font-size:12px;font-weight:900;letter-spacing:.08em;color:#334155;margin:6px 2px}
.ws-gtitle.live{color:#dc2626;display:flex;align-items:center;gap:8px}
.ws-dot{width:8px;height:8px;background:#dc2626;border-radius:50%;animation:pulse 1.4s infinite}

/* ===== Rows ===== */
.ws-row{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 10px;border-radius:14px;
}
.ws-row:hover{background:#f8fafc}
.ws-row.live{background:#fff5f5}
.ws-row.soon{background:#fff7ed}

.ws-time{width:54px;font-weight:900}
.ws-main{flex:1}
.ws-teams{display:flex;gap:14px}
.ws-team{font-weight:900}
.ws-vs{font-size:11px;padding:3px 8px}
.ws-meta{font-size:12px;color:#64748b}

.ws-badge{width:70px;font-size:11px;font-weight:900}

/* ===== Mobile ===== */
@media (max-width:520px){
  .ws-teams{flex-direction:column}
}

/* ===== 表格页：取消二次限宽 ===== */
.ws-wrap-full{
  max-width:100%;
}

/* ===== 表格时间/日期：禁止换行 ===== */
.table td:first-child,
.table td:nth-child(2),
.table th:first-child,
.table th:nth-child(2){
  white-space: nowrap;
}

/* ===== 比分样式（防止换行） ===== */
.score-cell{
  font-weight:700;
  font-size:14px;
  text-align:center;
  white-space:nowrap;      /* ✅ 永不换行 */
  min-width:64px;          /* ✅ 给比分一个安全宽度 */
  padding:0 6px;
  color:#0f172a;
}

/* LIVE 行比分强调 */
.row-live .score-cell{
  color:#991b1b;
}
