:root{--bg:#1c2b22;--felt:#24392c;--panel:#f6f1e4;--ink:#2b2620;--muted:#7a7062;--line:#d8ceb8;--accent:#b5462c;--accent-ink:#fff;--gold:#d9a441;--red:#c0392b;--black:#222;--seat:#f3ecdc;--seat-turn:#ffe7a8;--select:#3b82f6;--danger:#e25b45;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% 40%, var(--felt), var(--bg));min-height:100dvh;margin:0}button{font:inherit;cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:6px 12px}button:disabled{cursor:default;opacity:.55}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}input,select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px}.app{max-width:1200px;margin:0 auto;padding:12px 16px 24px}.banner{background:var(--gold);color:var(--ink);text-align:center;border-radius:6px;margin-bottom:8px;padding:6px}.toast{background:var(--ink);color:#fff;z-index:20;border-radius:6px;padding:8px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.muted{color:var(--muted)}.panel{background:var(--panel);border-radius:10px;max-width:640px;margin:40px auto;padding:20px 24px;box-shadow:0 6px 24px #0000004d}.panel h1,.panel h2{margin-top:0}.login{text-align:center;flex-direction:column;gap:12px;max-width:360px;display:flex}.login .code-input{text-align:center;text-transform:uppercase;letter-spacing:2px}.login-hint{margin:0;font-size:13px}button.link{color:var(--muted);background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.create-room{flex-wrap:wrap;gap:8px;display:flex}.create-room input{flex:160px}.room-list,.seat-list{margin:0;padding:0;list-style:none}.room-list li,.seat-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;display:flex}.room-list .room-name{font-weight:600}.room-list button,.seat-list button{margin-left:auto}.seat-list li.empty{color:var(--muted)}.tag{white-space:nowrap;background:var(--line);color:var(--ink);border-radius:4px;padding:1px 6px;font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.table{grid-template-columns:minmax(0,1fr);gap:10px;display:grid;position:relative}.dock{display:contents}.fx{pointer-events:none;z-index:4;width:0;height:0;position:absolute;top:0;left:0;overflow:visible}.fx-arrows{position:absolute;top:0;left:0;overflow:visible}.arrow{--c:var(--gold);animation:.15s fx-appear}.arrow .line{fill:none;stroke:var(--c);stroke-width:4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.arrow .head{fill:var(--c)}.arrow.attack{--c:#ff5a4c;filter:drop-shadow(0 0 4px #ff4632cc)}.arrow.trick{filter:drop-shadow(0 0 4px #d9a441cc)}.arrow.help{--c:#6fd08c;filter:drop-shadow(0 0 4px #50c878cc)}.arrow.preview{--c:#ecdcb4cc}.arrow.preview .line{stroke-width:3px;stroke-dasharray:8 7;stroke-dashoffset:0;animation:.6s linear infinite fx-march}@keyframes fx-appear{0%{opacity:0}}@keyframes fx-march{to{stroke-dashoffset:-15px}}.fly{opacity:0;margin:-36px 0 0 -26px;animation:.55s ease-in-out forwards fx-fly;position:absolute}.fly .card{box-shadow:0 6px 14px #0009}@keyframes fx-fly{0%{opacity:0;transform:translate(0)scale(.6)rotate(-10deg)}15%{opacity:1;transform:translateY(-12px)scale(1.1)rotate(-6deg)}85%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.95) rotate(4deg)}}.seat.fx-targeted{animation:.5s ease-out 2 fx-targeted}@keyframes fx-targeted{50%{box-shadow:0 0 0 3px #ff5a4c,0 0 18px #ff5a4cb3}}.play-zone{height:var(--play-zone-h);scrollbar-width:thin;scrollbar-color:#ecdcb459 transparent;border:1px dashed #ecdcb44d;border-radius:8px;flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:6px;display:flex;overflow:auto hidden}.play-empty{color:#ecdcb473;margin:auto;font-size:13px}.play{flex-direction:column;flex:none;align-items:center;gap:3px;max-width:130px;margin:0;display:flex}.play.panel{max-width:none}.play:not(.newest){opacity:.75}.play.newest:not(.judge) .card{animation:fx-land .25s var(--land-delay,.44s) backwards ease-out}.judge-flip{perspective:400px}.flip-inner{transform-style:preserve-3d;position:relative}.flip-face{backface-visibility:hidden}.judge-flip .flip-back{position:absolute;inset:0;transform:rotateY(180deg)}.play.judge.newest .flip-inner{animation:.45s ease-in-out .1s backwards judge-flip}@keyframes judge-flip{0%{transform:rotateY(-180deg)translateY(-10px)scale(1.15)}}.verdict{text-align:center;white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;line-height:1.3}.verdict.ok{color:#fff;background:#3f9d58}.verdict.no{color:#efe7d3;background:#ecdcb440}.play.judge.newest .verdict{animation:.3s cubic-bezier(.3,1.6,.6,1) .55s backwards verdict-pop}@keyframes verdict-pop{0%{opacity:0;transform:scale(.4)}}.seat.fx-judging{animation:.75s ease-in-out 2 fx-judging}@keyframes fx-judging{50%{box-shadow:0 0 0 3px var(--gold), 0 0 18px #d9a441cc}}@keyframes fx-land{0%{opacity:0;scale:1.3}}.play-cards{gap:2px;display:flex}.play figcaption{text-align:center;color:#efe7d3;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.3;overflow:hidden}@media (prefers-reduced-motion:reduce){.arrow.preview .line,.play.newest .card,.seat.fx-targeted,.seat-inner.hit,.seat-inner.heal,.pip.lost,.pip.gained,.seat.dead.falling,.seat.dead.falling .seat-inner,.seat.dead.falling .role,.seat.falling .dead-mark,.play.judge.newest .flip-inner,.play.judge.newest .verdict,.seat.fx-judging{animation:none}.death-banner{animation:none;transform:translate(-50%,-50%)}}.table-bar{color:#e8e0cc;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:14px;display:flex}.bar-actions{gap:6px;margin-left:auto;display:flex}.table-bar button{padding:3px 10px}.table-bar button.voice.on{background:var(--gold);border-color:var(--gold)}.table-bar button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.others{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.table{--seat-h:176px;--play-zone-h:136px;--log-h:186px;--card-w:66px}.seat{text-align:left;background:var(--seat);height:var(--seat-h);color:var(--ink);border:2px solid #0000;border-radius:8px;flex-direction:column;padding:8px;display:flex;position:relative;overflow:hidden}.seat[aria-disabled=true]{cursor:default}.seat.turn{background:var(--seat-turn)}.seat.waiting{box-shadow:0 0 0 3px var(--gold)}.seat.selectable{border-color:var(--select);cursor:pointer}.seat.selected{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}.seat.chained{border-style:dashed;border-color:#6b6f78}.chain-mark{filter:drop-shadow(0 1px 1px #0006);font-size:20px;line-height:1;animation:.35s ease-out chain-in;position:absolute;bottom:4px;right:6px}@keyframes chain-in{0%{opacity:0;transform:scale(1.8)rotate(-25deg)}to{opacity:1;transform:none}}.skill-tag.spent{opacity:.45;text-decoration:line-through}.mark-tag{color:#ffe9c4;background:#8b1c1c;border-radius:3px;padding:0 4px;font-size:12px}.pile-tag{color:#fff;background:#5b4636;border-radius:3px;padding:0 4px;font-size:12px}.tag.face-down{color:#fff;background:#4a4a4a}.tag.drunk{color:#ffe9c4;background:#8b1c1c;font-weight:700}.seat.dead{background:#cfc8b8}.seat.dead .seat-inner{filter:grayscale();opacity:.6}.seat.dead.falling{animation:1.2s ease-out seat-fall-bg}.seat.dead.falling .seat-inner{animation:1.2s ease-out seat-fall}@keyframes seat-fall-bg{0%{background:var(--seat);box-shadow:0 0 0 3px #fff,0 0 24px #fffc}25%{box-shadow:0 0 0 3px var(--red), 0 0 18px #c8281eb3}}@keyframes seat-fall{0%{filter:none;opacity:1}15%{filter:brightness(1.5);opacity:1}}.seat.dead.falling .role{animation:.6s ease-out .2s backwards role-flip}@keyframes role-flip{0%{transform:rotateY(90deg)scale(1.4)}}.seat-inner{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex}.seat-inner.hit{animation:.45s seat-shake}@keyframes seat-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.hit-flash{pointer-events:none;background:#dc281e8c;border-radius:6px;animation:.6s ease-out forwards hit-flash;position:absolute;inset:0}.hit-flash.thunder{background:#96beffbf}.hit-flash.fire{background:linear-gradient(#ffc83c1a,#ff3c1473 45%,#ff7814d9);animation:.75s ease-out forwards fire-flash}@keyframes fire-flash{0%{opacity:0;transform-origin:bottom;transform:scaleY(.4)}25%{opacity:1;transform-origin:bottom;transform:scaleY(1.05)}to{opacity:0;transform-origin:bottom;transform:scaleY(1)}}.hit-flash.heal{background:radial-gradient(circle at 50% 55%,#78e68cb3,#50c86e40 70%);animation:.8s ease-out forwards heal-flash}@keyframes heal-flash{0%{opacity:0}30%{opacity:1}to{opacity:0}}.seat-inner.heal{animation:.8s ease-out heal-glow}@keyframes heal-glow{40%{filter:brightness(1.12)}}@keyframes hit-flash{0%{opacity:1}to{opacity:0}}.floaters{pointer-events:none;z-index:2;position:absolute;top:-14px;right:10px}.floater{color:#ff4a3c;text-shadow:0 2px #3a0a06,0 0 8px #ff3c2899;white-space:nowrap;font-size:26px;font-weight:800;animation:1.3s ease-out forwards float-up;position:absolute;right:0}.floater.fire{color:#ffae3c;text-shadow:0 2px #4a1a00,0 0 10px #ff8c1ed9}.floater.thunder{color:#9cc4ff;text-shadow:0 2px #102040,0 0 8px #78aaffcc}.floater.heal{color:#5fe07a;text-shadow:0 2px #0d3a16,0 0 8px #50dc6eb3}@keyframes float-up{0%{opacity:0;transform:translateY(10px)scale(.6)}20%{opacity:1;transform:translateY(0)scale(1.25)}to{opacity:0;transform:translateY(-30px)scale(1)}}.seat-head{align-items:center;gap:6px;min-width:0;font-weight:600;display:flex}.seat-no{background:var(--ink);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;display:inline-grid}.seat-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.seat-sub{white-space:nowrap;gap:6px;min-width:0;font-size:13px;display:flex}.seat-sub .general{text-overflow:ellipsis;overflow:hidden}.role{white-space:nowrap;background:var(--line);border-radius:4px;padding:0 6px;font-size:12px}.role.lord{background:#f0c419}.role.loyalist{background:#f2d38a}.role.rebel{color:#fff;background:#79b86b}.role.renegade{color:#fff;background:#7d5ba6}.role.guess{cursor:pointer;outline-offset:-1px;opacity:.8;outline:1px dashed}.role.guess.unknown{background:0 0}.general{color:var(--ink);font-weight:600}.kingdom{color:#fff;background:#777;border-radius:4px;padding:0 5px;font-size:12px}.kingdom.wei{background:#3d63b8}.kingdom.shu{background:#c0392b}.kingdom.wu{background:#2e8b57}.kingdom.qun{background:#6b6b6b}.kingdom.god{background:#b8860b}.seat-skills{flex-wrap:wrap;flex:1 1 0;align-content:flex-start;gap:3px;min-height:0;display:flex;overflow:hidden}.skill-tag{border:1px solid var(--line);cursor:help;background:#fff8e8;border-radius:3px;padding:0 4px;font-size:11px}.skill-tag.lord{border-color:var(--gold);background:#fff1c9}.modal-body.wide{max-width:860px}.general-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.general-card{text-align:left;border:2px solid var(--line);background:#fffdf7;border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.general-card:hover{border-color:var(--accent)}.general-head{align-items:center;gap:6px;display:flex}.general-name{font-size:18px;font-weight:700}.general-hp{color:var(--red);letter-spacing:1px;margin-left:auto}.skill-list{gap:4px;margin:0;padding:0;font-size:13px;line-height:1.5;list-style:none;display:grid}.skill-list b{margin-right:6px}.skill-list .tag{margin-left:4px;font-weight:400}.guanxing-row{border:1px dashed var(--line);border-radius:6px;min-height:98px;padding:4px}.hp{gap:3px;display:flex}.pip{border:1px solid var(--red);border-radius:50%;width:12px;height:12px}.pip.on{background:var(--red)}.pip.gained{animation:.7s ease-out pip-gained}@keyframes pip-gained{0%{transform:scale(.2);box-shadow:0 0 #5fe07ae6}50%{transform:scale(1.5);box-shadow:0 0 10px 3px #5fe07acc}to{box-shadow:none;transform:scale(1)}}.pip.lost{animation:.7s ease-out pip-lost}@keyframes pip-lost{0%{background:var(--red);transform:scale(1)}30%{box-shadow:0 0 8px var(--red);background:#fff;transform:scale(1.6)}to{background:0 0;transform:scale(1)}}.seat-cards{align-items:center;gap:6px;font-size:13px;display:flex}.judge-tag{background:var(--ink);color:#fff;border-radius:3px;padding:0 4px;font-size:12px}.equips{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:16px;gap:1px 4px;height:33px;margin:0;padding:0;font-size:12px;line-height:16px;list-style:none;display:grid;overflow:hidden}.equips li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.equips .slot{min-width:16px;color:var(--muted);display:inline-block}.equips .equip-short{display:none}.dead-mark{color:var(--red);text-shadow:0 0 2px #fff;place-items:center;font-size:28px;font-weight:700;display:grid;position:absolute;inset:0;transform:rotate(-12deg)}.seat.falling .dead-mark{animation:.35s cubic-bezier(.3,1.6,.6,1) .35s backwards stamp}@keyframes stamp{0%{opacity:0;transform:rotate(-30deg)scale(3)}}.death-banner{z-index:6;color:#f3e6c8;white-space:nowrap;pointer-events:none;background:linear-gradient(90deg,#0000,#140806e6 15% 85%,#0000);border-radius:8px;align-items:center;gap:12px;padding:10px 28px;animation:2.2s ease-out forwards death-banner;display:flex;position:absolute;top:42%;left:50%}.death-banner .death-name{font-size:22px;font-weight:700}.death-banner .death-word{color:#ff5a4c;letter-spacing:4px;font-size:26px;font-weight:800}.death-banner .role{padding:2px 10px;font-size:16px}@keyframes death-banner{0%{opacity:0;transform:translate(-50%,-50%)scaleX(.3)}15%{opacity:1;transform:translate(-50%,-50%)scaleX(1)}80%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-60%)}}.center{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px;display:grid}.processing,.log{color:#efe7d3;background:#00000040;border-radius:8px;padding:10px}.waiting-line{height:22px;color:var(--gold);white-space:nowrap;text-overflow:ellipsis;margin-top:8px;font-size:14px;line-height:22px;overflow:hidden}.log{height:var(--log-h);margin:0;font-size:13px;line-height:1.6;list-style:none;overflow-y:auto}.log .turn-line{color:var(--gold);margin-top:4px}.mine{grid-template-columns:170px minmax(0,1fr);align-items:start;gap:10px;display:grid}.my-cards{gap:8px;display:grid}.card-row{flex-wrap:wrap;gap:6px;display:flex}.hand{flex-wrap:nowrap;min-height:98px;padding-top:10px}.hand>.card{flex:none}.hand>.card+.card{margin-left:min(0px, calc((100% - var(--n) * var(--card-w)) / max(var(--n) - 1, 1) - 6px))}.hand>.card:hover,.hand>.card.selected{z-index:1}.my-equips{min-height:72px}.card{width:66px;height:92px;color:var(--black);background:#fffdf7;border:1px solid #bbb;border-radius:6px;flex-direction:column;justify-content:space-between;align-items:center;padding:4px;transition:transform .12s;display:flex;position:relative}.card[aria-disabled=true]{cursor:default}.card.red{color:var(--red)}.card .corner{align-self:flex-start;font-size:13px;font-weight:600}.card .name{writing-mode:horizontal-tb;text-align:center;color:var(--ink);margin-bottom:8px;font-size:13px;font-weight:600}.card.small{width:52px;height:72px}.card.small .name{margin-bottom:4px;font-size:11px}.card.selectable{border-color:var(--select);cursor:pointer}.card.selectable:hover{transform:translateY(-3px)}.card.selected{border:2px solid var(--danger);transform:translateY(-10px);box-shadow:0 4px 10px #0000004d}.card.dimmed{opacity:.45}.card:has(.via) .name{margin-bottom:15px}.card .via{text-align:center;color:#fff;white-space:nowrap;background:#7d5ba6d9;border-radius:3px;font-size:9px;line-height:1.2;position:absolute;bottom:2px;left:2px;right:2px;overflow:hidden}.card.back{background:repeating-linear-gradient(45deg,#7b2d1f,#7b2d1f 6px,#8e3a29 6px 12px);justify-content:center}.card.back .name{color:#fff;margin:0}.action-bar{z-index:5;background:var(--panel);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;padding:8px 10px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 16px #00000059}.action-bar.idle{color:var(--muted)}.action-bar .action-text{flex-direction:column;flex:240px;gap:2px;min-width:0;display:flex}.action-bar .hint{font-size:14px}.skill.active{background:var(--gold);border-color:var(--gold)}.countdown{font-variant-numeric:tabular-nums;min-width:32px;font-weight:600}.countdown.urgent{color:var(--danger)}.modal{z-index:10;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-body{background:var(--panel);border-radius:10px;width:100%;max-width:560px;max-height:calc(100vh - 32px);padding:18px 20px;overflow-y:auto}.modal-body h3{margin-top:0}.result{border-collapse:collapse;width:100%}.result td{border-bottom:1px solid var(--line);padding:4px 6px}.result tr.win{font-weight:600}.tabs{border-bottom:2px solid var(--line);gap:4px;margin:18px 0 8px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-radius:6px 6px 0 0;font-weight:600}.tabs button.on{background:var(--line);color:var(--ink)}.stats{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.stat{border:1px solid var(--line);background:#fffdf7;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:8px 10px;display:flex}.stat.small{font-size:13px}.stat-num{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.game-list{margin:0;padding:0;list-style:none}.game-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;display:flex}.game-list button{margin-left:auto}.game-meta{flex-direction:column;min-width:0;font-size:14px;display:flex}.result.win,.result.lose,.result.draw{color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.result.win{background:var(--accent)}.result.lose{background:#8a8174}.result.draw{background:var(--gold)}.device-link{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px;font-size:14px;display:flex}.device-link-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.device-link-row input{text-transform:uppercase;flex:0 200px;min-width:0}.pair-code{letter-spacing:2px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px}.ranking-boards{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.ranking-boards button{padding:4px 10px;font-size:13px}.ranking-boards button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.rank-list{margin:0;padding:0;list-style:none}.rank-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:6px 0;display:flex}.rank-list li.mine{border-bottom:none;font-weight:700}.rank{text-align:center;font-variant-numeric:tabular-nums;flex:none;width:32px;font-weight:700}.rank-player{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rank-score{font-variant-numeric:tabular-nums;font-weight:600}.deck-choice{align-items:center;gap:8px;display:inline-flex}.room-settings{flex-wrap:wrap;gap:8px 20px;display:flex}.room-settings .deck-choice{white-space:nowrap;max-width:100%}.room-settings select{flex:auto;min-width:0;max-width:100%}.replay-bar{background:var(--panel);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;display:flex}.replay-bar label{align-items:center;gap:6px;display:inline-flex}.replay-bar .speeds{display:inline-flex}.replay-bar .speeds button{border-radius:0;padding:4px 10px}.replay-bar .speeds button:first-child{border-radius:6px 0 0 6px}.replay-bar .speeds button:last-child{border-radius:0 6px 6px 0}.replay-bar .speeds button.on{background:var(--gold);border-color:var(--gold)}.replay-bar .progress{background:var(--line);border-radius:3px;flex:120px;height:6px;overflow:hidden}.replay-bar .progress span{background:var(--accent);height:100%;transition:width .2s;display:block}@media (width<=720px){.table{--seat-h:112px;--play-zone-h:108px;--log-h:58px;--card-w:56px;flex-direction:column;gap:6px;min-height:calc(100dvh - 16px);display:flex}.app{padding:6px 10px 10px}.panel{margin:16px auto;padding:16px}.center,.mine{grid-template-columns:minmax(0,1fr)}.others{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.seat{border-radius:6px;padding:4px;font-size:11px}.seat-inner,.seat-head,.seat-sub{gap:2px}.seat-head,.seat-sub{font-size:11px}.seat-no{width:15px;height:15px;font-size:10px}.seat-head .tag,.seat-sub .role,.seat-sub .kingdom{padding:0 2px;font-size:9px}.seat-skills{flex:none;gap:2px;height:14px}.skill-tag{padding:0 2px;font-size:9px}.hp{gap:2px}.pip{width:7px;height:7px}.seat-cards{gap:3px;font-size:10px}.seat-cards .judge-tag,.seat-cards .mark-tag,.seat-cards .pile-tag{padding:0 2px;font-size:9px}.equips{grid-auto-rows:12px;gap:1px 2px;height:25px;font-size:10px;line-height:12px}.others .seat.me{outline-offset:-2px;outline:2px dashed #ffffffd9}.others .seat.me .seat-no{background:var(--gold);color:var(--ink)}.center{min-height:calc(var(--play-zone-h) + 34px + 6px + var(--log-h));flex-direction:column;flex:1 1 0;gap:6px;display:flex}.center .processing{flex:none}.center .log{height:auto;min-height:var(--log-h);flex:1 1 0}.processing,.log{padding:6px}.waiting-line{height:18px;margin-top:4px;font-size:12px;line-height:18px}.equips .slot{min-width:0;margin-right:2px}.equips .equip-full{display:none}.equips .equip-short{display:inline}.log{font-size:11px;line-height:1.5}.dock{z-index:5;background:var(--bg);grid-template-columns:minmax(0,1fr);gap:6px;margin:0 -10px -10px;padding:6px 10px 10px;display:grid;position:sticky;bottom:0;box-shadow:0 -6px 14px #0006}.dock .action-bar{min-height:48px;box-shadow:none;padding:6px 8px;position:static}.my-cards{align-items:flex-end;gap:6px;display:flex}.my-equips{flex-wrap:nowrap;flex:none;gap:3px}.my-equips:empty{display:none}.my-equips .card.small{width:38px;height:54px}.hand{flex:1;min-width:0}.card{width:56px;height:80px}.card.small{width:46px;height:64px}.hand{min-height:88px;padding-top:8px}.my-equips{min-height:0}.action-bar .action-text{flex-basis:100%}.table-bar{gap:2px 8px;font-size:12px}.table-bar button{padding:2px 6px;font-size:12px}.bar-actions{margin-left:0}.death-banner{max-width:calc(100vw - 32px)}}.card .name.fire{color:#d9480f}.card .name.thunder{color:#5f3dc4}.tip{z-index:30;color:#f6f1e4;pointer-events:none;background:#1e1a14f2;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;font-size:13px;line-height:1.5;animation:.12s ease-out tip-in;display:flex;position:fixed;box-shadow:0 6px 18px #0006}.tip b{color:var(--gold)}@keyframes tip-in{0%{opacity:0;transform:translateY(4px)}}[data-tip-tap]{cursor:help}.action-bar .card-desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.role-counts{align-items:center;gap:4px;display:inline-flex}.role-counts .role{font-weight:600}.pick-info{border:1px solid var(--line);background:#fffdf7;border-radius:8px;gap:4px;margin-bottom:10px;padding:8px 10px;font-size:13px;display:grid}.pick-info .skill-list{font-size:12px}.codex-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.codex-bar input{flex:160px;max-width:240px}.codex-filter{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.codex-bar .codex-filter{margin-bottom:0}.codex-filter button{padding:3px 10px;font-size:13px}.codex-filter button.on{background:var(--ink);border-color:var(--ink);color:#fff}.codex-list{margin:0;padding:0;list-style:none}.codex-item{border-bottom:1px solid var(--line);padding:10px 0}.codex-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.codex-name{font-size:15px}.codex-head .tag.junzheng{color:#fff;background:#5f3dc4}.codex-head .tag.pack{color:#fff;background:#8b5a2b}.codex-skills{gap:4px;margin:6px 0 0;display:grid}.codex-skills dt{margin-right:6px;font-weight:600;display:inline}.codex-skills dt .skill-tag{margin-left:4px}.codex-skills dd{margin:0;font-size:14px;line-height:1.6;display:inline}.codex-desc{margin:4px 0 2px;font-size:14px;line-height:1.6}.codex-deck{margin:0;font-size:12px}.codex-group h3{margin:14px 0 2px;font-size:15px}
