/* 我的队伍 team/、我的账号 account/（10-16 · Claude Opus 5.5；生成器 site/gen/pages_team.py，脚本 assets/team.js、account.js）。颜色只用 tokens.css 的变量。 */

/* ---------- 账号：登录页只有表单；登录后是账号主页 ---------- */
.ac-app{max-width:1100px}
.pg-acct .ac-form{max-width:440px;margin:6px auto 0}
.ac-form{display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.ac-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px 0 4px}
.ac-tabs button{font:inherit;font-size:16px;border:0;background:none;color:var(--ink-2);padding:6px 14px 8px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.ac-tabs button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}
.ac-go{height:40px;justify-content:center;font-size:15px}
.ac-err{margin:0;color:var(--bad);font-size:14px}
.ac-err[hidden]{display:none}
.ac-rem{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2);cursor:pointer}
.ac-rem input{width:16px;height:16px;accent-color:var(--accent)}
.ac-note{max-width:440px;margin:6px auto;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:13.5px;color:var(--ink-2)}
.ac-av{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 18px var(--font-head)}
.ac-acts{display:flex;flex-wrap:wrap;gap:8px}
.st-p{color:var(--warn)}.st-a{color:var(--good)}.st-r{color:var(--muted)}
.ac-st{flex:none;font-size:12px;padding:0 8px;line-height:20px;border-radius:10px;border:1px solid currentColor}

