/* 天黑请闭眼 · 狼人杀（开房间页 .ww-create 与房间页 .ww-game 共用） */
.ww-tag{display:inline-block;font-size:11px;padding:1px 7px;margin:0 6px;border-radius:99px;font-weight:600;vertical-align:1px;white-space:nowrap}
.ww-wolf{background:#fde2e2;color:#991b1b}.ww-god{background:#e0ecff;color:#1e40af}.ww-villager{background:#e6f7ec;color:#166534}.ww-third{background:#f3e8ff;color:#6b21a8}
.ww-rules{border-top:1px solid rgba(127,127,127,.2);padding:10px 0}.ww-rules summary{cursor:pointer;font-weight:700;font-size:15px}
.ww-rules li,.ww-rules p{line-height:1.75;font-size:14px}.ww-role-list{padding-left:18px}

/* ---------------- 开房间页 ---------------- */
.ww-create .ww-hero h2{font-size:22px}
.ww-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.ww-mode{display:block;text-align:left;width:100%;min-width:0;padding:14px;border:2px solid #f3caca;background:#fff;color:#111827;cursor:pointer}
.ww-mode b{display:block;font-size:17px;margin-bottom:4px}.ww-mode span{display:block;font-size:13px;line-height:1.6;color:#4b5563}
.ww-mode[aria-pressed=true]{border-color:#b91c1c;background:#fff5f5;box-shadow:0 0 0 3px rgba(185,28,28,.12)}
.ww-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ww-presets button{min-width:0;width:auto;padding:7px 12px;font-size:14px}
.ww-presets button[aria-pressed=true]{background:#b91c1c;color:#fff}
.ww-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ww-role{display:flex;align-items:center;gap:8px;border:1px solid #f3e1e1;padding:8px 10px;background:#fffdfd}
.ww-role b{flex:1;font-size:15px}.ww-role small{display:block;color:#6b7280;font-weight:400;font-size:12px}
.ww-step{display:flex;align-items:center;gap:6px}.ww-step button{min-width:0;width:34px;height:34px;padding:0;font-size:18px}
.ww-step output{min-width:22px;text-align:center;font-weight:700;font-size:16px}
.ww-sum{font-size:15px;margin:10px 0 0}.ww-sum b{color:#b91c1c;font-size:20px}
.ww-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 14px}
.ww-opts label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#374151}
.ww-opts label.ww-check{flex-direction:row;align-items:center;gap:8px;font-size:14px}
.ww-opts label.ww-check input{width:18px;height:18px}
.ww-go{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ww-create .ww-wide{grid-column:1/-1}
@media (max-width:640px){.ww-presets button,.ww-step button{width:auto}.ww-step button{width:34px}}

/* 传手机模式（两个页面都可能用到） */
.ww-pass{position:fixed;inset:0;z-index:300;background:#0b0d14;color:#f5f1e8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;box-sizing:border-box;overflow:auto}
.ww-pass h2{font-size:28px;margin:0 0 10px}.ww-pass p{color:#c9c2b3;line-height:1.7;max-width:420px}
.ww-pass button{margin-top:18px;min-width:220px;font-size:17px}.ww-pass .ww-big{font-size:46px;font-weight:800;margin:10px 0}

/* ---------------- 房间页 ---------------- */
.ww-game{--bg:#0b0d14;--bg2:#141a2e;--panel:rgba(255,255,255,.055);--line:rgba(255,255,255,.12);--ink:#f1ece2;--soft:#a9a395;
  --gold:#e0b45a;--gold-ink:#1b1406;--red:#e2574c;--blue:#6ea0ff;--green:#5cc488;--purple:#b98cff;--btn:#c2410c;
  margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(120% 70% at 50% 0%,var(--bg2) 0%,var(--bg) 62%);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;transition:background-color .6s}
.ww-game.is-day{--bg:#f4ecdc;--bg2:#fff8ea;--panel:rgba(120,80,30,.06);--line:rgba(110,70,30,.18);--ink:#2b1f14;--soft:#7a6650;
  --gold:#b7791f;--gold-ink:#fff8ea;--red:#c0392b;--blue:#2457c5;--green:#1f7a45;--purple:#7c3aed;--btn:#b45309}
.ww-game *{box-sizing:border-box}
.ww-game button{font:inherit;color:inherit;cursor:pointer}
.ww-game button:disabled{opacity:.45;cursor:not-allowed}
.ww-game :focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.ww-app{max-width:560px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top)) 14px calc(30px + env(safe-area-inset-bottom))}
.ww-loading{text-align:center;color:var(--soft);padding:80px 0}
.ww-top{display:flex;align-items:center;gap:8px;padding:4px 0 10px}
.ww-top h1{font-size:18px;margin:0;letter-spacing:.06em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww-top h1 small{font-size:12px;color:var(--soft);font-weight:500;letter-spacing:0;margin-left:6px}
@media (max-width:420px){.ww-top h1 small{display:none}}
.ww-icon{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:6px 10px;font-size:13px;white-space:nowrap}
.ww-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}
.ww-panel h3{margin:0 0 8px;font-size:15px}
.ww-soft{color:var(--soft);font-size:13px}
.ww-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 16px;border-radius:12px;border:0;background:var(--btn);color:#fff;font-weight:700;font-size:16px}
.ww-btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);font-weight:600}
.ww-btn.gold{background:var(--gold);color:var(--gold-ink)}
.ww-btn.danger{background:transparent;border:1px solid var(--red);color:var(--red);font-weight:600}
.ww-btn.block{display:flex;width:100%}
.ww-btn.small{min-height:34px;padding:6px 12px;font-size:14px}
.ww-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ww-row>.ww-btn{flex:1 1 auto}
.ww-input{width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.18);color:var(--ink);font:inherit;font-size:16px}
.is-day .ww-input{background:#fff}
.ww-err{color:var(--red);font-size:14px;min-height:0;margin:8px 0 0}

/* 阶段横幅 */
.ww-banner{border-radius:18px;padding:16px;margin-bottom:12px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid var(--line);text-align:center;position:relative;overflow:hidden}
.ww-banner .ww-phase{font-size:12px;letter-spacing:.2em;color:var(--soft)}
.ww-banner .ww-label{font-size:22px;font-weight:800;margin:4px 0 2px;letter-spacing:.04em}
.ww-banner .ww-sub{font-size:13px;color:var(--soft);min-height:1em}
.ww-timer{font:700 26px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:6px;font-variant-numeric:tabular-nums}
.ww-timer.is-low{color:var(--red)}
.ww-bar{height:4px;border-radius:4px;background:var(--line);margin-top:10px;overflow:hidden}.ww-bar i{display:block;height:100%;background:var(--gold);transition:width .25s linear}
.is-night .ww-banner::before{content:"";position:absolute;right:-24px;top:-24px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff7dc,#e5c97a 60%,#b98f37);opacity:.18}

/* 行动面板 */
.ww-action{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.ww-action h3{color:var(--gold)}
.ww-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin-top:10px}
.ww-chip{min-height:52px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.05);padding:6px 4px;line-height:1.2;text-align:center}
.ww-chip b{display:block;font-size:17px}.ww-chip span{display:block;font-size:11px;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ww-chip[aria-pressed=true]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}.ww-chip[aria-pressed=true] span{color:inherit}
.ww-note{font-size:13px;color:var(--soft);margin:6px 0 0;line-height:1.6}
.ww-result{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.07);font-weight:700}
.ww-result.is-wolf{color:var(--red)}.ww-result.is-good{color:var(--green)}
.ww-extra{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}

/* 座位盘 */
.ww-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (min-width:420px){.ww-seats{grid-template-columns:repeat(5,1fr)}}
.ww-seat{position:relative;min-height:74px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.04);padding:6px 4px 5px;text-align:center;line-height:1.2;color:inherit}
.ww-seat .n{display:block;font-size:20px;font-weight:800}
.ww-seat .nm{display:block;font-size:11px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ww-seat .tg{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;margin-top:3px;min-height:15px}
.ww-seat .tg i{font-style:normal;font-size:10px;padding:0 4px;border-radius:6px;background:rgba(255,255,255,.12);white-space:nowrap}
.ww-seat .tg i.t-wolf{background:var(--red);color:#fff}.ww-seat .tg i.t-god{background:var(--blue);color:#fff}
.ww-seat .tg i.t-villager{background:var(--green);color:#fff}.ww-seat .tg i.t-third{background:var(--purple);color:#fff}
.ww-seat .tg i.t-gold{background:var(--gold);color:var(--gold-ink)}
.ww-game .ww-seat:disabled{opacity:1;cursor:default}
.ww-seat.is-dead{opacity:.42;filter:grayscale(.8)}.ww-seat.is-dead .n::after{content:" ✝";font-size:13px}
.ww-seat.is-me{border-color:var(--gold)}
.ww-seat.is-speaking{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold),0 0 18px rgba(224,180,90,.45)}
.ww-seat.is-empty{border-style:dashed;color:var(--soft)}
.ww-seat.can-pick{border-color:var(--gold);background:rgba(224,180,90,.12)}
.ww-seat[aria-pressed=true]{background:var(--gold);color:var(--gold-ink)}.ww-seat[aria-pressed=true] .nm{color:inherit}
.ww-seat .ok{position:absolute;top:4px;right:6px;font-size:12px;color:var(--green)}

/* 身份牌 */
.ww-card{position:relative;height:250px;perspective:1100px;margin-bottom:12px;cursor:pointer}
.ww-face{position:absolute;inset:0;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .5s ease}
.ww-back{background:linear-gradient(160deg,#2a2f55,#14172b);border:1px solid rgba(255,255,255,.15);color:#f1ece2}
.ww-back .moon{width:66px;height:66px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff7dc,#e5c97a 60%,#b98f37);box-shadow:0 0 40px rgba(240,210,130,.4);margin-bottom:14px}
.ww-front{transform:rotateY(180deg);background:#f7f1e3;color:#2a1d10}
.ww-card.open .ww-back{transform:rotateY(-180deg)}.ww-card.open .ww-front{transform:rotateY(0)}
.ww-front .name{font-size:38px;font-weight:800;margin:4px 0}.ww-front .ab{font-size:13.5px;line-height:1.65;color:#4a3a28;max-width:420px}
.ww-front .fx{margin-top:8px;font-weight:700;font-size:13.5px;color:#7f1d1d}
.ww-badge{display:inline-block;font-size:12px;padding:2px 10px;border-radius:99px;font-weight:700;color:#fff}
.b-wolf{background:#7f1d1d}.b-god{background:#1e3a8a}.b-villager{background:#166534}.b-third{background:#6b21a8}

/* 公告 / 投票 / 聊天 */
.ww-log{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}
.ww-log li{padding:7px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.55}
.ww-log li:last-child{border-bottom:0}
.ww-log .d{display:inline-block;min-width:54px;color:var(--soft);font-size:12px}
.ww-log li.k-death{color:var(--red)}.ww-log li.k-phase{font-weight:700}.ww-log li.k-vote{color:var(--gold)}
.ww-ballots{font-size:12.5px;color:var(--soft);margin:2px 0 0 54px}
.ww-chat{display:flex;flex-direction:column;gap:8px}
.ww-tabs{display:flex;gap:6px}.ww-tabs button{flex:1;border:1px solid var(--line);background:transparent;border-radius:10px;padding:6px;font-size:13px}
.ww-tabs button[aria-pressed=true]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.ww-msgs{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.ww-msgs li{font-size:14px;line-height:1.5;padding:6px 10px;border-radius:12px;background:rgba(255,255,255,.06);word-break:break-word}
.ww-msgs li b{font-size:12px;color:var(--gold);margin-right:6px}.ww-msgs li.ch-wolf{background:rgba(226,87,76,.16)}.ww-msgs li.ch-wolf b{color:var(--red)}
.ww-send{display:flex;gap:8px}.ww-send .ww-input{flex:1;min-width:0}.ww-send .ww-btn{flex:none}

/* 法官台 */
.ww-judge{border-color:var(--purple)}
.ww-script{font-size:18px;line-height:1.7;font-weight:600;padding:12px 14px;border-radius:12px;background:rgba(185,140,255,.12);border-left:4px solid var(--purple)}
.ww-actors{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ww-actors button{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:10px;padding:6px 10px;font-size:13px}
.ww-actors button.done{border-color:var(--green);color:var(--green)}
.ww-actors button[aria-pressed=true]{background:var(--purple);color:#fff}
.ww-table{width:100%;border-collapse:collapse;font-size:13.5px}
.ww-table td,.ww-table th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ww-table th{color:var(--soft);font-weight:600;font-size:12px}
.ww-table tr.is-dead td{opacity:.5;text-decoration:line-through}
.ww-masked .ww-secret{filter:blur(7px)}
.ww-next{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom));z-index:5;box-shadow:0 10px 30px rgba(0,0,0,.35)}

/* 结算 */
.ww-win{text-align:center;padding:20px 14px}
.ww-win h2{font-size:26px;margin:4px 0}
.ww-win.side-good h2{color:var(--green)}.ww-win.side-wolf h2{color:var(--red)}.ww-win.side-third h2{color:var(--purple)}

/* 浮层 */
.ww-overlay{position:fixed;inset:0;z-index:200;background:rgba(5,7,14,.82);display:flex;align-items:center;justify-content:center;padding:18px}
.ww-sheet{width:min(520px,100%);max-height:88vh;overflow:auto;background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:18px}
.ww-sheet h2{margin:0 0 10px;font-size:20px}
.ww-qr{display:block;width:min(300px,70vw);aspect-ratio:1;margin:8px auto;background:#fff;border-radius:12px;padding:8px}
.ww-code{font:800 40px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-align:center;color:var(--gold);margin:6px 0}
.ww-link{display:flex;gap:6px;align-items:center;font-size:13px;margin-top:8px;word-break:break-all}
.ww-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:400;background:#111827;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;max-width:90vw;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.ww-gone{text-align:center;padding:80px 10px;color:var(--soft);line-height:1.8}

/* 投屏 / 宽屏 */
@media (min-width:980px){
  .ww-app.is-wide{max-width:1180px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0 18px;align-items:start}
  .ww-app.is-wide>.ww-top,.ww-app.is-wide>.ww-banner{grid-column:1/-1}
}
.ww-screen .ww-seat{min-height:96px}.ww-screen .ww-seat .n{font-size:28px}.ww-screen .ww-seat .nm{font-size:14px}
.ww-screen .ww-banner .ww-label{font-size:34px}.ww-screen .ww-timer{font-size:40px}.ww-screen .ww-log li{font-size:17px}
@media (prefers-reduced-motion:reduce){.ww-game *{transition:none!important;animation:none!important}}
.ww-game [hidden],.ww-create [hidden]{display:none!important}
