*{box-sizing:border-box;margin:0;padding:0}:root{--felt: #1e6b41;--felt-dark: #0e3a23;--panel: rgba(0, 0, 0, .38);--gold: #f0c04a;--gold-dim: rgba(240, 192, 74, .35);--text: #f2f2ee;--red: #ff8a8a;--wood: linear-gradient(180deg, #6b4a2b, #4a3018)}body{font-family:Helvetica Neue,PingFang TC,Microsoft JhengHei,sans-serif;background:radial-gradient(ellipse 120% 90% at 50% 30%,var(--felt) 0%,var(--felt-dark) 85%),#0a2b1a;background-attachment:fixed;color:var(--text);min-height:100vh}.app{max-width:960px;margin:0 auto;padding:12px;min-height:100vh}h1,h2,h3{font-weight:600}button{background:linear-gradient(180deg,#f6d06a,#e0a92e);color:#3a2c05;border:none;border-radius:8px;padding:8px 16px;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #00000059;transition:transform .08s,filter .15s}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#ffffff26;color:var(--text)}button.danger{background:linear-gradient(180deg,#c8504f,#9c3231);color:#fff}input,select{background:#ffffffeb;border:none;border-radius:8px;padding:8px 10px;font-size:15px;color:#222}.panel{background:var(--panel);border:1px solid rgba(240,192,74,.14);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:inset 0 1px #ffffff0d,0 2px 8px #00000040}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spread{justify-content:space-between}.banner{background:#b23b3b;color:#fff;text-align:center;padding:6px;border-radius:8px;margin-bottom:8px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#222;color:#fff;padding:10px 20px;border-radius:10px;box-shadow:0 4px 14px #0006;z-index:30;max-width:90vw}.muted{opacity:.7;font-size:13px}.gold{color:var(--gold)}.pos{color:#8fe08f;font-weight:700}.neg{color:var(--red);font-weight:700}@keyframes dealIn{0%{opacity:0;transform:translate(40px,-46px) rotate(8deg) scale(.7)}60%{opacity:1}to{opacity:1;transform:none}}.card{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:80px;border-radius:8px;background:linear-gradient(160deg,#fff,#f2f0e6);box-shadow:0 2px 6px #0006,inset 0 0 0 1px #00000014;-webkit-user-select:none;user-select:none;flex-shrink:0;animation:dealIn .3s ease backwards}.card-corner{position:absolute;top:4px;left:5px;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:700;font-size:14px}.card-corner span+span{font-size:12px}.card-corner-br{top:auto;left:auto;right:5px;bottom:4px;transform:rotate(180deg)}.card-center{font-size:26px}.card-sm{width:42px;height:60px;border-radius:6px}.card-sm .card-corner{font-size:11px;top:3px;left:4px}.card-sm .card-corner span+span{font-size:10px}.card-sm .card-corner-br{top:auto;left:auto;right:4px;bottom:3px}.card-sm .card-center{font-size:19px}.card-red{color:#c62828}.card-black{color:#1a1a1a}.card-back{background:linear-gradient(160deg,#2c56a5,#1d3a70)}.card-back-inner{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:5px;border:2px solid rgba(255,255,255,.5);background:repeating-linear-gradient(45deg,transparent 0 5px,rgba(255,255,255,.14) 5px 10px),repeating-linear-gradient(-45deg,transparent 0 5px,rgba(255,255,255,.1) 5px 10px)}.card-clickable{cursor:pointer;transition:transform .12s,box-shadow .12s}.card-clickable:hover{transform:translateY(-5px);box-shadow:0 6px 12px #00000073}.card-selected{transform:translateY(-12px);outline:3px solid var(--gold);box-shadow:0 8px 14px #00000080,0 0 12px var(--gold-dim)}.card-selected:hover{transform:translateY(-12px)}.hand{display:flex;gap:5px;flex-wrap:wrap;padding:6px 0}.hand-fan{gap:0}.hand-fan .card{margin-right:-18px}.hand-fan .card:last-child{margin-right:0}.hand-thrown .card:nth-child(odd){transform:rotate(-2.5deg)}.hand-thrown .card:nth-child(2n){transform:rotate(2deg)}.player-chip{display:inline-flex;align-items:center;gap:6px;background:#ffffff1a;border-radius:20px;padding:4px 12px}@keyframes turnPulse{0%,to{box-shadow:0 0 0 2px var(--gold),0 0 10px var(--gold-dim)}50%{box-shadow:0 0 0 2px var(--gold),0 0 22px var(--gold)}}.player-chip.current{background:#f0c04a38;animation:turnPulse 1.6s ease-in-out infinite}.player-chip.offline{opacity:.5}.badge{font-size:11px;background:var(--gold);color:#3a2c05;border-radius:6px;padding:1px 6px;font-weight:700}.badge.ready{background:#6fcf6f;color:#0c3a0c}.badge.grey{background:#ffffff40;color:var(--text)}.badge.warn{background:#c8504f;color:#fff}.settle-lines{background:#0000004d;border-left:3px solid var(--gold);border-radius:6px;padding:10px 14px;margin-top:8px;line-height:1.7;white-space:pre-line}@keyframes loserShake{0%,to{transform:rotate(0)}25%{transform:rotate(-1.2deg)}75%{transform:rotate(1.2deg)}}.loser-panel{border:2px dashed var(--red);text-align:center}.loser-btn{font-size:18px;padding:12px 28px}.loser-emoji{display:inline-block;animation:loserShake .5s ease-in-out infinite}.room-list-item{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:8px;background:#ffffff14;margin-bottom:8px}.game-table{margin-top:4px}.turn-hint{color:var(--gold);font-weight:700;margin:6px 0}.stake-input{width:80px}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes panelIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px;animation:overlayIn .25s ease}.overlay-panel{background:radial-gradient(ellipse at 50% 0%,rgba(240,192,74,.08),transparent 60%),linear-gradient(180deg,#175130,#0e3a23);border:2px solid var(--gold);border-radius:16px;width:min(760px,96vw);max-height:88vh;overflow-y:auto;padding:18px;box-shadow:0 12px 48px #0009;animation:panelIn .3s ease}.overlay-title{text-align:center;font-size:22px;color:var(--gold);margin-bottom:10px;letter-spacing:2px}.settle-delta-row{display:flex;justify-content:space-between;padding:6px 10px;border-radius:8px;background:#00000040;margin-bottom:6px;font-size:16px}@media (max-width: 600px){.card{width:46px;height:66px}.card-center{font-size:21px}.card-corner{font-size:12px}.hand-fan .card{margin-right:-14px}}
