*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:system-ui,-apple-system,"PingFang SC",sans-serif;background:#0f2b1d;color:#eee}
.screen{display:none;padding:16px;max-width:900px;margin:0 auto}
.screen.active{display:block}
#lobby{text-align:center;padding-top:50px}
h1{font-size:30px;margin:0 0 4px}
.sub{color:#9bc;margin:0 0 28px}
.card-panel{background:#17392a;border-radius:16px;padding:22px;max-width:360px;margin:0 auto}
.me-info{margin-bottom:14px;color:#cfe;font-size:14px}
button{border:none;border-radius:10px;padding:12px 18px;font-size:16px;cursor:pointer;background:#2d5a42;color:#fff;margin:4px}
button.primary{background:#e8b04b;color:#222;font-weight:700}
button.ghost{background:#23483a}
button.danger{background:#7a2b2b}
button.mini{padding:6px 10px;font-size:13px}
button:disabled{opacity:.4;cursor:not-allowed}
.join-row{display:flex;gap:8px;margin-top:12px}
.join-row input{flex:1;padding:12px;border-radius:10px;border:1px solid #2d5a42;background:#0f2b1d;color:#fff;font-size:16px;text-transform:uppercase}
.msg{margin-top:14px;color:#e8b04b;min-height:22px;font-size:14px}
.lb-box{max-width:420px;margin:20px auto 0;font-size:14px;color:#cfe}
.lb-box .row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #23483a}
.room-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.room-head span{font-weight:700}
.seats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.seat{background:#17392a;border-radius:12px;padding:10px;text-align:center;border:2px solid transparent;min-height:76px}
.seat.turn{border-color:#e8b04b;box-shadow:0 0 12px #e8b04b55}
.seat.landlord{background:#3a2a17}
.seat.me{background:#1e4a35}
.seat.empty{opacity:.4;display:flex;align-items:center;justify-content:center;font-size:13px}
.seat-name{font-weight:700;font-size:14px}
.seat-info{font-size:12px;color:#9bc;margin-top:4px}
.seat-score{font-size:12px;color:#e8b04b}
.bottom-cards{text-align:center;margin:6px 0;min-height:26px}
.bottom-cards .label{font-size:12px;color:#9bc;margin-right:6px}
.mini-card{display:inline-block;background:#fff;color:#222;border-radius:4px;padding:2px 6px;margin:0 2px;font-size:13px;font-weight:700}
.mini-card.back{background:#345;color:#345}
.table-area{min-height:86px;display:flex;align-items:center;justify-content:center}
.last-play{text-align:center}
.lp-who{font-size:12px;color:#9bc;margin-bottom:4px}
.lp-cards{display:flex;justify-content:center;flex-wrap:wrap;gap:2px}
.lp-hint{color:#9bc;font-size:14px}
.my-hand{display:flex;justify-content:center;flex-wrap:wrap;gap:2px;margin:12px 0;min-height:80px;align-items:flex-end}
.card{width:44px;height:64px;background:#fff;color:#222;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border:2px solid transparent;transition:transform .1s;font-weight:700;user-select:none}
.card.selected{transform:translateY(-14px);border-color:#e8b04b}
.card .suit{font-size:14px;color:#c0392b}
.card .rank{font-size:18px;line-height:1}
.card .big{font-size:13px;color:#222}
.actions{display:flex;justify-content:center;flex-wrap:wrap;min-height:50px;align-items:center}
.hint{color:#9bc;font-size:14px}
.status-bar{text-align:center;color:#9bc;font-size:13px;margin-top:8px}
.modal{display:none;position:fixed;inset:0;background:#000a;align-items:center;justify-content:center;padding:16px;z-index:10}
.modal.active{display:flex}
.modal-box{background:#17392a;border-radius:16px;padding:24px;max-width:340px;width:100%;text-align:center}
.modal-box h2{margin:0 0 16px}
.result-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #2d5a42;font-size:14px}
.result-row .pos{color:#6f6}
.result-row .neg{color:#f66}
@media(max-width:480px){
  .card{width:36px;height:54px}.card .rank{font-size:15px}.card.selected{transform:translateY(-10px)}
  .seat{padding:6px;min-height:64px}.seat-name{font-size:12px}
}