/* Teams (2026-10-19): /teams — this week, the standings, the war player (public/js/teams.js) and the war hall. A team's colour is --tc. */
.teams-page code { font-family:var(--font-m); font-size:.9em; padding:1px 6px; border-radius:6px; background:rgba(255,255,255,.06); }
.tm-name { color:var(--tc, var(--text)); font-weight:700; white-space:nowrap; }
.vs { color:var(--dim); font-size:.8rem; margin:0 2px; }
.hint-line { color:var(--muted); font-size:.9rem; }

/* this week */
.tw-week { display:grid; grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr); gap:14px; }
.tw-week.solo { grid-template-columns:1fr; }
.tw-lines, .tw-season { padding:16px 18px; min-width:0; }
.tw-week-key, .tw-season-head { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.tw-week-key b, .tw-season-head b { font-family:var(--font-d); font-size:1rem; }
.tw-lines ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.tw-line { display:grid; grid-template-columns:28px minmax(0, 1fr); gap:8px; align-items:start; font-size:.92rem; color:var(--muted); line-height:1.45; }
.tw-line b { color:var(--text); }
.tw-line small { color:var(--dim); }
.tw-ico { font-size:1.15rem; line-height:1.3; text-align:center; }
.tw-season-rows { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.tw-season-rows li { display:grid; grid-template-columns:22px minmax(0, 1fr) auto auto; gap:8px; align-items:center; padding:6px 10px; border-radius:10px; background:rgba(255,255,255,.03); box-shadow:inset 3px 0 0 var(--tc); font-size:.88rem; }
.tw-season-rows .pl { color:var(--dim); font-weight:700; }
.tw-season-rows .tm-name { overflow:hidden; text-overflow:ellipsis; }
.tw-season-rows small { color:var(--dim); font-size:.74rem; white-space:nowrap; }

/* the standings */
.tm-board { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.tm-row { padding:14px 16px; display:grid; grid-template-columns:minmax(0, 330px) minmax(0, 1fr); gap:14px 22px; align-items:center; border-color:color-mix(in srgb, var(--tc) 30%, transparent); background:linear-gradient(100deg, color-mix(in srgb, var(--tc) 14%, transparent), rgba(12,7,24,.85) 46%); }
.tm-row.first { box-shadow:0 0 0 1px color-mix(in srgb, var(--tc) 55%, transparent), 0 14px 40px color-mix(in srgb, var(--tc) 18%, transparent); }
.tm-id { display:grid; grid-template-columns:22px 40px minmax(0, 1fr) auto; gap:10px; align-items:center; min-width:0; }
.tm-rank { font-family:var(--font-d); font-weight:700; color:var(--dim); text-align:center; }
.tm-emoji { font-size:1.9rem; line-height:1; text-align:center; }
.tm-who { min-width:0; }
.tm-who b { display:block; font-family:var(--font-d); font-size:1.02rem; color:var(--tc); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-who small { display:block; color:var(--muted); font-size:.76rem; }
.tm-who em { display:block; color:var(--dim); font-size:.74rem; font-style:italic; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-crown { font-size:.9em; }
.tm-score { text-align:right; }
.tm-score b { display:block; font-family:var(--font-d); font-size:1.6rem; line-height:1; }
.tm-score small { color:var(--dim); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
.tm-cols { display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:10px 14px; min-width:0; }
.tm-col { display:grid; gap:4px; min-width:0; }
.tm-col-l { font-size:.72rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-bar { display:block; height:6px; border-radius:6px; background:rgba(255,255,255,.07); overflow:hidden; }
.tm-bar i { display:block; height:100%; border-radius:inherit; background:var(--tc); box-shadow:0 0 10px color-mix(in srgb, var(--tc) 60%, transparent); }
.tm-col-v { font-size:.84rem; font-weight:700; white-space:nowrap; }
.tm-col-v small { color:var(--dim); font-weight:500; font-size:.7rem; margin-left:1px; }

/* the war */
.war-grid { display:grid; grid-template-columns:minmax(0, 1fr) 270px; gap:14px; align-items:start; }
.war-stage { padding:0; overflow:hidden; min-width:0; }
.war-stage canvas { display:block; width:100%; height:auto; aspect-ratio:16 / 9; background:#07050f; }
.war-bar { display:flex; align-items:center; gap:8px; padding:10px 12px; border-top:1px solid var(--line); flex-wrap:wrap; }
.war-bar[hidden] { display:none; }
.war-mode { font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:3px 10px; border-radius:999px; background:rgba(255,255,255,.06); color:var(--muted); }
.war-mode.live { background:#e3262f; color:#fff; box-shadow:0 0 14px rgba(227,38,47,.6); }
.war-mode.live::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:#fff; margin-right:6px; vertical-align:1px; animation:warPulse 1.2s ease-in-out infinite; }
@keyframes warPulse { 50% { opacity:.3; } }
.war-btn { min-width:36px; height:32px; padding:0 10px; border-radius:9px; border:1px solid var(--line-2); background:rgba(255,255,255,.04); color:var(--text); font:700 .84rem var(--font-b); cursor:pointer; }
.war-btn:hover { background:rgba(255,255,255,.09); }
.war-btn.on { background:rgba(168,120,255,.22); border-color:var(--violet); }
.war-btn:disabled { opacity:.4; cursor:default; }
.war-rates { display:inline-flex; gap:4px; }
.war-btn[hidden], .war-rates:has(> [hidden]) { display:none; }
.war-progress { flex:1 1 120px; height:6px; border-radius:6px; background:rgba(255,255,255,.08); overflow:hidden; min-width:80px; cursor:pointer; background-clip:content-box; padding:6px 0; box-sizing:content-box; }
.war-progress i { display:block; height:100%; width:0; background:var(--violet); }
.war-clock { font:600 .78rem var(--font-m); color:var(--muted); white-space:nowrap; }
.war-feed { padding:14px 14px 10px; max-height:560px; overflow:auto; min-width:0; }
.war-feed h3 { font-family:var(--font-d); font-size:.92rem; margin:0 0 8px; }
.war-feed ol { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.war-feed li { font-size:.8rem; color:var(--muted); line-height:1.35; padding:6px 8px; border-radius:8px; background:rgba(255,255,255,.03); box-shadow:inset 3px 0 0 var(--tc, var(--line-2)); }
.war-feed li b { color:var(--text); }
.war-feed li .k { color:var(--tc); font-weight:700; }
.war-feed li.out { background:color-mix(in srgb, var(--tc) 14%, transparent); color:var(--text); font-weight:700; }
.war-feed li time { float:right; color:var(--dim); font:500 .7rem var(--font-m); margin-left:6px; }

/* the hall */
.tm-scroll { overflow-x:auto; border-radius:var(--r-lg); box-shadow:inset 0 0 0 1px var(--line); }
.tm-hall { width:100%; border-collapse:collapse; font-size:.86rem; min-width:620px; }
.tm-hall th, .tm-hall td { padding:10px 12px; text-align:left; border-bottom:1px solid var(--line); }
.tm-hall thead th { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:700; }
.tm-hall thead th .th-team { color:var(--tc); }
.tm-hall tbody th b { display:block; }
.tm-hall small { display:block; color:var(--dim); font-size:.72rem; font-weight:500; }
.tm-hall td.win { font-weight:800; color:var(--text); }
.tm-hall tbody tr:last-child > * { border-bottom:0; }
.tm-sub { font-family:var(--font-d); font-size:1rem; margin:26px 0 10px; }
.tm-seasons { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px; }
.tm-season { padding:14px 16px; border-color:color-mix(in srgb, var(--tc) 35%, transparent); }
.tm-season-win { display:block; font-family:var(--font-d); color:var(--tc); margin:4px 0 8px; }
.tm-season ol { list-style:none; margin:0; padding:0; display:grid; gap:4px; }
.tm-season ol li { display:grid; grid-template-columns:minmax(0, 1fr) auto auto; gap:8px; font-size:.84rem; color:var(--muted); }
.tm-season ol li b { color:var(--text); }
.tm-season ol li small { color:var(--dim); font-size:.72rem; align-self:center; }

@media (max-width: 960px) {
  .tw-week { grid-template-columns:1fr; }
  .tm-row { grid-template-columns:1fr; }
  .war-grid { grid-template-columns:1fr; }
  .war-feed { max-height:300px; }
}
@media (max-width: 640px) {
  .tm-cols { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .tm-id { grid-template-columns:18px 32px minmax(0, 1fr) auto; gap:8px; }
  .tm-emoji { font-size:1.5rem; }
  .tm-score b { font-size:1.3rem; }
  .war-bar { gap:6px; padding:8px; }
  .war-clock { display:none; }
}
@media (prefers-reduced-motion: reduce) { .war-mode.live::before { animation:none; } }