/* 头部：头像、名字、退出 */
.ac-head{display:flex;align-items:center;gap:16px;padding:18px 20px;margin:4px 0 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.ac-av-l{display:inline-grid;place-items:center;flex:none;width:76px;height:76px;border-radius:50%;overflow:hidden;font:700 32px var(--font-head)}
.ac-av-l img{width:100%;height:100%;object-fit:cover;display:block}
.ac-avb{position:relative;flex:none;padding:0;border:3px solid var(--line-strong);border-radius:50%;background:none;cursor:pointer;line-height:0}
.ac-avb:hover{border-color:var(--accent)}
.ac-avb-t{position:absolute;right:-4px;bottom:-2px;line-height:20px;padding:0 7px;border-radius:10px;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);font-size:12px}
.ac-id{flex:1;min-width:0}
.ac-id h1{margin:0;font-size:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-id small{color:var(--muted);font-size:13px}
.ac-out{flex:none}
.ac-console{flex:none;margin-left:auto;background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}
.ac-console:hover{text-decoration:none;filter:brightness(1.08)}
.ac-console+.ac-out{margin-left:0}
/* 改名字（10-19）：名字下面一个小按钮，点了就地出输入框 */
.ac-rnb{font:inherit;font-size:13px;padding:0;border:0;background:none;color:var(--accent-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ac-rnb:hover{color:var(--accent)}
.ac-rn{display:flex;flex-direction:column;gap:6px;max-width:420px}
.ac-rn .wr-f{display:flex;flex-direction:column;gap:4px}
.ac-rn .wr-f>span{font-size:13px;color:var(--ink-2)}
.ac-rn-tip{margin:0;min-height:1.4em;font-size:13px;color:var(--muted)}
.ac-rn-tip.bad{color:var(--bad)}
.ac-rn-tip.warn{color:var(--warn)}
.ac-id .ac-rn-rule{display:block;line-height:1.5;font-size:12.5px}
.ac-rn-ok{margin:6px 0 0;font-size:13px;color:var(--good)}
.ac-rn .btn:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:760px){.ac-head .ac-id-edit{flex-basis:100%;order:5}.ac-head .ac-id-edit+.ac-out{margin-left:auto}}

/* 四块：我的队伍、我的投稿、我赞过的、我评论过的 */
.ac-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ac-card{display:flex;flex-direction:column;min-width:0;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.ac-ch{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.ac-ch h2{margin:0;font-size:18px}
.ac-ch a{font-size:13.5px;white-space:nowrap}
.ac-cb{display:flex;flex-direction:column;gap:6px;min-width:0}
.ac-cb .muted{margin:0;font-size:14px}
.ac-team{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n c" "f f";gap:4px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
.ac-team:hover{text-decoration:none;border-color:var(--accent)}
.ac-team b{grid-area:n;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-team small{grid-area:c;color:var(--muted)}
.ac-faces{grid-area:f;display:flex;flex-wrap:wrap;gap:3px}
.ac-f{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;object-fit:cover;object-position:50% 18%;background:var(--surface-2);font-size:13px}
.ac-empty{display:inline-flex;align-items:center;justify-content:center;height:40px;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--accent-2)}
.ac-empty:hover{text-decoration:none;border-color:var(--accent)}
.ac-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.ac-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:7px 10px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);font-size:14px}
.ac-t{flex:1;min-width:8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-list small{color:var(--muted);font-size:12px}
.ac-cms li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px}
.ac-cm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-where{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 选头像 */
.ac-pick{max-width:940px;padding:18px 20px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.ac-h{margin:0 0 14px;font-size:22px}
.av-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-bottom:6px}
.ac-pick>.ac-acts{position:sticky;bottom:0;z-index:5;margin:0 -20px;padding:12px 20px;background:var(--surface);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius)}
.av-gh{grid-column:1/-1;margin-top:4px;font-size:13px;font-weight:700;color:var(--ink-2)}
.av-b{aspect-ratio:1;padding:0;border:3px solid transparent;border-radius:50%;background:var(--surface-2);cursor:pointer;overflow:hidden;line-height:0}
.av-b img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.av-b:hover{border-color:var(--line-strong)}
.av-b.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.ac-plain{color:var(--muted)}
@media (max-width:760px){
  .ac-grid{grid-template-columns:1fr}
  .ac-head{flex-wrap:wrap;gap:12px;padding:14px}
  .ac-av-l{width:60px;height:60px;font-size:26px}
  .ac-id h1{font-size:22px}
  .av-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .ac-pick{padding:14px 14px 0}
  .ac-pick>.ac-acts{margin:0 -14px;padding:10px 14px}
}

/* ---------- 我的队伍 第二版（10-17：选线 → 主角自动进队 → 可用的人 → 每人选培养路线 → 助手） ---------- */
.tm-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
.tm-acc{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:440px}
.tm-acc b{display:block;font-size:14px}
.tm-acc small{display:block;font-size:12.5px;color:var(--muted);line-height:1.5}
.tm-acc.on .ac-av{width:32px;height:32px;font-size:15px}
.tm-app{display:flex;flex-direction:column;gap:12px}

/* ① 选线 */
.tm-lines{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.tm-line{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 12px 8px 8px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tm-line img{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 18%;background:var(--surface-2)}
.tm-line span{display:flex;flex-direction:column;min-width:0}
.tm-line b{font:700 16px var(--font-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-line small{font-size:12px;color:var(--muted)}
.tm-line:hover{border-color:var(--line-strong)}
.tm-line.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.tm-set{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.tm-f{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-2)}
.tm-f span{white-space:nowrap}
.tm-chsel{min-width:220px}
.tm-set-a{margin-left:auto;display:flex;gap:8px}
.tm-sharebox{flex-basis:100%}
.tm-sharebox[hidden]{display:none}
.tm-share{padding:10px 12px;border:1px solid var(--accent-2);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-2) 6%,var(--surface))}
.tm-share-r{display:flex;gap:8px;flex-wrap:wrap}
.tm-share-r .ct-in{flex:1;min-width:220px;font-family:var(--mono);font-size:13.5px}

.tm-grid{display:flex;flex-direction:column;gap:14px}   /* 10-19：右边的助手整栏删了（Teemo：「右边这些slop根本没用」） */
.tm-team,.tm-pick{min-width:0}
.tm-bh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 8px}
.tm-bh h2{font-size:18px;margin:0}
.tm-bh small{font-size:12.5px;color:var(--muted)}
.tm-team,.tm-pick{padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}

/* ③ 队员卡 */
.tm-card{position:relative;display:grid;grid-template-columns:16px 56px minmax(0,1fr) 34px;gap:10px;align-items:start;padding:12px 2px;border-top:1px solid var(--line);background:var(--surface)}
.tm-bh+.tm-card{border-top:0}
.tm-grip{align-self:stretch;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:grab;font-size:13px;letter-spacing:-2px;user-select:none;touch-action:none}
.tm-grip-off{cursor:default}
.tm-face{line-height:0}
.tm-av,.tm-av-l,.tm-av-s,.tm-av-w,.tm-av-m,.tm-av-f{display:inline-block;flex:none;border-radius:50%;object-fit:cover;object-position:50% 18%;background:var(--surface-2)}
.tm-av-l{width:56px;height:56px}
.tm-av-s{width:22px;height:22px}
.tm-av-w{width:48px;height:48px}
.tm-av-t{display:inline-grid;place-items:center;font-weight:700;color:var(--ink-2)}
.tm-cb{min-width:0;display:flex;flex-direction:column;gap:6px}
.tm-ch{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tm-mn{font:700 17px var(--font-head);color:var(--ink)}
.tm-st{font-size:12px;line-height:20px;padding:0 8px;border-radius:10px;background:var(--surface-2);color:var(--ink-2)}
.tm-st.st-later{background:color-mix(in srgb,var(--accent-2) 14%,transparent);color:var(--accent-2);font-weight:700}
.tm-st.st-gone,.tm-st.st-hot{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad);font-weight:700}
.tm-rt{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tm-rsel{max-width:240px;height:32px;padding:0 8px;font-size:13.5px}
.tm-rn{font-size:13.5px}
.tm-chain{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px}
.tm-arr{font-style:normal;color:var(--muted);font-size:12px}
.tm-cl{display:inline-flex;align-items:center;gap:3px;font-size:13px;color:var(--ink)}
.tm-cl img{width:20px;height:20px}
.tm-cl small{font-size:11px;color:var(--muted)}
.tm-lv{display:grid;grid-template-columns:auto repeat(9,minmax(0,1fr));gap:4px 6px;align-items:center;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.tm-lv-h{font-size:12px;color:var(--muted);white-space:nowrap}
.tm-lv-h b{color:var(--ink);font-size:12.5px}
.tm-sb{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-sb small{font-size:10.5px;color:var(--muted);white-space:nowrap}
.tm-sb b{font-size:12.5px;font-variant-numeric:tabular-nums}
.tm-sb-b{display:block;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.tm-sb-b i{display:block;height:100%;border-radius:2px;background:var(--accent-2)}
.st-b-hp i{background:var(--st-hp,var(--good))}.st-b-str i{background:var(--st-str,var(--accent))}.st-b-mag i{background:var(--st-mag,var(--accent-2))}
.st-b-spd i{background:var(--st-spd,var(--accent-2))}.st-b-dex i{background:var(--st-dex,var(--accent-2))}.st-b-def i{background:var(--st-def,var(--ink-2))}
.st-b-res i{background:var(--st-res,var(--accent-2))}.st-b-lck i{background:var(--st-lck,var(--good))}.st-b-cha i{background:var(--st-cha,var(--warn))}
.tm-todo{display:flex;flex-wrap:wrap;gap:4px}
.tm-td{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;line-height:22px;padding:0 8px;border-radius:11px;border:1px solid var(--line);background:var(--bg);color:var(--ink-2)}
.tm-td.ok{border-color:color-mix(in srgb,var(--good) 50%,transparent);color:var(--good)}
.tm-dl{border-color:color-mix(in srgb,var(--warn) 60%,transparent);color:var(--warn)}
.tm-dl.hot,.tm-dl.gone{border-color:var(--bad);color:var(--bad);font-weight:700}
.tm-gift{display:inline-flex;align-items:center;gap:4px;color:var(--ink)}
.tm-gift small{color:var(--muted)}
.tm-links{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px}
.tm-rm{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--muted);font-size:16px;cursor:pointer}
.tm-rm:hover{border-color:var(--bad);color:var(--bad)}
.tm-lock{align-self:start;font-size:11.5px;line-height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--accent-ink);text-align:center}

/* ② 可用的人 */
.tm-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin-bottom:12px}
.tm-w-b{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 5px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer}
.tm-w-b:hover{border-color:var(--accent)}
.tm-w-b.on{border-color:var(--good);background:color-mix(in srgb,var(--good) 10%,var(--bg))}
.tm-w-na{color:var(--ink)}
.tm-w-na:hover{text-decoration:none}
.tm-w-n{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-w-s{max-width:100%;font-size:10.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-w-s.st-later{color:var(--accent-2);font-weight:700}
.tm-w-s.st-hot{color:var(--bad);font-weight:700}
.tm-wt{position:absolute;top:4px;left:5px;font-style:normal;font-size:10.5px;font-weight:700;color:var(--muted)}
.tm-ck{position:absolute;top:4px;right:6px;font-style:normal;font-weight:700;color:var(--good)}
.tm-na summary{cursor:pointer;font-size:14px;color:var(--ink-2);margin-bottom:8px}

/* 别人分享的队伍 */
.tm-sh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px;padding:14px 16px;border:1px solid var(--accent-2);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-2) 6%,var(--surface))}
.tm-sh h2{margin:2px 0;font-size:22px}
.tm-sh small{color:var(--muted)}
.tm-sh p{margin:0}
.tm-toast{position:fixed;bottom:22px}

@media (max-width:860px){
  .tm-lines{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto;scrollbar-width:none}
  .tm-line{flex-direction:column;gap:4px;padding:6px 4px;text-align:center}
  .tm-line img{width:38px;height:38px}
  .tm-line b{font-size:13px}
  .tm-chsel{min-width:0;max-width:62vw}
  .tm-set-a{margin-left:0}
  .tm-card{grid-template-columns:44px minmax(0,1fr) 30px;grid-template-areas:"f b x"}
  .tm-card .tm-grip{display:none}
  .tm-face{grid-area:f}.tm-cb{grid-area:b}.tm-rm,.tm-lock{grid-area:x}
  .tm-av-l{width:44px;height:44px}
  .tm-lv{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tm-lv-h{grid-column:1/-1}
  .tm-wall{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}
  .tm-av-w{width:42px;height:42px}
  .tm-acc{max-width:none;width:100%}
  .tm-rsel{max-width:100%}
}

a.tm-acc{color:var(--ink)}
a.tm-acc:hover{text-decoration:none;border-color:var(--accent)}
.ac-av{overflow:hidden}
.ac-av img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- 站长：账号和管理员 owner/accounts/（account.js 的 #roleApp） ---------- */
.rl-app{max-width:820px}
.rl-bar{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.rl-q{max-width:280px}
.rl-n{font-size:13px;color:var(--muted)}
.rl-list{display:flex;flex-direction:column;gap:6px}
.rl-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.rl-row[data-role="owner"]{border-color:var(--accent)}
.rl-row[data-role="admin"]{border-color:var(--accent-2)}
.rl-av{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;font-weight:700}
.rl-av img{width:100%;height:100%;object-fit:cover;display:block}
.rl-who{flex:1;min-width:0;display:flex;flex-direction:column}
.rl-who b{display:flex;align-items:center;gap:6px;font-size:15px}
.rl-who small{font-size:12px;color:var(--muted)}
.ac-id h1{display:flex;align-items:center;gap:8px}
.sc-m .role-b{height:16px;font-size:10.5px}
@media (max-width:600px){.rl-row{flex-wrap:wrap}.rl-row .btn{margin-left:52px}}

/* 10-17 布局巡检：手机上五条线按钮各 64px，「迪托利希篇」「赛奥朵拉篇」字比按钮宽，压到隔壁按钮上——按钮放宽到能放下五个字，放不下就横滑 */
@media (max-width:860px){
  .tm-lines{grid-template-columns:repeat(5,minmax(82px,1fr));gap:6px}
  .tm-line{padding:6px 2px}
  .tm-line span{max-width:100%}
  .tm-line b{font-size:12.5px}
}

/* ---------- 账号主页「我的修改」（机制页、攻略页的修改，10-17 wiki） ---------- */
.ac-wiki li{row-gap:2px}
.ac-ws{flex-basis:100%;color:var(--ink-2);font-size:13px}
.ac-wr{flex-basis:100%;color:var(--bad);font-size:13px}

/* ---------- 选头像：按组分页签（10-17，136 个头像） ---------- */
.av-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 14px}
.av-tab{height:32px;padding:0 12px;font-size:13.5px}
.av-tab small{margin-left:2px;font-size:11.5px;opacity:.7}
.av-sel{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--surface-2);border:2px solid var(--accent)}
.av-sel:empty{display:none}
.av-sel img{width:100%;height:100%;object-fit:cover}
.ac-pick>.ac-acts{align-items:center}
@media (max-width:767px){
  .av-tabs{flex-wrap:nowrap;overflow-x:auto;margin:2px -14px 12px;padding:0 14px 4px;scrollbar-width:none}
  .av-tabs::-webkit-scrollbar{display:none}
  .av-tab{flex:none}
  .av-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
/* 路线职业链统一换到选项下一排（10-18 Teemo：「有的路线会和选项并排显示，统一显示在下一排」） */
.tm-rt{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.tm-rt .tm-chain{width:100%}
a.tm-cl{color:inherit;text-decoration:none}
a.tm-cl:hover{color:var(--accent)}

/* 10-18 职业图标完整版（游戏图标子代理）：图标换成游戏里的完整样子——八角方底＋比方底大一圈的小人（武器、翅膀伸出方底），方底只占图的 77%，四周透明。框整体放大约 1.35 倍，让小人和以前差不多大；不再给职业图标加圆角、圆形裁切、底色或像素化缩放（会把伸出来的部分切掉、缩小时出锯齿）。 */
.tm-cl img{width:28px;height:28px;margin:-4px -1px}
/* /10-18 职业图标完整版 */

/* ---------- 10-19 Teemo 四条（Claude Opus 5.5 · 队伍页会话）：就地改路线、新加的人排主角后、三种显示方式、拖动重做 ---------- */
.tm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tm-ic{display:inline-flex;line-height:0}
.tm-ci{width:26px;height:26px;margin:-4px -2px;flex:none}
.tm-ci-s{width:20px;height:20px;margin:-3px -1px;vertical-align:middle}
.tm-team{position:relative}
.tm-team .tm-bh{align-items:center}

/* 三种显示方式的切换（标题右边） */
.tm-vw{display:inline-flex;margin-left:auto;padding:2px;border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--bg)}
.tm-vb{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border:0;border-radius:var(--radius);background:none;color:var(--ink-2);font:inherit;font-size:13.5px;cursor:pointer;white-space:nowrap}
.tm-vb:hover{color:var(--ink)}
.tm-vb.on{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 0 0 1px var(--line-strong)}
.tm-vb.on .tm-ic{color:var(--accent)}

/* 卡片：把手是按钮（键盘能选中），整张卡都能拖 */
.tm-list{position:relative;display:flex;flex-direction:column}
.tm-card{grid-template-columns:56px minmax(0,1fr) 34px;padding-left:8px}
.tm-list>.tm-card:first-child{border-top:0}
.tm-list>.tm-card:not(.is-lord){cursor:grab}
.tm-list>.tm-card .tm-ed{cursor:auto}
.tm-list>.tm-card a,.tm-list>.tm-card button,.tm-list>.tm-card select{cursor:pointer}
/* 10-20 去掉六点把手：键盘排序按钮看不见，Tab 选到时整张卡描边 */
button.tm-grip{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;background:none}
.tm-card:has(>.tm-grip:focus-visible),.tm-row:has(>.tm-grip:focus-visible),.tm-ft:has(>.tm-grip:focus-visible){outline:2px solid var(--accent-2);outline-offset:-2px}
.tm-rm{display:inline-grid;place-items:center;padding:0}
.tm-card.tm-kbd,.tm-row.tm-kbd{box-shadow:inset 3px 0 0 var(--accent-2);background:color-mix(in srgb,var(--accent-2) 7%,var(--surface))}
.tm-new{animation:tm-new 2.4s ease-out}
@keyframes tm-new{0%,30%{background:color-mix(in srgb,var(--good) 16%,var(--surface))}100%{background:var(--surface)}}
/* 拖动：拿起来的卡跟着指针、原位置留占位框 */
.tm-ph{flex:none;margin:2px 0;border:2px dashed var(--accent-2);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-2) 8%,transparent)}
.tm-lift{position:fixed!important;z-index:90;margin:0!important;pointer-events:none;border:1px solid var(--line-strong)!important;border-radius:var(--radius);background:var(--surface);
  box-shadow:0 10px 28px rgba(29,36,51,.22),0 2px 6px rgba(29,36,51,.12);transform:scale(1.015);opacity:.97}
.tm-lift.tm-drop{transition:top .15s ease,left .15s ease,transform .15s ease,box-shadow .15s ease;transform:none;box-shadow:var(--shadow)}
.tm-press{transition:background .35s;background:color-mix(in srgb,var(--accent-2) 10%,var(--surface))}
body.tm-dragging,body.tm-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
@media (pointer:coarse){.tm-card,.tm-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}
@media (prefers-reduced-motion:reduce){.tm-new{animation:none}.tm-lift,.tm-lift.tm-drop{transition:none;transform:none}}

/* 路线：名字＋改路线按钮，下面职业链；改的时候职业链换成编辑面板 */
.tm-rh{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.tm-rn-no{color:var(--muted);font-weight:400}
.tm-edb{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px solid var(--line-strong);border-radius:13px;background:var(--surface);color:var(--accent);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}
.tm-edb:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.tm-edb.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tm-lv-wait{display:block;color:var(--muted)}
.tm-ed{width:100%;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:var(--radius);background:var(--bg);cursor:auto}
.tm-ed-rec{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tm-ed-k{font-size:12px;color:var(--muted)}
.tm-rec{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:2px 10px 2px 6px;border:1px solid var(--line-strong);border-radius:15px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.tm-rec:hover{border-color:var(--accent)}
.tm-rec.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));font-weight:700}
.tm-rec-own{cursor:default;padding:2px 10px}
.tm-rec .tm-ci{width:24px;height:24px;margin:-3px -1px}
.tm-es-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;counter-reset:es}
.tm-es{display:flex;flex-direction:column;gap:6px;padding:4px 6px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.tm-es.open{border-color:var(--accent-2)}
.tm-es-r{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tm-es-t{width:3.6em;flex:none;font-size:12px;color:var(--muted);white-space:nowrap}
.tm-es-t::before{counter-increment:es;content:counter(es) " ";font-weight:700;color:var(--ink-2)}
.tm-es-c{display:inline-flex;align-items:center;gap:6px;min-width:9.5em;height:34px;padding:0 8px 0 6px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);color:var(--ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.tm-es-c>span:not(.tm-ic){flex:1;text-align:left;white-space:nowrap}
.tm-es-c .tm-ic{color:var(--muted)}
.tm-es-c:hover,.tm-es-c[aria-expanded="true"]{border-color:var(--accent-2)}
.tm-es-f{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink-2)}
.tm-es-lv{height:32px;width:auto;min-width:5.5em;padding:0 6px;font-size:13.5px}
.tm-es-x{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:auto;padding:0;border:1px solid transparent;border-radius:50%;background:none;color:var(--muted);cursor:pointer}
.tm-es-x:hover{border-color:var(--bad);color:var(--bad)}
.tm-cp{display:flex;flex-direction:column;gap:8px;padding:6px 2px 4px}
.tm-cp-t{margin:0 0 4px;font-size:12px;font-weight:700;color:var(--ink-2)}
.tm-cp-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.tm-cp-c{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-areas:"i n" "i r" "i u";align-items:center;gap:0 6px;min-height:44px;padding:5px 8px 5px 6px;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tm-cp-c .tm-ci{grid-area:i;width:30px;height:30px;margin:-3px -2px}
.tm-cp-n{grid-area:n;display:flex;align-items:center;gap:5px;font-size:13.5px;font-weight:700}
.tm-cp-n em{font-style:normal;font-size:11px;font-weight:700;line-height:16px;padding:0 5px;border-radius:8px;background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}
.tm-cp-n em.w{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)}
.tm-cp-c small{grid-area:r;font-size:11.5px;line-height:1.35;color:var(--ink-2)}
.tm-cp-c:hover{border-color:var(--accent-2)}
.tm-cp-c.good{border-color:color-mix(in srgb,var(--good) 40%,var(--line))}
.tm-cp-c.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--bg))}
.tm-cp-more>summary{cursor:pointer;font-size:12.5px;color:var(--ink-2);margin-bottom:6px}
.tm-ed-a{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.tm-es-add{height:32px}
.tm-ed-sim{font-size:13px}
.tm-ed-ok{margin-left:auto;height:32px;min-width:5em;justify-content:center}

/* 一览：只放人物和培养路线；路线里的职业点一下就换，「详细修改」展开完整编辑 */
.tm-tlist{position:relative;display:flex;flex-direction:column}
.tm-tr{display:grid;grid-template-columns:226px minmax(0,1fr) 34px;grid-template-areas:"p r x";position:relative;padding-left:8px;align-items:center;gap:0 8px;min-height:86px;padding:6px 0;border-top:1px solid var(--line);background:var(--surface)}
.tm-tlist>.tm-tr:first-child{border-top:0}
.tm-tc-p{grid-area:p;min-width:0;display:grid;grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"a t ." "s s s";align-items:center;gap:0 6px}
.tm-tp{grid-area:a;display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:18px;white-space:nowrap;overflow:hidden}
.tm-tp b{overflow:hidden;text-overflow:ellipsis}
.tm-tc-p .tier{grid-area:t}
.tm-tst{grid-area:s;padding-left:78px;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-tst.st-later{color:var(--accent-2)}.tm-tst.st-gone,.tm-tst.st-hot{color:var(--bad);font-weight:700}
.tm-av-m{width:68px;height:68px}
.tm-tc-r{grid-area:r;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:2px 0}
.tm-trh{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.tm-trn{font-size:13.5px;color:var(--muted)}
.tm-trh .tm-edb{height:28px;padding:0 11px;font-size:13px}
.tm-mc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 5px}
.tm-mc .lv-at{font-size:13.5px;margin-right:2px}
.tm-mc .tm-arr{font-size:15px}
.tm-mcs{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.tm-sc{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 13px 0 6px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--ink);font:inherit;font-size:16px;cursor:pointer;white-space:nowrap}
a.tm-sc{text-decoration:none}
.tm-sc .tm-ci-s{width:34px;height:34px;margin:-4px -2px}
.tm-sc:hover,.tm-sc:focus-visible{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 8%,var(--bg))}
.tm-sc.on{border-color:var(--accent-2);box-shadow:inset 0 0 0 1px var(--accent-2);background:color-mix(in srgb,var(--accent-2) 12%,var(--bg))}
.tm-mcs.end .tm-sc{font-weight:700}
.tm-tr>.tm-rm{grid-area:x;width:28px;height:28px;justify-self:center}
.tm-row:not(.is-lord){cursor:grab}
.tm-row a,.tm-row button{cursor:pointer}
.tm-row.tm-open{background:color-mix(in srgb,var(--accent-2) 5%,var(--surface))}
.tm-tr-ed{display:flex;flex-direction:column;gap:8px;padding:6px 6px 12px 30px;background:color-mix(in srgb,var(--accent-2) 5%,var(--surface))}
.tm-tr-ed .tm-ed{max-width:900px}
.tm-qpw{padding-left:242px}
.tm-qp{display:flex;flex-direction:column;gap:6px}
.tm-qp-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
.tm-qp-h .lnk{margin-left:auto}
.tm-qp .tm-cp{max-width:900px;padding-top:0}
.tm-cs{display:inline-flex;align-items:center;gap:2px 4px;white-space:nowrap}
.tm-card .tm-lv{max-width:820px}
/* 卡片也用一览那种职业按钮（10-19 Teemo：「卡片也是 感觉职业名称太小了」「卡片也采用一览这种职业表达形式」） */
.tm-card .tm-rn{font-size:15px}
.tm-card .tm-mc{margin-top:2px}
.tm-mc .lv-at.lv-auto{font-weight:400;font-style:italic}
/* 右键（手机长按）职业弹出的「职业详情」按钮（10-20 Teemo） */
.tm-ctx{position:fixed;z-index:95;padding:4px;border:1px solid var(--line-strong);border-radius:calc(var(--radius) + 2px);background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.tm-ctx-b{display:flex;align-items:center;gap:4px;padding:8px 14px;border-radius:var(--radius);color:var(--ink);font-size:14px;white-space:nowrap}
.tm-ctx-b b{color:var(--accent)}
.tm-ctx-b:hover,.tm-ctx-b:focus-visible{text-decoration:none;background:color-mix(in srgb,var(--accent) 12%,var(--surface));outline:none}
.tm-card .tm-qp{width:100%;display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--accent-2);border-radius:var(--radius);background:color-mix(in srgb,var(--accent-2) 5%,var(--bg))}

/* 头像：按队伍顺序排成格子（看阵容、二维拖动） */
.tm-fw{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:8px}
.tm-ft{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:10px 6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:center}
.tm-fw>.tm-ft:not(.is-lord){cursor:grab}
.tm-ft a,.tm-ft button{cursor:pointer}
.tm-ft.is-lord{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.tm-ft-i{line-height:0}
.tm-av-f{width:84px;height:84px}
.tm-ft-n{display:flex;align-items:center;justify-content:center;gap:4px;max-width:100%;font-size:14.5px}
.tm-ft-n b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-ft-n .tier{flex:none}
.tm-ft-c{display:flex;align-items:center;justify-content:center;gap:3px;max-width:100%;font-size:12px;color:var(--ink-2)}
.tm-ft-c span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-ft>.tm-rm{position:absolute;right:4px;top:4px;width:24px;height:24px}
.tm-fw .tm-ph{margin:0}

/* 可用的人：不写「第几章起能挖」，头像放大（10-19 Teemo：「不要写第几章能挖。感觉会压缩头像大小」；10-20：「下面的也大一号」） */
.tm-wall{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.tm-w-b{gap:5px;padding:10px 2px 8px}
.tm-av-w{width:80px;height:80px}
.tm-w-n{font-size:14px}

@media (max-width:860px){
  .tm-team .tm-bh{gap:8px}
  .tm-vw{margin-left:0;width:100%}
  .tm-vb{flex:1;justify-content:center;padding:0 6px}
  .tm-card{grid-template-columns:44px minmax(0,1fr) 30px;grid-template-areas:"f b x";gap:8px;padding-left:4px}
  .tm-ed{padding:8px}
  .tm-es-t{width:auto}
  .tm-es-c{flex:1 1 9em;min-width:9em}
  .tm-es-lv{min-width:4.8em}
  .tm-cp-l{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
  .tm-tr{grid-template-columns:minmax(0,1fr) 30px;grid-template-areas:"p x" "r r";gap:4px 6px;padding:8px 0 8px 4px}
  .tm-tst{padding-left:0}
  .tm-av-m{width:54px;height:54px}
  .tm-tp{font-size:17px}
  .tm-sc{height:36px;font-size:15px;padding:0 11px 0 5px}
  .tm-sc .tm-ci-s{width:30px;height:30px}
  .tm-tc-p{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"a t s"}
  .tm-tr-ed,.tm-qpw{padding-left:8px;padding-right:0}
  .tm-card .tm-qp{margin-left:-52px;width:calc(100% + 90px)}
  .tm-fw{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
  .tm-av-f{width:60px;height:60px}
  .tm-ft{padding:8px 4px 6px}
  .tm-ft-n{font-size:13.5px}
  .tm-wall{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
  .tm-av-w{width:66px;height:66px}
  .tm-editing .tm-ed{margin-left:-52px;width:calc(100% + 90px)}   /* 手机：改路线面板铺满整张卡（盖住头像那一栏） */
}
