:root{--green: #1e5631;--dark-green: #122d1c;--mid-green: #2d7a48;--card-red: #c0392b;--card-w: 58px;--card-h: 86px;--shadow: rgba(0,0,0,.35)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--green);color:#f0f0f0;font-family:system-ui,-apple-system,sans-serif;min-height:100vh;-webkit-user-select:none;user-select:none}.center-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;text-align:center;padding:24px}.btn{padding:10px 22px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.btn:disabled{opacity:.4;cursor:default}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:#f5a623;color:#1a1a1a}.btn-secondary{background:#4a9e6f;color:#fff}.btn-danger{background:#c0392b;color:#fff}.btn-ghost{background:#ffffff1f;color:#fff}.card{width:var(--card-w);height:var(--card-h);border-radius:7px;background:#fff;border:1.5px solid #ccc;display:flex;flex-direction:column;justify-content:space-between;padding:4px 5px;cursor:pointer;position:relative;box-shadow:2px 3px 6px var(--shadow);transition:transform .12s,box-shadow .12s;flex-shrink:0}.card.selected{transform:translateY(-14px);box-shadow:2px 8px 16px var(--shadow);border-color:#f5a623;border-width:2.5px}.card.face-down{background:repeating-linear-gradient(135deg,#1a3a8a,#1a3a8a 5px,#2455c4 5px,#2455c4 10px);cursor:default;border-color:#1a3a8a}.card.dim{opacity:.55}.card.clickable:not(.face-down):hover{transform:translateY(-4px)}.card.clickable.selected:hover{transform:translateY(-14px)}.card-corner{display:flex;flex-direction:column;align-items:center;line-height:1.1;font-size:13px;font-weight:700}.card-corner.bottom{transform:rotate(180deg)}.card-suit-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:22px}.hearts,.diamonds{color:var(--card-red)}.spades,.clubs{color:#111}.joker-color{color:#7b2fbe}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:32px;padding:24px}.home h1{font-size:3rem;letter-spacing:-1px}.home .subtitle{opacity:.7;font-size:1.1rem}.home-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.home-actions .btn{width:100%}.join-row{display:flex;gap:8px}.input{flex:1;padding:10px 14px;border-radius:8px;border:1.5px solid rgba(255,255,255,.25);background:#ffffff1a;color:#fff;font-size:15px;outline:none}.input::placeholder{color:#fff6}.input:focus{border-color:#f5a623}.lobby{padding:24px;max-width:600px;margin:0 auto}.lobby h2{font-size:1.6rem;margin-bottom:4px}.game-code{font-size:2rem;font-weight:800;letter-spacing:6px;background:#ffffff1f;padding:10px 24px;border-radius:10px;margin:12px 0;display:inline-block}.seats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.seat-btn{padding:14px 8px;border-radius:10px;border:2px solid rgba(255,255,255,.2);background:#ffffff12;color:#fff;font-size:14px;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.seat-btn.taken{opacity:.5;cursor:default}.seat-btn.mine{border-color:#f5a623;background:#f5a6232e}.seat-btn:not(.taken):not(.mine):hover{background:#ffffff26}.seat-label{font-weight:700;font-size:16px}.seat-name{font-size:12px;margin-top:4px;opacity:.8}.name-row{display:flex;gap:8px;margin-bottom:16px}.name-row .input{flex:1}.lobby-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.game-board{display:flex;flex-direction:column;min-height:100vh;padding:8px;gap:8px;max-width:700px;margin:0 auto}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#00000040;border-radius:8px;font-size:13px}.turn-indicator{font-weight:700;color:#f5a623}.round-info{opacity:.7}.other-players{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:8px;background:#00000026;border-radius:10px}.other-player{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px}.other-player.active-turn .other-player-name{color:#f5a623;font-weight:700}.other-player.eliminated .other-player-name{text-decoration:line-through;opacity:.4}.other-player-name{font-size:12px;text-align:center}.other-player-score{font-size:11px;opacity:.7}.face-down-row{display:flex;gap:3px}.face-down-mini{width:22px;height:32px;border-radius:3px;background:repeating-linear-gradient(135deg,#1a3a8a,#1a3a8a 4px,#2455c4 4px,#2455c4 8px);border:1px solid #1a3a8a;flex-shrink:0}.center-area{display:flex;align-items:center;justify-content:center;gap:20px;padding:16px;background:#0003;border-radius:12px;min-height:120px}.pile-label{font-size:11px;opacity:.6;text-align:center;margin-top:4px}.pile-wrapper{display:flex;flex-direction:column;align-items:center}.draw-pile-count{font-size:11px;opacity:.6;margin-top:2px}.available-cards-group{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;padding:6px;border:2px solid rgba(245,166,35,.6);border-radius:8px;background:#f5a62314;min-width:var(--card-w);min-height:var(--card-h)}.staged-discard-group{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;padding:6px;border:2px dashed rgba(245,166,35,.5);border-radius:8px;background:#f5a62312;min-width:var(--card-w);min-height:var(--card-h)}.my-hand-area{background:#0003;border-radius:12px;padding:12px}.my-hand-label{font-size:12px;opacity:.6;margin-bottom:8px}.hand-value{font-weight:700;color:#f5a623}.cards-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px}.action-buttons .btn{font-size:13px;padding:12px 8px}.action-buttons .btn-knock{grid-column:span 2;background:#8e44ad;color:#fff}.waiting-message{text-align:center;opacity:.55;font-size:14px;padding:12px}.discard-picker{background:#0009;border-radius:10px;padding:12px;text-align:center}.discard-picker p{margin-bottom:8px;font-size:13px;opacity:.8}.discard-picker-cards{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.scores-inline{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;opacity:.8}.reveal-hands{display:flex;flex-direction:column;gap:14px;margin-bottom:20px;width:100%}.reveal-player{background:#0003;border-radius:10px;padding:10px 12px}.reveal-player-name{font-weight:700;font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.reveal-cards{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.reveal-value{font-size:13px;opacity:.7}.elim-badge{display:inline-block;background:#c0392b;color:#fff;font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px}.round-end{padding:24px;max-width:500px;margin:0 auto;text-align:center}.round-end h2{font-size:1.8rem;margin-bottom:16px}.round-scores-table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:14px}.round-scores-table th,.round-scores-table td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}.round-scores-table th{opacity:.6;font-weight:600}.round-scores-table tr.knocked td{background:#f5a6231f}.round-scores-table tr.eliminated td{opacity:.4}.score-added{color:#ff7675}.score-zero{color:#55efc4}.score-total{font-weight:700}.knock-badge{display:inline-block;background:#f5a623;color:#1a1a1a;font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px;margin-left:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:#1b4332;border-radius:14px;padding:20px;max-width:480px;width:100%;max-height:80vh;overflow-y:auto}.modal h3{margin-bottom:14px;font-size:1.2rem}.modal-close{float:right;background:none;border:none;color:#fff;font-size:20px;cursor:pointer}.history-group{margin-bottom:14px}.history-group-label{font-size:11px;opacity:.55;margin-bottom:6px}.history-group-cards{display:flex;gap:5px;flex-wrap:wrap}.winner-text{font-size:1.4rem;font-weight:700;color:#f5a623}.gameover-round-block{background:#0003;border-radius:10px;padding:14px;margin-bottom:14px}.gameover-round-title{font-weight:700;font-size:14px;margin-bottom:12px;opacity:.85}.gameover-round-players{display:flex;flex-direction:column;gap:10px}.gameover-player-hand{display:flex;flex-direction:column;gap:6px}.gameover-player-name{font-size:13px;font-weight:600}.gameover-cards{display:flex;flex-wrap:wrap;gap:5px}.score-list{list-style:none;padding:0}.score-list li{padding:4px 0;font-size:14px;opacity:.85}.action-banner{background:#00000040;border-left:3px solid #4a9e6f;border-radius:6px;padding:6px 12px;font-size:13px;opacity:.85}.final-round-banner{background:#8e44ad4d;border:1.5px solid #8e44ad;border-radius:8px;padding:6px 12px;text-align:center;font-size:13px}.rules-btn{position:fixed;top:14px;right:14px;z-index:200;background:#ffffff1f;color:#fff;border:1.5px solid rgba(255,255,255,.25);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.rules-btn:hover{background:#ffffff38}.exit-btn{position:fixed;top:52px;right:14px;z-index:200;background:#c0392b40;color:#fff;border:1.5px solid rgba(192,57,43,.5);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.exit-btn:hover{background:#c0392b80}@media (max-width: 420px){:root{--card-w: 46px;--card-h: 70px}.home h1{font-size:2.2rem}.game-code{font-size:1.5rem;letter-spacing:4px}.action-buttons{grid-template-columns:1fr 1fr}}
