:root{--bg-page: #1a1410;--bg-table-felt: radial-gradient(ellipse at 50% 40%, #2d7a40 0%, #255f33 40%, #1e5229 70%, #163d20 100%);--bg-panel: #1e1a16;--bg-panel-light: #252018;--bg-panel-border: rgba(255, 255, 255, .08);--bg-header: #161210;--wood-primary: #6B3A1F;--wood-light: #9B6035;--wood-dark: #3D1E08;--wood-gradient: linear-gradient(180deg, #8B5020 0%, #6B3A1F 40%, #4A2810 70%, #2E1505 100%);--wood-inner: #1E1005;--gold: #C8960A;--gold-light: #E8B820;--gold-dark: #9A7008;--tile-bg-gradient: linear-gradient(180deg, #FAE8C0 0%, #F0D898 55%, #E8C880 100%);--tile-hover-gradient: linear-gradient(180deg, #FFF2D8 0%, #F8E0A8 55%, #F0D090 100%);--tile-selected-gradient: linear-gradient(180deg, #FFFDE8 0%, #FFF3B8 55%, #FFE880 100%);--tile-border: rgba(150, 110, 50, .55);--tile-border-selected: #FFD700;--tile-shadow: rgba(0, 0, 0, .6);--tile-back-gradient: linear-gradient(155deg, #3070B0 0%, #1E4A80 100%);--color-tile-red: #CC1111;--color-tile-blue: #1133BB;--color-tile-yellow: #BB8800;--color-tile-black: #111111;--color-tile-joker: #8800AA;--player-panel-bg: rgba(12, 8, 4, .88);--player-panel-border: rgba(100, 65, 25, .55);--player-score-color: #E8B820;--color-success: #3CB371;--color-danger: #CC3333;--color-warning: #E8960A;--color-info: #3399DD;--color-online: #44EE44;--text-primary: #F0E0C0;--text-secondary: rgba(240, 224, 192, .72);--text-muted: rgba(240, 224, 192, .42);--text-gold: #E8B820;--btn-green-bg: linear-gradient(180deg, #40BF70 0%, #2E8B50 100%);--btn-green-hover: linear-gradient(180deg, #50D080 0%, #389A60 100%);--btn-orange-bg: linear-gradient(180deg, #E8960A 0%, #C07800 100%);--btn-orange-hover: linear-gradient(180deg, #FFB020 0%, #D88800 100%);--btn-red-bg: linear-gradient(180deg, #CC3333 0%, #991A1A 100%);--btn-dark-bg: linear-gradient(180deg, #2A2218 0%, #181208 100%);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--radius-tile: 3px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--font-ui: "Segoe UI", system-ui, -apple-system, sans-serif;--font-tile: "Georgia", "Times New Roman", serif;--tile-w: 44px;--tile-h: 60px;--tile-gap: 3px;--tile-font-size: 20px;--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .36s ease;--z-tile: 10;--z-tile-selected: 20;--z-tile-dragging: 1000;--z-overlay: 500;--z-modal: 2000;--z-toast: 3000}@media (max-width: 1400px){:root{--tile-w: 41px;--tile-h: 57px;--tile-font-size: 19px}}@media (max-width: 1100px){:root{--tile-w: 38px;--tile-h: 53px;--tile-font-size: 17px}}@media (max-width: 800px){:root{--tile-w: 34px;--tile-h: 47px;--tile-font-size: 15px;--tile-gap: 2px}}@media (max-width: 600px){:root{--tile-w: 30px;--tile-h: 42px;--tile-font-size: 13px;--tile-gap: 2px}}@media (max-width: 400px){:root{--tile-w: 26px;--tile-h: 36px;--tile-font-size: 11px;--tile-gap: 1px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px;-webkit-tap-highlight-color:transparent}body{min-height:100%;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-ui);overflow:hidden;overscroll-behavior:none;user-select:none;-webkit-user-select:none}#root{width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column}.no-select{user-select:none;-webkit-user-select:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-ui);font-weight:600;font-size:14px;letter-spacing:.5px;text-transform:uppercase;transition:all var(--transition-fast);position:relative;overflow:hidden}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--btn-primary-text);box-shadow:0 2px 8px #c9a84c66}.btn-primary:hover:not(:disabled){box-shadow:0 4px 16px #c9a84c99;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-action{background:var(--btn-action-bg);color:#fff;border:1px solid var(--btn-action-border)}.btn-action:hover:not(:disabled){background:var(--btn-action-hover);box-shadow:0 0 12px #4caf5066}.btn-danger{background:var(--btn-danger-bg);color:#fff;border:1px solid var(--btn-danger-border)}.btn-danger:hover:not(:disabled){box-shadow:0 0 12px #e74c3c66}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--bg-panel-border)}.btn-ghost:hover:not(:disabled){background:var(--bg-panel);color:var(--text-primary)}.btn-lg{padding:var(--space-md) var(--space-2xl);font-size:15px;border-radius:var(--radius-md)}.input{width:100%;padding:var(--space-md) var(--space-lg);background:#ffffff12;border:1px solid var(--bg-panel-border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:15px;transition:border-color var(--transition-fast);outline:none}.input:focus{border-color:var(--gold);background:#ffffff1a}.panel{background:var(--bg-panel);border:1px solid var(--bg-panel-border);border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 #c9a84c66}50%{box-shadow:0 0 0 8px #c9a84c00}}@keyframes tileBounce{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.animate-fadeIn{animation:fadeIn .3s ease forwards}.animate-slideUp{animation:slideUp .4s ease forwards}.tile{position:relative;width:var(--tile-w);height:var(--tile-h);background:var(--tile-bg-gradient);border-radius:var(--radius-tile);border:1px solid var(--tile-border);border-top-color:#ffffff73;box-shadow:0 3px 6px var(--tile-shadow),0 1px 2px #0006,inset 0 1px #ffffff8c,inset 0 -2px #0000001f;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;flex-shrink:0;touch-action:none;z-index:var(--z-tile);user-select:none;-webkit-user-select:none;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);will-change:transform}.tile:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:calc(var(--radius-tile) - 1px);border:1px solid rgba(255,255,255,.18);pointer-events:none}.tile:hover:not(.tile-back):not(.dragging){background:var(--tile-hover-gradient);transform:translateY(-5px);box-shadow:0 8px 16px var(--tile-shadow),0 2px 4px #00000059,inset 0 1px #fff9;z-index:var(--z-tile-selected)}.tile.selected{background:var(--tile-selected-gradient);transform:translateY(-10px);border-color:var(--tile-border-selected);box-shadow:0 10px 24px #000000a6,0 0 14px #ffd2008c,inset 0 1px #ffffffb3,inset 0 -1px #c8960033;z-index:var(--z-tile-selected)}.tile.dragging{opacity:.25;transform:none!important;box-shadow:none;pointer-events:none}.tile-number{font-family:var(--font-tile);font-size:var(--tile-font-size);font-weight:700;line-height:1;letter-spacing:-1px;margin-top:4px}.tile-number.red{color:var(--color-tile-red)}.tile-number.blue{color:var(--color-tile-blue)}.tile-number.yellow{color:var(--color-tile-yellow)}.tile-number.black{color:var(--color-tile-black)}.tile-dot{width:5px;height:5px;border-radius:50%;margin-top:3px;flex-shrink:0}.tile-dot.red{background:var(--color-tile-red);box-shadow:0 0 3px var(--color-tile-red)}.tile-dot.blue{background:var(--color-tile-blue);box-shadow:0 0 3px var(--color-tile-blue)}.tile-dot.yellow{background:var(--color-tile-yellow);box-shadow:0 0 3px var(--color-tile-yellow)}.tile-dot.black{background:#555}.tile.okey-tile{background:linear-gradient(180deg,#fffde0,#fff4a0 55%,#ffe840);border-color:#e8b820}.tile.okey-tile .tile-number{color:#a08;font-size:calc(var(--tile-font-size) * .75)}.tile.okey-tile:after{content:"★";position:absolute;top:2px;right:3px;font-size:9px;color:var(--gold);line-height:1}.tile.fake-joker{background:linear-gradient(180deg,#f8e8ff,#ebf 55%,#e090ff);border-color:#90c}.tile.fake-joker .tile-number{color:var(--color-tile-joker);font-size:calc(var(--tile-font-size) * .65);letter-spacing:0}.tile.fake-joker:after{content:"★";position:absolute;top:2px;right:3px;font-size:9px;color:#a0d}.tile.tile-back{background:var(--tile-back-gradient);border-color:#2a5a90;cursor:default;border-top-color:#4080c0}.tile.tile-back:before{background:repeating-linear-gradient(45deg,transparent 0px,transparent 4px,rgba(255,255,255,.06) 4px,rgba(255,255,255,.06) 5px);border-color:#ffffff14}.tile.tile-back:hover{transform:none}.tile-drop-zone{width:var(--tile-w);height:var(--tile-h);border-radius:var(--radius-tile);border:2px dashed rgba(255,255,255,.2);background:#ffffff08;flex-shrink:0;transition:all var(--transition-fast)}.tile-drop-zone.drag-over{border-color:var(--gold);background:#c8960a1f;box-shadow:0 0 10px #c8960a4d}.tile-drag-clone{position:fixed;pointer-events:none;z-index:var(--z-tile-dragging);transform:translate(-50%,-50%) scale(1.08) rotate(2deg);box-shadow:0 20px 40px #000000bf,0 0 24px #ffd20073;opacity:.95;border-radius:var(--radius-tile);will-change:left,top}.rack-wrapper{width:100%;position:relative}.rack-row{display:flex;align-items:flex-end;gap:var(--tile-gap);padding:8px 14px 12px;background:linear-gradient(180deg,#3d2008,#5c3010 15%,#4a2808 50%,#3a1e05 80%,#2a1203);border:3px solid #7D4A20;border-top:4px solid #9B6030;border-bottom:5px solid #2A1005;border-radius:4px;box-shadow:0 6px 20px #000000b3,inset 0 2px 4px #ffffff0f,inset 0 -3px 6px #0009,0 1px #ffffff14;min-height:calc(var(--tile-h) + 22px);overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;-webkit-overflow-scrolling:touch;position:relative;cursor:default}.rack-row:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:repeating-linear-gradient(90deg,transparent 0px,transparent 60px,rgba(255,255,255,.018) 60px,rgba(255,255,255,.018) 62px);pointer-events:none}.rack-row.drag-over{border-color:var(--gold);box-shadow:0 6px 20px #000000b3,0 0 24px #c8960a59,inset 0 2px 4px #ffffff0f}.meld-group{display:inline-flex;align-items:flex-end;gap:2px;background:#00000038;border:1px solid rgba(255,255,255,.09);border-radius:5px;padding:3px 5px 5px;position:relative;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.meld-group:hover{border-color:#c8960a66}.meld-group.drag-over-meld{border-color:var(--gold);background:#c8960a1f;box-shadow:0 0 14px #c8960a59}.meld-drop-end,.meld-drop-start{width:calc(var(--tile-w) * .45);height:var(--tile-h);border-radius:var(--radius-tile);border:2px dashed transparent;transition:all var(--transition-fast);flex-shrink:0}.meld-drop-end.active,.meld-drop-start.active{width:var(--tile-w);border-color:var(--gold);background:#c8960a24}.game-layout{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--bg-page);overflow:hidden}.game-hud{flex-shrink:0;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-md);background:linear-gradient(180deg,#201810,#161008);border-bottom:1px solid rgba(100,65,25,.4);z-index:100}.hud-brand{font-size:16px;font-weight:800;letter-spacing:1px;background:var(--gold-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hud-info{display:flex;align-items:center;gap:var(--space-lg);font-size:12px;color:var(--text-muted)}.hud-actions{display:flex;align-items:center;gap:var(--space-sm)}.table-area{flex:1;display:grid;grid-template-columns:90px 1fr 90px;grid-template-rows:90px 1fr;padding:var(--space-sm);gap:0;min-height:0}.player-top{grid-column:1 / 4;grid-row:1;display:flex;align-items:flex-end;justify-content:center;padding-bottom:var(--space-sm)}.player-left{grid-column:1;grid-row:2;display:flex;align-items:center;justify-content:flex-end;padding-right:var(--space-xs)}.player-right{grid-column:3;grid-row:2;display:flex;align-items:center;justify-content:flex-start;padding-left:var(--space-xs)}.table-felt{grid-column:2;grid-row:2;position:relative;background:var(--bg-table-felt);border-radius:50%/45%;border:var(--table-border-width, 18px) solid transparent;background-clip:padding-box;outline:none;box-shadow:0 0 0 2px #2a1005,0 0 0 20px #6b3a1f,0 0 0 22px #9b6035,0 0 0 24px #3d1e08,0 16px 48px #000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.table-felt:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 40%,rgba(60,180,100,.12) 0%,transparent 65%);pointer-events:none;border-radius:inherit}.table-felt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 4px 30px #0006,inset 0 -4px 20px #0000004d;pointer-events:none}.table-center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md)}.deck-indicator-row{display:flex;align-items:center;justify-content:center;gap:var(--space-xl)}.deck-pile{position:relative;width:var(--tile-w);height:var(--tile-h);cursor:pointer;flex-shrink:0}.deck-pile:hover .deck-tile{box-shadow:0 0 18px #c8960a80}.deck-tile{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-tile);background:var(--tile-back-gradient);border:1px solid #3070B0;transition:box-shadow var(--transition-fast)}.deck-tile:nth-child(1){transform:translate(2px,2px) rotate(1deg)}.deck-tile:nth-child(2){transform:translate(1px,1px) rotate(-.5deg)}.deck-tile:nth-child(3){transform:translate(0)}.deck-count{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:linear-gradient(180deg,#383028,#282018);border:1px solid rgba(200,150,10,.5);border-radius:var(--radius-sm);padding:2px 6px;font-size:12px;font-weight:700;color:var(--text-primary);white-space:nowrap;z-index:5}.indicator-area{display:flex;flex-direction:column;align-items:center;gap:3px}.indicator-label{font-size:9px;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted)}.indicator-sublabel{font-size:8px;color:var(--text-muted);margin-top:1px}.discard-area{display:flex;flex-direction:column;align-items:center;gap:3px}.discard-label{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted)}.discard-pile{width:var(--tile-w);height:var(--tile-h);position:relative;cursor:pointer}.discard-pile:hover{filter:brightness(1.1)}.discard-pile-empty{width:var(--tile-w);height:var(--tile-h);border:2px dashed rgba(255,255,255,.18);border-radius:var(--radius-tile);background:#ffffff08}.table-melds{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-content:flex-start;justify-content:center;width:100%;max-height:46%;overflow-y:auto;padding:0 var(--space-sm);scrollbar-width:thin}.okey-stars{position:absolute;bottom:var(--space-md);right:var(--space-lg);display:flex;gap:var(--space-xs)}.player-panel{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;background:var(--player-panel-bg);border:1px solid var(--player-panel-border);border-radius:var(--radius-md);min-width:68px;max-width:80px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal);position:relative}.player-panel.active-turn{border-color:var(--gold);box-shadow:0 0 18px #c8960a73}.player-panel.disconnected{opacity:.48}.player-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#253550,#192840);border:2px solid rgba(100,70,30,.55);display:flex;align-items:center;justify-content:center;font-size:18px;position:relative;flex-shrink:0}.player-avatar:after{content:"";position:absolute;bottom:0;right:0;width:9px;height:9px;border-radius:50%;background:var(--color-online);border:2px solid var(--bg-page)}.player-avatar.offline:after{background:var(--color-danger)}.dealer-badge{position:absolute;top:-5px;left:-5px;background:var(--gold);color:#1a0800;font-size:9px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.player-name{font-size:11px;font-weight:600;color:var(--text-secondary);max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.player-score{font-size:12px;font-weight:700;color:var(--player-score-color)}.opponent-tiles-mini{display:flex;flex-wrap:wrap;gap:1px;justify-content:center;max-width:66px}.opp-tile-mini{width:7px;height:13px;background:var(--tile-back-gradient);border-radius:1px;border:1px solid rgba(50,80,140,.7)}.turn-indicator{position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);background:#000000b3;border:1px solid var(--gold);border-radius:var(--radius-pill);padding:3px var(--space-md);font-size:12px;font-weight:600;color:var(--gold-light);white-space:nowrap;z-index:20;pointer-events:none;animation:fadeIn .25s ease}.bottom-bar{flex-shrink:0;display:flex;flex-direction:column;gap:5px;padding:6px var(--space-md);background:linear-gradient(180deg,#1a1208,#120e06);border-top:1px solid rgba(100,65,25,.45)}.local-player-info{display:flex;align-items:center;justify-content:space-between}.local-player-profile{display:flex;align-items:center;gap:var(--space-sm)}.local-player-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#253550,#192840);border:2px solid rgba(200,150,10,.45);display:flex;align-items:center;justify-content:center;font-size:16px}.local-player-name{font-size:13px;font-weight:600;color:var(--text-primary)}.local-player-score{font-size:12px;color:var(--player-score-color);font-weight:700}.rack-container{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 4px}.rack-container::-webkit-scrollbar{display:none}.action-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.action-left{display:flex;align-items:center;gap:var(--space-xs)}.action-center{display:flex;align-items:center;gap:var(--space-sm)}.action-right{display:flex;align-items:center;gap:var(--space-xs)}.icon-btn{width:34px;height:34px;border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all var(--transition-fast)}.icon-btn:hover{background:#ffffff1a;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-ui);font-weight:700;font-size:13px;letter-spacing:.4px;text-transform:uppercase;transition:all var(--transition-fast);padding:7px 14px;white-space:nowrap}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.96)}.btn-green{background:var(--btn-green-bg);color:#fff;border-bottom:2px solid #1A6035;text-shadow:0 1px 2px rgba(0,0,0,.4)}.btn-green:hover:not(:disabled){background:var(--btn-green-hover)}.btn-orange{background:var(--btn-orange-bg);color:#fff;border-bottom:2px solid #804800;text-shadow:0 1px 2px rgba(0,0,0,.4)}.btn-orange:hover:not(:disabled){background:var(--btn-orange-hover)}.btn-red{background:var(--btn-red-bg);color:#fff;border-bottom:2px solid #661010}.btn-red:hover:not(:disabled){filter:brightness(1.1)}.btn-dark{background:var(--btn-dark-bg);color:var(--text-secondary);border:1px solid rgba(255,255,255,.08);border-bottom:2px solid rgba(0,0,0,.5)}.btn-dark:hover:not(:disabled){background:linear-gradient(180deg,#3a3020,#282010);color:var(--text-primary)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid rgba(255,255,255,.1)}.btn-ghost:hover:not(:disabled){border-color:var(--gold);color:var(--gold-light)}.btn-lg{padding:10px 22px;font-size:14px;border-radius:var(--radius-md)}.btn-sm{padding:5px 10px;font-size:12px}.score-badge{background:#00000080;border:1px solid rgba(200,150,10,.4);border-radius:var(--radius-sm);padding:3px 10px;font-size:13px;font-weight:700;color:var(--text-primary)}.score-badge.valid{color:var(--color-success);border-color:var(--color-success)}.score-badge.invalid{color:var(--color-danger)}.result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .28s ease}.result-card{background:linear-gradient(160deg,#221a0e,#18120a);border:2px solid var(--gold);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-2xl);min-width:340px;max-width:92vw;box-shadow:0 28px 72px #000000d9,0 0 50px #c8960a2e;animation:slideUp .38s ease}.result-title{text-align:center;font-size:20px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-light);margin-bottom:var(--space-lg)}.score-table{width:100%;border-collapse:collapse;margin-bottom:var(--space-xl)}.score-table th{text-align:left;font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:5px var(--space-sm);border-bottom:1px solid rgba(255,255,255,.06)}.score-table td{padding:7px var(--space-sm);font-size:13px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04)}.score-table tr.winner td{color:var(--gold-light);font-weight:700}.score-positive{color:var(--color-success)!important}.score-negative{color:var(--color-danger)!important}.toast{position:fixed;top:55px;left:50%;transform:translate(-50%);background:#140e08f2;border:1px solid rgba(200,150,10,.4);border-radius:var(--radius-pill);padding:7px 20px;font-size:13px;font-weight:500;color:var(--text-primary);z-index:var(--z-toast);animation:fadeIn .2s ease;pointer-events:none;white-space:nowrap;box-shadow:0 8px 24px #0009}.toast.error{border-color:var(--color-danger);color:#ff8080}.toast.success{border-color:var(--color-success);color:#80ff80}.input{width:100%;padding:9px var(--space-md);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:14px;outline:none;transition:border-color var(--transition-fast)}.input:focus{border-color:var(--gold);background:#ffffff17}.input::placeholder{color:var(--text-muted)}.panel{background:var(--bg-panel);border:1px solid var(--bg-panel-border);border-radius:var(--radius-lg)}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-gold{0%,to{box-shadow:0 0 #c8960a80}50%{box-shadow:0 0 0 8px #c8960a00}}@keyframes tileDrop{0%{transform:translateY(-20px) scale(.95);opacity:0}60%{transform:translateY(3px) scale(1.02)}to{transform:translateY(0) scale(1);opacity:1}}@keyframes tileDiscard{0%{transform:scale(1);opacity:1}to{transform:scale(.85) translateY(10px);opacity:0}}.animate-pulse-gold{animation:pulse-gold 2s infinite}.animate-tile-drop{animation:tileDrop .3s ease forwards}.menu-screen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 55% 40%,rgba(42,107,58,.18) 0%,transparent 55%),radial-gradient(ellipse at 20% 80%,rgba(107,58,31,.12) 0%,transparent 45%),var(--bg-page);overflow:hidden}.menu-container{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-2xl) var(--space-xl);animation:menuFadeIn .45s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.menu-logo{text-align:center;margin-bottom:var(--space-sm)}.menu-logo-title{font-size:44px;font-weight:900;letter-spacing:4px;text-transform:uppercase;background:linear-gradient(160deg,#e8b820,#ffd040 40%,#c89010,#e8b820);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;text-shadow:none}.menu-logo-sub{font-size:12px;font-weight:600;letter-spacing:5px;text-transform:uppercase;color:var(--text-muted);margin-top:4px}.menu-buttons{width:100%;display:flex;flex-direction:column;gap:var(--space-sm)}.menu-btn{width:100%;padding:12px 20px;font-size:15px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-shadow:0 1px 2px rgba(0,0,0,.4)}.menu-btn-primary{background:var(--btn-green-bg);color:#fff;border-bottom:3px solid #1A6035}.menu-btn-primary:hover{background:var(--btn-green-hover);transform:translateY(-1px)}.menu-btn-secondary{background:linear-gradient(180deg,#2a2218,#1e1810);color:var(--text-primary);border:1px solid rgba(200,150,10,.3);border-bottom:3px solid rgba(0,0,0,.5)}.menu-btn-secondary:hover{border-color:var(--gold);transform:translateY(-1px)}.mode-toggle{display:flex;gap:3px;background:#0006;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-sm);padding:3px;width:100%}.mode-option{flex:1;padding:7px;border:none;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.mode-option.active{background:var(--btn-orange-bg);color:#fff}.mode-option:hover:not(.active){color:var(--text-secondary)}.form-panel{width:100%;background:var(--bg-panel);border:1px solid var(--bg-panel-border);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);animation:menuFadeIn .3s ease}.form-panel-title{font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--bg-panel-border);padding-bottom:var(--space-sm)}.menu-footer{display:flex;align-items:center;gap:var(--space-md);font-size:12px;color:var(--text-muted)}.lobby-screen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,rgba(42,107,58,.15) 0%,transparent 55%),var(--bg-page)}.lobby-card{width:100%;max-width:480px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg);animation:menuFadeIn .4s ease}.lobby-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--bg-panel-border);padding-bottom:var(--space-md)}.lobby-title{font-size:17px;font-weight:700;color:var(--text-primary)}.lobby-code{display:flex;align-items:center;gap:var(--space-sm)}.lobby-code-label{font-size:11px;color:var(--text-muted);letter-spacing:.5px}.lobby-code-value{background:#c8960a1f;border:1px solid rgba(200,150,10,.4);border-radius:var(--radius-sm);padding:3px 10px;font-size:18px;font-weight:800;letter-spacing:4px;color:var(--gold-light)}.copy-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px;transition:color var(--transition-fast)}.copy-btn:hover{color:var(--gold-light)}.lobby-seats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.lobby-seat{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;gap:var(--space-sm);min-height:64px;transition:all var(--transition-fast)}.lobby-seat.filled{border-color:#c8960a47}.lobby-seat.ready{border-color:var(--color-success);background:#3cb3710f}.lobby-seat.empty{border-style:dashed;border-color:#ffffff1a;opacity:.7}.lobby-seat.mine{border-color:#c8960a80}.lobby-seat-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#253550,#192840);display:flex;align-items:center;justify-content:center;font-size:16px;border:1px solid rgba(100,70,30,.45);flex-shrink:0}.lobby-seat-info{flex:1;overflow:hidden}.lobby-seat-name{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-seat-status{font-size:11px;margin-top:2px}.lobby-seat-status.ready{color:var(--color-success)}.lobby-seat-status.waiting{color:var(--text-muted)}.lobby-seat-status.empty{color:var(--text-muted);font-style:italic}.lobby-seat-num{font-size:10px;color:var(--text-muted);min-width:14px;text-align:right}.lobby-actions{display:flex;flex-direction:column;gap:var(--space-sm)}@media (min-width: 1600px){.table-area{grid-template-columns:110px 1fr 110px;grid-template-rows:110px 1fr}.player-panel{min-width:82px;max-width:95px}.player-avatar{width:46px;height:46px;font-size:22px}.player-name{font-size:13px;max-width:80px}.game-hud{height:50px}}@media (max-width: 1400px){.table-area{grid-template-columns:88px 1fr 88px;grid-template-rows:88px 1fr}}@media (max-width: 1100px){.table-area{grid-template-columns:78px 1fr 78px;grid-template-rows:78px 1fr}.player-panel{min-width:64px}.player-avatar{width:34px;height:34px;font-size:16px}.player-name{font-size:11px;max-width:58px}}@media (max-width: 900px) and (orientation: portrait){.table-area{grid-template-columns:70px 1fr 70px;grid-template-rows:70px 1fr;padding:var(--space-xs)}.table-felt{border-radius:40%/35%}.player-panel{min-width:58px;padding:4px 6px}.player-avatar{width:30px;height:30px;font-size:14px}.lobby-seats{grid-template-columns:1fr}}@media (max-width: 600px){.table-area{grid-template-columns:58px 1fr 58px;grid-template-rows:65px 1fr;padding:4px}.table-felt{border-radius:35%/30%;box-shadow:0 0 0 1px #2a1005,0 0 0 12px #6b3a1f,0 0 0 14px #9b6035,0 0 0 15px #3d1e08,0 8px 24px #000000b3}.player-panel{min-width:50px;max-width:56px;padding:3px 4px;gap:2px}.player-avatar{width:26px;height:26px;font-size:12px}.player-name{font-size:9px;max-width:48px}.player-score{font-size:10px}.opp-tile-mini{width:5px;height:10px}.game-hud{height:38px}.hud-brand{font-size:13px}.bottom-bar{padding:4px var(--space-sm);gap:3px}.action-row{gap:4px}.icon-btn{width:28px;height:28px;font-size:13px}.btn{padding:6px 10px;font-size:11px}.btn-sm{padding:4px 8px;font-size:10px}.menu-logo-title{font-size:34px;letter-spacing:2px}.menu-container{padding:var(--space-xl) var(--space-md)}.deck-indicator-row{gap:var(--space-md)}.table-melds{max-height:42%;gap:4px}.meld-group{padding:2px 4px 4px;gap:1px}.result-card{padding:var(--space-lg);min-width:unset;width:88vw}.result-title{font-size:16px}}@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px){.table-area{grid-template-columns:62px 1fr 62px;grid-template-rows:55px 1fr;padding:3px}.game-hud{height:36px}.bottom-bar{padding:3px var(--space-sm)}.rack-row{min-height:calc(var(--tile-h) + 14px);padding:5px 10px 8px}.table-melds{max-height:38%}}
