@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--color-primary: #6b4f2a;--color-primary-dark: #5a4023;--color-primary-light: #8b6f47;--color-accent-gold: #c9a86a;--color-accent-gold-light: rgba(201, 168, 106, .2);--color-accent-gold-dark: #b5925c;--color-accent-green: #2f5d3a;--color-accent-green-hover: #3a7348;--color-accent-wood: #8b7355;--color-bg-main: #faf7f2;--color-bg-secondary: #f4efe6;--color-bg-tertiary: #e8dfd0;--color-bg-dark: #ddd2bf;--color-text-primary: #3a3126;--color-text-secondary: #5a4632;--color-text-tertiary: #6b4f2a;--color-text-light: #faf7f2;--color-text-dark: var(--color-text-primary);--color-text-muted: var(--color-text-secondary);--color-border-main: #d4c5b0;--color-border-dark: #264a2e;--color-border-light: rgba(107, 79, 42, .15);--color-border: var(--color-border-main);--color-success: #2f5d3a;--color-warning: #c9a86a;--color-pending: #d68d30;--color-danger: #c45454;--color-danger-dark: #a73939;--color-info: #3498db;--color-info-dark: #2d5472;--color-game-primary: #198754;--color-game-primary-hover: #20a366;--color-game-primary-dark: #0f5132;--color-game-success: #28a745;--color-game-success-hover: #218838;--color-game-danger: #dc3545;--color-game-danger-hover: #c82333;--color-game-warning: #ffc107;--color-game-warning-hover: #e0a800;--color-game-warning-gold: #ffd700;--color-game-secondary: #6c757d;--color-game-secondary-hover: #5c636a;--color-game-gray: #666;--color-game-gray-light: #ccc;--color-game-gray-dark: #495057;--color-game-text: #333;--color-game-text-muted: #666;--color-game-bg-light: #f8f9fa;--color-game-green-dark: #2d5016;--gradient-wood: linear-gradient(to bottom, #8b6f47 0%, #6b4f2a 100%);--gradient-danger: linear-gradient(45deg, #ff6b6b, #ee5a6f);--overlay-bg: rgba(107, 79, 42, .75);--overlay-bg-dark: rgba(107, 79, 42, .85);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 28px;--space-4xl: 32px;--space-5xl: 40px;--padding-xs: var(--space-sm) var(--space-md);--padding-sm: var(--space-md) var(--space-lg);--padding-md: var(--space-lg) var(--space-xl);--padding-lg: var(--space-2xl) var(--space-3xl);--padding-xl: var(--space-4xl) var(--space-5xl);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-regular: var(--font-normal);--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.7;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .08);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 2px 6px rgba(0, 0, 0, .15);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .2);--shadow-2xl: 0 10px 40px rgba(0, 0, 0, .3);--shadow-inset: inset 0 2px 4px rgba(0, 0, 0, .08);--shadow-inset-light: inset 0 1px 0 rgba(255, 255, 255, .5);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1);--transition-base: var(--transition-fast);--z-dropdown: 1000;--z-sticky: 1000;--z-modal: 9999;--z-modal-high: 10000;--z-toast: 10001;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-light{color:var(--color-text-light)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.bg-main{background-color:var(--color-bg-main)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-gradient{background:var(--gradient-wood)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-md);text-decoration:none;gap:var(--space-sm);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent-green);color:var(--color-text-light)}.btn-primary:hover:not(:disabled){background:var(--color-accent-green-hover);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--color-accent-gold);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:#d4b57a;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-danger{background:var(--color-danger);color:var(--color-text-light)}.btn-danger:hover:not(:disabled){background:#d65c5c;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-ghost{background:transparent;color:var(--color-text-primary);border:2px solid var(--color-border-main);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-accent-gold)}.btn-sm{padding:var(--space-sm) var(--space-md);font-size:var(--text-xs)}.btn-md{padding:var(--space-md) var(--space-xl);font-size:var(--text-sm)}.btn-lg{padding:var(--space-lg) var(--space-2xl);font-size:var(--text-base)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){transform:translateY(-1px)}.back-btn{position:absolute;top:var(--space-lg);left:var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border-main);width:40px;height:40px;border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-lg);color:var(--color-primary);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);z-index:10}.back-btn:hover{background:var(--color-bg-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.back-btn:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-xl);animation:fadeIn var(--transition-normal)}.modal-content{background:var(--color-bg-main);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl);border:2px solid var(--color-border-main);animation:slideUp var(--transition-slow);color:var(--color-text-primary);padding:var(--space-2xl)}.modal-content h3,.modal-content h2{color:var(--color-text-primary);margin-bottom:var(--space-md)}.modal-content p{color:var(--color-text-primary);margin-bottom:var(--space-sm)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl) var(--space-2xl) var(--space-xl);border-bottom:2px solid var(--color-border-main)}.modal-header h2{margin:0;font-size:var(--text-2xl);color:var(--color-primary);font-weight:var(--font-bold)}.modal-close-btn{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--color-primary);padding:var(--space-xs);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--color-bg-tertiary);color:var(--color-primary-dark);transform:rotate(90deg)}.modal-body{padding:var(--space-2xl)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-xl) var(--space-2xl) var(--space-2xl);border-top:2px solid var(--color-border-main)}.form-group{margin-bottom:var(--space-2xl)}.form-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-semibold);color:var(--color-primary);font-size:var(--text-sm)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border-main);border-radius:var(--radius-md);font-size:var(--text-base);transition:all var(--transition-fast);background:#fff;color:var(--color-text-primary);font-family:var(--font-family)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #c9a86a26}.form-input.error,.form-textarea.error,.form-select.error{border-color:var(--color-danger)}.form-textarea{min-height:120px;resize:vertical}.form-error{color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-sm);display:block}.form-checkbox-wrapper{display:flex;align-items:center;gap:var(--space-sm)}.form-checkbox{width:20px;height:20px;cursor:pointer}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.5px}.badge-success{background:#2f5d3a33;color:var(--color-success);border:1px solid rgba(47,93,58,.4)}.badge-warning{background:#c9a86a33;color:var(--color-warning);border:1px solid rgba(201,168,106,.4)}.badge-danger{background:#c4545433;color:var(--color-danger);border:1px solid rgba(196,84,84,.4)}.badge-info{background:#3498db33;color:var(--color-info);border:1px solid rgba(52,152,219,.4)}.loading-spinner{border:3px solid var(--color-bg-tertiary);border-top:3px solid var(--color-primary);border-radius:var(--radius-full);width:40px;height:40px;animation:spin 1s linear infinite}.divider{height:2px;background:var(--color-border-main);margin:var(--space-2xl) 0;border:none}*{margin:0;padding:0;box-sizing:border-box}html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}body{margin:0;font-family:var(--font-family);min-width:320px;min-height:100svh;padding:var(--safe-area-top) var(--safe-area-right) var(--safe-area-bottom) var(--safe-area-left);background:var(--gradient-wood);color:var(--color-text-primary);line-height:var(--leading-normal)}a{color:var(--color-accent-green);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-green-hover);text-decoration:underline}Custom Scrollbars - Themed */ *{scrollbar-width:thin;scrollbar-color:var(--color-accent-gold) var(--color-bg-tertiary)}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:10px;margin:4px}*::-webkit-scrollbar-thumb{background:var(--color-accent-gold);border-radius:10px;border:2px solid var(--color-border-main);transition:var(--transition-fast)}*::-webkit-scrollbar-thumb:hover{background:#d4b57a;box-shadow:0 0 8px #c9a86a66;background:linear-gradient(135deg,#764ba2,#f093fb);box-shadow:0 0 10px #667eea80}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);color:var(--color-primary);line-height:var(--leading-tight);margin:0}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin:0 0 var(--space-lg) 0;line-height:var(--leading-relaxed)}*:focus-visible{outline:3px solid var(--color-accent-gold);outline-offset:2px}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.toast{display:flex;align-items:center;min-width:300px;max-width:500px;padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-sm);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-sm);font-weight:var(--font-medium);animation:slideIn .3s ease-out forwards;position:relative;overflow:hidden}.toast-content{display:flex;align-items:center;width:100%;gap:var(--space-md)}.toast-icon{font-size:18px;flex-shrink:0}.toast-message{flex-grow:1;line-height:1.4;word-wrap:break-word}.toast-close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0;transition:var(--transition-base)}.toast-close:hover{background-color:#fff3}.toast-success{background:linear-gradient(135deg,#4ade80,#22c55e);color:#fff;border-left:4px solid #16a34a}.toast-error{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff;border-left:4px solid #dc2626}.toast-warning{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-left:4px solid #d97706}.toast-info{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;border-left:4px solid #2563eb}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.toast-exit{animation:slideOut .3s ease-in forwards}@media (max-width: 480px){.toast{min-width:280px;max-width:90vw;margin-left:5vw;margin-right:5vw}.toast-message{font-size:13px}.toast-icon{font-size:16px}}.toast-container{position:fixed;top:var(--space-xl);right:var(--space-xl);z-index:1000;display:flex;flex-direction:column;align-items:flex-end}@media (max-width: 480px){.toast-container{top:var(--space-sm);right:0;left:0;align-items:center}}.login-container{min-height:100svh;display:flex;align-items:center;justify-content:center;background:var(--gradient-wood);padding:max(var(--space-xl),env(safe-area-inset-top,0px)) max(var(--space-xl),env(safe-area-inset-right,0px)) max(var(--space-xl),env(safe-area-inset-bottom,0px)) max(var(--space-xl),env(safe-area-inset-left,0px));position:relative;font-family:system-ui,-apple-system,sans-serif}.login-container:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);opacity:.3;pointer-events:none}.login-card{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-5xl) var(--space-4xl);box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014,inset 0 1px #ffffff80;max-width:480px;width:100%;text-align:center;color:var(--color-text-dark);position:relative}.login-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);border:1px solid rgba(107,79,42,.15);pointer-events:none}.login-card h1{font-size:2.2em;margin:0 0 var(--space-sm) 0;font-weight:var(--font-bold);color:var(--color-primary);letter-spacing:-.3px;display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.title-suit-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.subtitle{color:var(--color-text-medium);margin-bottom:28px;font-size:1.05em;font-weight:var(--font-regular)}.join-code-notification{background:linear-gradient(135deg,#4caf501a,#2e7d320d);border:2px solid var(--color-success);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl);display:flex;align-items:flex-start;gap:var(--space-md);text-align:left;animation:slideInDown .4s ease-out;box-shadow:0 4px 12px #4caf5026}.join-code-icon{font-size:1.8em;flex-shrink:0}.join-code-text{flex:1}.join-code-text strong{display:block;color:var(--color-success);font-size:1.05em;margin-bottom:var(--space-xs)}.join-code-text p{margin:0;color:var(--color-text-dark);font-size:.95em;line-height:1.5}.join-code-text p strong{display:inline;color:var(--color-primary);font-family:Courier New,monospace;font-size:1.1em;letter-spacing:.05em;background:#4caf501a;padding:2px 6px;border-radius:4px}.login-mode-selector{display:flex;gap:var(--space-sm);margin-bottom:28px;background:var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-xs);box-shadow:inset 0 2px 4px #00000014}.mode-btn{flex:1;padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-primary);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base);font-size:.95em}.mode-btn:hover{background:#6b4f2a14;transform:translateY(-1px)}.mode-btn:active{transform:translateY(0)}.mode-btn.active{background:#8b6f47;color:var(--color-text-light);box-shadow:var(--shadow-sm)}.login-form{display:flex;flex-direction:column;gap:var(--space-lg);text-align:left}.form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.form-group label{font-weight:var(--font-medium);color:var(--color-primary);font-size:1em}.form-group input{padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:1.05em;transition:var(--transition-base);background:#fff;color:var(--color-text-dark);font-weight:var(--font-regular);box-shadow:inset 0 1px 3px #0000000f}.form-group input:focus{outline:none;border-color:var(--color-accent-gold);background:#fff;box-shadow:0 0 0 3px #c9a86a26,inset 0 1px 3px #0000000f}.form-group input::placeholder{color:#a89b87;font-weight:var(--font-regular)}.error-message{background:#fef2f2;color:#991b1b;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:2px solid #fca5a5;font-size:.95em;text-align:center;font-weight:var(--font-medium);box-shadow:var(--shadow-sm)}.login-btn{padding:var(--space-md) var(--space-2xl);background:var(--color-accent-green);color:var(--color-text-light);border:none;border-radius:var(--radius-md);font-size:1.1em;font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);margin-top:var(--space-sm);box-shadow:var(--shadow-md)}.login-btn:hover:not(:disabled){background:#3a7348;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.login-btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.guest-info,.register-info{margin-top:22px;padding:var(--space-lg) var(--space-lg);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);text-align:left;font-size:.9em;box-shadow:inset 0 1px 2px #0000000d}.guest-info p,.register-info p{margin:0;line-height:1.7;color:var(--color-text-medium);font-weight:var(--font-regular)}.guest-info strong,.register-info strong{color:var(--color-primary);font-weight:var(--font-semibold)}.loading-state{padding:var(--space-5xl) var(--space-xl)}.loading-state p{color:var(--color-text-medium);font-weight:var(--font-regular)}@media (max-width: 768px){.login-container{padding:var(--space-md)}.login-card{padding:var(--space-4xl) var(--space-3xl)}.login-card h1{font-size:2.2em}.subtitle{font-size:1.05em;margin-bottom:var(--space-2xl)}.login-mode-selector{margin-bottom:var(--space-2xl)}.mode-btn{padding:var(--space-sm) var(--space-md);font-size:.88em}.login-form{gap:var(--space-lg)}.form-group input{padding:var(--space-md) var(--space-lg);font-size:.95em}.login-btn{padding:var(--space-md) var(--space-xl);font-size:1.05em}.guest-info,.register-info{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);font-size:.85em}}@media (max-width: 480px){.login-container{padding:var(--space-md)}.login-card{padding:var(--space-3xl) var(--space-2xl);border-radius:var(--radius-lg)}.login-card h1{font-size:1.9em;margin-bottom:var(--space-sm)}.subtitle{font-size:1em;margin-bottom:var(--space-xl)}.login-mode-selector{margin-bottom:var(--space-xl);gap:var(--space-sm);padding:var(--space-xs)}.mode-btn{padding:var(--space-sm) var(--space-md);font-size:.82em}.login-form{gap:var(--space-md)}.form-group label{font-size:.92em}.form-group input{padding:var(--space-sm) var(--space-md);font-size:.9em}.error-message{padding:var(--space-sm) var(--space-md);font-size:.85em}.login-btn{padding:var(--space-md) var(--space-lg);font-size:1em;margin-top:var(--space-sm)}.guest-info,.register-info{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);font-size:.8em}}.game-type-container{min-height:100svh;display:flex;align-items:center;justify-content:center;background:var(--gradient-wood);padding:max(var(--space-xl),env(safe-area-inset-top,0px)) max(var(--space-xl),env(safe-area-inset-right,0px)) max(var(--space-xl),env(safe-area-inset-bottom,0px)) max(var(--space-xl),env(safe-area-inset-left,0px));position:relative;font-family:system-ui,-apple-system,sans-serif}.game-type-container:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);opacity:.3;pointer-events:none}.game-type-card{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-5xl) 35px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014,inset 0 1px #ffffff80;max-width:600px;width:100%;text-align:center;color:var(--color-text-dark);position:relative}.game-type-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);border:1px solid rgba(107,79,42,.15);pointer-events:none}.back-btn{background:var(--color-bg-tertiary);border:1px solid var(--color-border);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-medium);color:var(--color-primary);transition:var(--transition-base);font-size:.95em;box-shadow:var(--shadow-xs)}.type-header{margin-bottom:var(--space-4xl)}.loading-state{text-align:center;padding:40px 20px}.loading-state h2{color:var(--color-primary);margin-bottom:var(--space-sm);font-weight:var(--font-semibold)}.loading-state p{color:var(--color-text-muted);font-weight:var(--font-regular)}.game-icon{display:flex;flex-direction:row;justify-content:center;align-items:flex-end;gap:var(--space-xs);margin-bottom:var(--space-2xl);flex-wrap:wrap;width:100%}.type-header h2{margin:0 0 var(--space-md) 0;color:var(--color-primary);font-size:2em;font-weight:var(--font-bold);letter-spacing:-.3px}.type-header p{color:var(--color-text-muted);font-size:1.05em;margin:0;font-weight:var(--font-regular)}.pending-join-banner{background:linear-gradient(135deg,#4caf501a,#2e7d320d);border:2px solid var(--color-success);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-2xl);display:flex;align-items:center;gap:var(--space-md);animation:slideInDown .4s ease-out;box-shadow:0 4px 12px #4caf5026}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.banner-icon{font-size:1.5em;flex-shrink:0}.banner-text{flex:1;text-align:left;font-size:.95em;line-height:1.5;color:var(--color-text-dark)}.banner-text strong{color:var(--color-primary);font-family:Courier New,monospace;font-size:1.1em;letter-spacing:.05em;background:#4caf501a;padding:2px 6px;border-radius:4px}.type-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-2xl)}.type-option{background:var(--color-bg-secondary);border:2px solid var(--color-border-main);border-radius:var(--radius-lg);padding:var(--space-4xl) var(--space-xl);cursor:pointer;transition:var(--transition-fast);position:relative;box-shadow:var(--shadow-sm)}.type-option:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);background:#f9f5ee;border-color:var(--color-accent-gold)}.type-option:active{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.type-option.selected{background:var(--color-accent-green);color:var(--color-text-light);border-color:var(--color-accent-green);transform:translateY(-3px);box-shadow:0 4px 12px #2f5d3a66}.type-icon{font-size:3.5em;margin-bottom:var(--space-lg);height:80px;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.type-option:hover .type-icon,.type-option.selected .type-icon{transform:scale(1.05)}.type-option h3{margin:0 0 var(--space-sm) 0;color:var(--color-primary);font-size:1.5em;font-weight:var(--font-bold);letter-spacing:-.3px}.type-option.selected h3{color:var(--color-text-light)}.type-option p{color:var(--color-text-muted);margin-bottom:var(--space-md);font-weight:var(--font-regular);font-size:.95em}.type-option.selected p{color:#faf7f2e6}.type-option ul{list-style:none;padding:0;margin:0 0 10px;text-align:left}.type-option li{padding:var(--space-xs) 0;color:#ffffffe6;font-size:.85em;position:relative;padding-left:var(--space-xl);font-weight:var(--font-medium)}.type-option li:before{content:"✓";position:absolute;left:0;color:#48bb78;font-weight:700;font-size:1.1em}.type-badge{position:absolute;top:var(--space-lg);right:var(--space-lg);background:var(--color-accent-gold);color:var(--color-text-dark);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:.75em;font-weight:var(--font-bold);box-shadow:var(--shadow-sm);letter-spacing:.5px}.type-option.selected .type-badge{background:var(--color-bg-main);color:var(--color-accent-green);box-shadow:var(--shadow-sm)}.type-info{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-2xl);text-align:left;border:1px solid var(--color-border)}.type-info h4{margin:0 0 var(--space-lg) 0;color:var(--color-primary);text-align:center;font-size:1.2em;font-weight:var(--font-bold)}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md)}.rule-item{background:#fff;padding:var(--space-md);border-radius:var(--radius-md);font-size:.9em;border:1px solid var(--color-border);color:var(--color-text-muted);box-shadow:inset 0 1px 2px #0000000d}.rule-item strong{color:var(--color-primary);font-weight:var(--font-semibold)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes iconBounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-12px)}60%{transform:translateY(-6px)}}@media (max-width: 768px){.game-type-container{padding:var(--space-md)}.game-type-card{padding:var(--space-4xl) 28px;max-width:500px}.type-header h2{font-size:1.8em}.type-header p{font-size:1.05em}.type-options{grid-template-columns:1fr;gap:var(--space-lg)}.type-option{padding:28px var(--space-lg)}.type-icon{font-size:3em;height:70px}.type-option h3{font-size:1.3em}.rules-grid{grid-template-columns:1fr}.suit-icon{width:32px;height:48px}}@media (max-width: 480px){.game-type-container{padding:var(--space-md)}.game-type-card{padding:28px var(--space-2xl);border-radius:var(--radius-lg)}.type-header{margin-bottom:var(--space-2xl)}.type-header h2{font-size:1.6em;margin-bottom:var(--space-sm)}.type-header p{font-size:1em}.game-icon{gap:var(--space-xs);margin-bottom:var(--space-xl)}.suit-icon{width:28px;height:42px}.type-options{gap:var(--space-md);grid-template-columns:1fr 1fr}.type-option{padding:var(--space-2xl) var(--space-lg);min-height:140px;display:flex;flex-direction:column;justify-content:center;align-items:center}.type-icon{font-size:2.5em;height:60px;margin-bottom:var(--space-md)}.type-option h3{font-size:1.15em;margin:0}.type-option p,.type-option ul{display:none}.type-badge{top:var(--space-sm);right:var(--space-sm);padding:var(--space-xs) var(--space-sm);font-size:.7em}}.dev-console{position:fixed;bottom:20px;right:20px;background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:18px;border-radius:12px;border:2px solid #ffc107;z-index:1000;min-width:260px;box-shadow:0 8px 32px #0006}.dev-info{font-size:.95em;color:#ffc107;margin-bottom:12px;font-weight:700;text-align:center;letter-spacing:.5px}.dev-actions{display:flex;flex-direction:column;gap:10px}.dev-btn{padding:8px 14px;border:none;border-radius:8px;font-size:.85em;cursor:pointer;transition:all .3s ease;font-weight:600;letter-spacing:.3px}.dev-btn.clear-session{background:#dc3545;color:#fff}.dev-btn.clear-session:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc354566}.dev-btn.view-storage{background:#17a2b8;color:#fff}.dev-btn.view-storage:hover{background:#138496;transform:translateY(-2px);box-shadow:0 4px 12px #17a2b866}.dev-btn.close-console{background:#6c757d;color:#fff}.dev-btn.close-console:hover{background:#545b62;transform:translateY(-2px);box-shadow:0 4px 12px #6c757d66}.dev-tools,.clear-session-btn{display:none}.game-mode-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-wood);padding:var(--space-xl);box-sizing:border-box;position:relative;font-family:system-ui,-apple-system,sans-serif}.game-mode-container:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);opacity:.3;pointer-events:none}.game-mode-card{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:35px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014,inset 0 1px #ffffff80;max-width:550px;width:100%;text-align:center;color:var(--color-text-dark);position:relative;z-index:1;border:1px solid rgba(107,79,42,.15)}.back-btn{position:absolute;top:var(--space-md);left:var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2em;color:var(--color-primary);transition:var(--transition-base);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs)}.back-btn:hover{background:#ddd2bf;transform:translateY(-1px);box-shadow:0 3px 6px #0000001f}.back-btn:active{transform:translateY(0);box-shadow:0 1px 3px #00000014}.mode-header{margin-bottom:28px}.game-icon{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}.suit-icon{width:36px;height:54px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.mode-header h2{margin:0 0 var(--space-sm) 0;color:var(--color-primary);font-size:2em;font-weight:var(--font-bold);letter-spacing:-.3px}.mode-header p{color:var(--color-text-muted);font-size:1.05em;margin:0;font-weight:var(--font-regular)}.mode-options{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:22px}.mode-option{background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);cursor:pointer;transition:var(--transition-base);position:relative;text-align:left;display:flex;align-items:center;gap:var(--space-lg);box-shadow:var(--shadow-sm)}.mode-option:hover{border-color:var(--color-accent-gold);background:#f9f5ee;box-shadow:var(--shadow-md);transform:translateY(-2px)}.mode-option:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.mode-option.selected{border-color:var(--color-accent-green);background:var(--color-accent-green);color:var(--color-text-light);box-shadow:0 4px 12px #2f5d3a4d}.mode-icon{font-size:2.2em;flex-shrink:0;width:75px;height:75px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-gold);border-radius:var(--radius-md);transition:transform .15s ease;box-shadow:var(--shadow-sm)}.mode-option:hover .mode-icon{transform:scale(1.03)}.mode-option.selected .mode-icon{background:var(--color-bg-main);transform:scale(1.03)}.mode-option-content{flex:1;min-width:0}.mode-option h3{margin:0 0 var(--space-xs) 0;color:var(--color-primary);font-size:1.15em;font-weight:var(--font-bold)}.mode-option.selected h3{color:var(--color-text-light)}.mode-option p{color:var(--color-text-muted);margin:0;font-size:.92em;line-height:1.4;font-weight:var(--font-regular)}.mode-option.selected p{color:#faf7f2e6}.mode-option ul{display:none}.mode-badge-mode{position:absolute;top:-10px;right:var(--space-md);background:var(--color-accent-gold);color:var(--color-text-dark);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:.75em;font-weight:var(--font-bold);box-shadow:var(--shadow-sm);letter-spacing:.5px;z-index:2;white-space:nowrap}.tournament-badge{background:#f6e05e;color:#744210;box-shadow:0 2px 6px #ecc94b4d}.ai-mode-section{background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:var(--transition-base);margin-bottom:var(--space-xl)}.ai-mode-section:hover{border-color:var(--color-accent-gold);background:#f9f5ee}.ai-section-header{display:flex;justify-content:center;margin-bottom:var(--space-md)}.ai-badge{color:var(--color-primary);font-size:.9em;font-weight:var(--font-bold)}.ai-mode-section>button{width:100%;background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);cursor:pointer;font-size:1.05em;font-weight:var(--font-semibold);transition:var(--transition-base);box-shadow:var(--shadow-sm)}.ai-mode-section>button:hover{background:#3a7348;transform:translateY(-2px);box-shadow:0 4px 10px #0003}.ai-mode-section>button:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.ai-akuze-option{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-md);text-align:left;box-shadow:inset 0 1px 2px #0000000d}.checkbox-container{display:flex;align-items:center;cursor:pointer;font-size:.95em;color:var(--color-primary);gap:var(--space-sm);font-weight:var(--font-semibold)}.checkbox-container input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent-green);cursor:pointer}.akuze-description{font-size:.85em;color:var(--color-text-muted);margin-top:var(--space-sm);line-height:1.4;font-weight:var(--font-regular)}.mode-info{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xs)}.mode-info h4{margin:0 0 var(--space-md) 0;color:var(--color-primary);font-size:1.05em;font-weight:var(--font-bold)}.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.rule-item{background:#fff;padding:var(--space-md);border-radius:var(--radius-md);font-size:.9em;color:var(--color-text-muted);text-align:center;border:1px solid var(--color-border);font-weight:var(--font-regular);box-shadow:inset 0 1px 2px #0000000d}.rule-item strong{color:var(--color-primary);margin-right:var(--space-xs);font-weight:var(--font-semibold);display:block;margin-bottom:var(--space-xs)}@media (max-width: 768px){.game-mode-card{padding:30px 25px}.mode-header h2{font-size:1.8em}}@media (max-width: 479px){.game-mode-container{padding:var(--space-md)}.game-mode-card{padding:var(--space-2xl) var(--space-lg);border-radius:var(--radius-lg)}.back-btn{width:36px;height:36px;top:var(--space-md);left:var(--space-md)}.game-icon{gap:var(--space-xs)}.suit-icon{width:30px;height:45px}.mode-header h2{font-size:1.5em}.mode-header p{font-size:.95em}.mode-option{padding:var(--space-lg);gap:var(--space-md)}.mode-icon{width:60px;height:60px;font-size:1.8em}.mode-option h3{font-size:1.05em}.mode-option p{font-size:.88em}.mode-badge-mode{font-size:.7em;padding:var(--space-xs) var(--space-sm);top:-8px;right:var(--space-sm)}.ai-mode-section>button{padding:var(--space-md) var(--space-xl);font-size:1em}.mode-info{padding:var(--space-md)}.rules-grid{grid-template-columns:1fr;gap:var(--space-sm)}.rule-item{padding:var(--space-sm);font-size:.88em;text-align:left}.rule-item strong{display:inline;margin-bottom:0}}@media (max-width: 360px){.game-mode-container{padding:var(--space-sm)}.game-mode-card{padding:var(--space-xl) var(--space-lg)}.mode-header h2{font-size:1.3em}.mode-icon{width:50px;height:50px;font-size:1.6em}}@media (max-height: 700px){.game-mode-container{padding:var(--space-sm);align-items:flex-start;padding-top:var(--space-xl)}.game-mode-card{padding:22px;margin:var(--space-sm) auto}.mode-header{margin-bottom:var(--space-lg)}.mode-options{gap:var(--space-sm);margin-bottom:var(--space-lg)}.mode-option{padding:var(--space-md) var(--space-lg)}.ai-mode-section{margin-bottom:var(--space-lg)}}@media (max-height: 600px){.game-mode-container{overflow-y:auto}.mode-info{max-height:120px;overflow-y:auto}}.create-game-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-xl);animation:fadeIn var(--transition-normal)}.create-game-modal{background:var(--color-bg-main);border-radius:var(--radius-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;color:var(--color-text-primary);box-shadow:var(--shadow-2xl);border:2px solid var(--color-border-main);animation:slideUp var(--transition-slow)}.create-game-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl) var(--space-2xl) var(--space-xl);border-bottom:2px solid var(--color-border-main)}.create-game-modal .modal-header h2{margin:0;font-size:var(--text-2xl);color:var(--color-primary);font-weight:var(--font-bold)}.create-game-modal .modal-close-btn,.create-game-modal .close-btn{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--color-primary);padding:var(--space-xs);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.create-game-modal .modal-close-btn:hover,.create-game-modal .close-btn:hover{background:var(--color-bg-tertiary);color:var(--color-primary-dark);transform:rotate(90deg)}.create-game-form{padding:var(--space-2xl)}.create-game-modal .form-section{margin-bottom:var(--space-2xl)}.create-game-modal .form-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-semibold);color:var(--color-primary);font-size:var(--text-sm)}.create-game-modal .form-input{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border-main);border-radius:var(--radius-md);font-size:var(--text-base);transition:all var(--transition-fast);background:#fff;color:var(--color-text-primary);font-family:var(--font-family)}.create-game-modal .form-input:focus{outline:none;border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #c9a86a26}.create-game-modal .form-input.error{border-color:var(--color-danger);box-shadow:0 0 0 3px #c4545426}.create-game-modal .error-text{display:block;color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-sm);font-weight:var(--font-medium)}.mode-selector{display:flex;gap:var(--space-md)}.mode-option-create{flex:1;cursor:pointer;border:2px solid var(--color-border-main);border-radius:var(--radius-md);padding:var(--space-lg);transition:all var(--transition-fast);background:var(--color-bg-secondary)}.mode-option-create:hover{border-color:var(--color-accent-gold);background:var(--color-bg-main);transform:translateY(-1px)}.mode-option-create.selected{border-color:var(--color-accent-green);background:var(--color-accent-green);color:var(--color-text-light)}.mode-option-create input[type=radio]{display:none}.mode-content{display:flex;align-items:center;gap:12px}.mode-icon{font-size:1.5rem}.mode-info{display:flex;flex-direction:column}.mode-title{font-weight:var(--font-semibold);color:var(--color-primary);font-size:var(--text-base)}.mode-option-create.selected .mode-title{color:var(--color-text-light)}.mode-desc{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:2px}.mode-option-create.selected .mode-desc{color:#faf7f2d9}.checkbox-wrapper{margin-bottom:var(--space-lg)}.checkbox-label{display:flex;align-items:center;gap:var(--space-md);cursor:pointer;font-weight:var(--font-medium);color:var(--color-primary)}.checkbox-label input[type=checkbox]{display:none}.checkbox-custom{width:20px;height:20px;border:2px solid var(--color-border-main);border-radius:var(--radius-sm);position:relative;transition:all var(--transition-fast);background:#fff}.checkbox-label input[type=checkbox]:checked+.checkbox-custom{background:var(--color-accent-green);border-color:var(--color-accent-green)}.checkbox-label input[type=checkbox]:checked+.checkbox-custom:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700}.checkbox-text{flex:1}.password-section{margin-top:var(--space-md);padding:var(--space-lg);background:#c9a86a1a;border-radius:var(--radius-md);border:1px solid rgba(201,168,106,.3)}.password-input{margin-bottom:var(--space-sm)}.password-hint{color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic}.game-preview{background:var(--color-bg-secondary);border:2px solid var(--color-border-main);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-2xl)}.game-preview h4{margin:0 0 var(--space-md) 0;color:var(--color-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.preview-content{display:flex;flex-direction:column;gap:var(--space-sm)}.preview-item{display:flex;justify-content:space-between;align-items:center}.preview-label{color:var(--color-text-secondary);font-weight:var(--font-medium);font-size:var(--text-sm)}.preview-value{color:var(--color-primary);font-weight:var(--font-semibold);font-size:var(--text-sm)}.modal-actions{display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-xl);border-top:2px solid var(--color-border-main);margin-top:var(--space-2xl)}.create-game-modal .cancel-btn,.create-game-modal .create-btn{flex:1;padding:var(--space-md) var(--space-xl)!important;border:none;border-radius:var(--radius-md)!important;cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-base);transition:all var(--transition-fast);width:100%!important;min-width:0!important;height:auto!important;box-shadow:var(--shadow-md)}.create-game-modal .cancel-btn{background:#8b7355;color:var(--color-text-light)}.create-game-modal .cancel-btn:hover{background:#9d8365;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.create-game-modal .create-btn{background:var(--color-accent-green);color:var(--color-text-light)}.create-game-modal .create-btn:hover{background:var(--color-accent-green-hover);transform:translateY(-1px);box-shadow:var(--shadow-lg)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.create-game-modal{max-width:100%;margin:0 var(--space-lg);max-height:85vh}.create-game-modal .modal-header{padding:var(--space-xl) var(--space-xl) var(--space-lg)}.create-game-modal .modal-header h2{font-size:var(--text-xl)}.create-game-form{padding:var(--space-xl)}.mode-selector{flex-direction:column;gap:var(--space-sm)}.mode-option-create{padding:var(--space-md)}.mode-content{gap:var(--space-sm)}.mode-icon{font-size:var(--text-xl)}.create-game-modal .form-section{margin-bottom:var(--space-xl)}.preview-content{gap:var(--space-sm)}.preview-item{flex-direction:column;align-items:flex-start;gap:2px}}@media (max-width: 480px){.create-game-modal{max-height:90vh}.create-game-modal .modal-header{padding:var(--space-lg)}.create-game-modal .modal-header h2{font-size:var(--text-lg)}.create-game-form{padding:var(--space-lg)}.create-game-modal .form-input{padding:var(--space-sm) var(--space-md)}.mode-option-create{padding:var(--space-sm)}.modal-actions{flex-direction:column;gap:var(--space-sm)}.create-game-modal .cancel-btn,.create-game-modal .create-btn{padding:var(--space-sm) var(--space-lg)!important}}.akuze-hint{font-size:var(--text-sm);color:#6c757d;margin-top:var(--space-xs);padding:var(--space-sm) var(--space-md);background:#ffc1071a;border-radius:var(--radius-sm);border-left:3px solid #ffc107}.success-modal{max-width:550px}.success-modal .modal-header h2{color:var(--color-success);display:flex;align-items:center;gap:var(--space-sm)}.success-content{padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-2xl)}.success-content .game-info{text-align:center;padding:var(--space-xl);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:2px solid var(--color-border-main)}.success-content .game-info h3{margin:0 0 var(--space-sm) 0;font-size:var(--text-xl);color:var(--color-text-primary)}.success-content .game-details{margin:0;font-size:var(--text-base);color:var(--color-text-secondary)}.room-code-section{background:linear-gradient(135deg,#4caf501a,#2e7d320d);border:2px solid var(--color-success);border-radius:var(--radius-md);padding:var(--space-xl);text-align:center}.room-code-label{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-md);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.room-code-display{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.room-code{font-size:2rem;font-weight:var(--font-bold);font-family:Courier New,monospace;letter-spacing:.25em;color:var(--color-primary);background:var(--color-bg-main);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);border:3px solid var(--color-primary);box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.room-code:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.copy-code-btn{background:var(--color-primary);color:#fff;border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-xs);white-space:nowrap}.copy-code-btn:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.copy-code-btn:active{transform:translateY(0)}.copy-code-btn.copied{background:var(--color-success);animation:pulse .3s ease-in-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.share-instructions{color:var(--color-text-secondary);font-size:var(--text-sm)}.share-instructions p{margin:var(--space-xs) 0}.instruction-detail{font-size:var(--text-xs);color:var(--color-text-tertiary)}.waiting-status{text-align:center;padding:var(--space-lg);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:2px dashed var(--color-border-main)}.waiting-animation{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.waiting-animation .dot{width:12px;height:12px;border-radius:50%;background:var(--color-primary);animation:bounce 1.4s infinite ease-in-out both}.waiting-animation .dot:nth-child(1){animation-delay:-.32s}.waiting-animation .dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(.5);opacity:.5}40%{transform:scale(1);opacity:1}}.waiting-status p{margin:var(--space-xs) 0;color:var(--color-text-secondary);font-size:var(--text-base)}.player-count{font-weight:var(--font-semibold);color:var(--color-primary);font-size:var(--text-lg)!important}.done-btn{background:var(--color-primary);color:#fff;border:none;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-md);width:100%}.done-btn:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.done-btn:active{transform:translateY(0)}@media (max-width: 600px){.success-modal{max-width:100%}.room-code{font-size:1.5rem;letter-spacing:.2em;padding:var(--space-sm) var(--space-lg)}.room-code-display{flex-direction:column;gap:var(--space-sm)}.copy-code-btn{width:100%;justify-content:center}}.game-lobby{min-height:100vh;background:var(--gradient-wood);padding:var(--space-xl);color:var(--color-text-light);position:relative}.game-lobby:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);opacity:.3;pointer-events:none}.lobby-header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;margin-bottom:var(--space-3xl);background:var(--color-bg-main);padding:var(--space-xl);border-radius:var(--radius-lg);border:2px solid var(--color-border);box-shadow:var(--shadow-lg);color:var(--color-text-dark)}.header-left{display:flex;justify-content:flex-start;margin-top:50px}.header-center{display:flex;justify-content:center}.header-center h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary);letter-spacing:-.3px}.header-right{display:flex;justify-content:flex-end;gap:var(--space-md)}.back-btn{top:var(--space-3xl);left:var(--space-3xl)}.refresh-btn,.create-btn{background:var(--color-accent-gold);border:none;color:var(--color-text-dark);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-sm);transition:var(--transition-base);box-shadow:var(--shadow-md)}.refresh-btn:hover,.create-btn:hover{background:#d4b57a;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.create-btn{background:var(--color-accent-green);color:var(--color-text-light)}.create-btn:hover{background:#3a7348}.create-first-btn{background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-lg) var(--space-4xl);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-lg);transition:var(--transition-base);box-shadow:0 3px 8px #2f5d3a4d}.create-first-btn:hover{background:#3a7348;transform:translateY(-2px);box-shadow:0 4px 12px #2f5d3a66}.join-btn{background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-base);transition:var(--transition-base);width:100%;box-shadow:var(--shadow-md)}.join-btn:hover:not(:disabled){background:#3a7348;transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.join-btn:disabled{background:var(--color-text-muted);cursor:not-allowed;transform:none;box-shadow:none;opacity:.6}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-5xl);border:2px solid var(--color-border);margin:var(--space-xl) 0;color:var(--color-text-dark)}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border-light);border-top:4px solid var(--color-accent-gold);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:var(--space-lg)}.error-banner{background:var(--color-danger);color:var(--color-text-light);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md)}.error-banner button{background:none;border:none;color:var(--color-text-light);cursor:pointer;font-size:var(--text-lg);padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.error-banner button:hover{background:#faf7f233}.join-code-section{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-2xl);margin-bottom:var(--space-2xl);border:2px solid var(--color-border);box-shadow:var(--shadow-lg)}.join-code-header{text-align:center;margin-bottom:var(--space-xl)}.join-code-header h2{margin:0 0 var(--space-sm) 0;font-size:var(--text-xl);color:var(--color-primary);font-weight:var(--font-bold);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.join-code-header p{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.join-code-form{display:flex;gap:var(--space-md);max-width:600px;margin:0 auto}.room-code-input{flex:1;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-lg);font-family:Courier New,monospace;font-weight:var(--font-bold);letter-spacing:.15em;text-transform:uppercase;background:var(--color-bg-secondary);color:var(--color-text-primary);transition:all var(--transition-fast)}.room-code-input::placeholder{font-family:var(--font-body);font-weight:var(--font-normal);letter-spacing:normal;text-transform:none;font-size:var(--text-sm);color:var(--color-text-tertiary)}.room-code-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg-main);box-shadow:0 0 0 3px #4caf501a}.room-code-input:disabled{opacity:.6;cursor:not-allowed}.join-code-btn{padding:var(--space-md) var(--space-2xl);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-md);white-space:nowrap;display:flex;align-items:center;gap:var(--space-sm)}.join-code-btn:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.join-code-btn:active:not(:disabled){transform:translateY(0)}.join-code-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.no-games{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-5xl);border:2px solid var(--color-border);margin:var(--space-xl) 0;color:var(--color-text-dark)}.no-games-icon{font-size:5rem;margin-bottom:var(--space-xl);opacity:.7;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.no-games h3{margin:0 0 var(--space-md) 0;font-size:var(--text-3xl);color:var(--color-primary)}.no-games p{margin:0 0 var(--space-3xl) 0;opacity:.85;font-size:var(--text-lg);text-shadow:0 1px 2px rgba(0,0,0,.1)}.games-section{flex:1}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-xl);margin-top:var(--space-sm)}.game-card{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-2xl);color:var(--color-text-dark);box-shadow:var(--shadow-lg);transition:var(--transition-base);border:2px solid var(--color-border);position:relative;overflow:hidden}.game-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-accent-green)}.game-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:var(--color-accent-gold)}.game-header-lobby{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--color-border-light);min-height:32px;margin-top:var(--space-xl)}.game-title-area{display:flex;align-items:center;gap:var(--space-md);flex:1;min-height:32px}.game-header-lobby h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-primary);flex:1;line-height:1.3}.game-badges{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0;margin-left:var(--space-md)}.mode-badge{background:var(--color-accent-gold);color:var(--color-text-light);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm)}.password-badge{color:#b5860a;font-size:var(--text-lg);background:#fef3cd;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid #f5e5a0}.delete-btn{background:var(--color-danger);color:var(--color-text-light);border:none;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);transition:var(--transition-base);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;position:relative;flex-shrink:0;margin-left:var(--space-sm)}.delete-btn:hover{background:#a73939;transform:translateY(-1px);box-shadow:0 3px 8px #c454544d}.delete-btn:active{transform:translateY(0);box-shadow:0 2px 4px #c454544d}.game-info{margin-bottom:var(--space-lg)}.game-info p{margin:0 0 var(--space-sm) 0;color:#4a5568;font-size:var(--text-base)}.game-info strong{color:#2d3748;font-weight:var(--font-semibold)}.created-time{color:#6b7280!important;font-size:var(--text-xs)!important;font-style:italic}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-xl)}.password-modal,.confirm-delete-modal{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:0;max-width:400px;width:100%;color:var(--color-text-dark);box-shadow:var(--shadow-2xl);border:2px solid var(--color-border)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xl) var(--space-2xl) var(--space-lg);border-bottom:2px solid var(--color-border-light)}.modal-header h3{margin:0;font-size:var(--text-lg);color:var(--color-primary);font-weight:var(--font-semibold)}.close-btn{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--color-text-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-base)}.close-btn:hover{background:var(--color-bg-secondary);color:var(--color-primary)}.modal-body{padding:var(--space-xl) var(--space-2xl)}.modal-body p{margin:0 0 var(--space-lg) 0;color:var(--color-text-medium);font-size:var(--text-base)}.modal-body input{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);transition:var(--transition-base);box-sizing:border-box;background:#fff}.modal-body input:focus{outline:none;border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #c9a86a26}.error-text{color:var(--color-danger)!important;font-size:var(--text-sm)!important;margin:var(--space-sm) 0 0 0!important;font-weight:var(--font-medium)}.modal-footer{display:flex;gap:var(--space-lg);padding:var(--space-xl) var(--space-2xl) var(--space-2xl);border-top:2px solid var(--color-border-light);margin-top:var(--space-sm)}.cancel-btn,.submit-btn{flex:1;padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-base);transition:var(--transition-base);min-height:48px;display:flex;align-items:center;justify-content:center}.cancel-btn{background:var(--color-text-muted);color:var(--color-text-light);box-shadow:var(--shadow-md)}.cancel-btn:hover{background:#6b5a45;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.submit-btn{background:var(--color-accent-green);color:var(--color-text-light);box-shadow:var(--shadow-md)}.submit-btn:hover:not(:disabled){background:#3a7348;transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.submit-btn:disabled{background:#a8b4a0;cursor:not-allowed;transform:none;box-shadow:none}.confirm-delete-modal .modal-body{text-align:center;padding:var(--space-3xl) var(--space-2xl) var(--space-xl)}.warning-icon{font-size:3rem;margin-bottom:var(--space-lg);color:#d68d30;filter:drop-shadow(0 2px 4px rgba(214,141,48,.3))}.confirm-message{font-size:var(--text-lg);margin:0 0 var(--space-md) 0;color:var(--color-primary);font-weight:var(--font-medium)}.warning-text{font-size:var(--text-sm);color:var(--color-text-medium);margin:0;line-height:1.4}.delete-confirm-btn{flex:1;padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);font-size:var(--text-base);transition:var(--transition-base);min-height:48px;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);background:var(--color-danger);color:var(--color-text-light);box-shadow:var(--shadow-md)}.delete-confirm-btn:hover{background:#a73939;transform:translateY(-1px);box-shadow:0 3px 8px #c454544d}.delete-confirm-btn:active{transform:translateY(0);box-shadow:0 2px 4px #c454544d}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.game-lobby{padding:var(--space-lg)}.lobby-header{grid-template-columns:1fr;grid-auto-rows:auto;padding:var(--space-lg);gap:var(--space-md);align-items:center;justify-items:center}.header-left{margin-top:0;width:10%;justify-content:flex-start}.header-center{text-align:center;min-width:0;width:100%}.header-center h1{font-size:var(--text-xl);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:0}.header-right{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.header-right .elo-widget{min-width:unset;width:100%;justify-content:center}.refresh-btn,.create-btn{padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);min-width:auto}.refresh-btn .btn-text,.create-btn .btn-text{display:none}.refresh-btn,.create-btn{padding:var(--space-md);min-width:44px;width:44px;height:44px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg)}.games-grid{grid-template-columns:1fr;gap:var(--space-lg)}.game-card{padding:var(--space-lg)}.game-header-lobby{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.game-title-area{width:100%;justify-content:space-between;align-items:center}.game-badges{align-self:flex-end;flex-wrap:wrap;margin-left:0}.delete-btn{min-width:28px;height:28px;font-size:var(--text-xs)}.no-games{padding:var(--space-3xl) var(--space-xl);margin:var(--space-sm) 0}.no-games-icon{font-size:4rem}.no-games h3{font-size:var(--text-xl)}.modal-overlay{padding:var(--space-lg)}.password-modal,.confirm-delete-modal{max-width:100%}.modal-footer{padding:var(--space-lg) var(--space-xl) var(--space-xl);gap:var(--space-md)}.cancel-btn,.submit-btn,.delete-confirm-btn{padding:var(--space-md) var(--space-lg);font-size:var(--text-base);min-height:44px}.confirm-delete-modal .modal-body{padding:var(--space-2xl) var(--space-lg) var(--space-lg)}.warning-icon{font-size:2.5rem;margin-bottom:var(--space-md)}.join-code-section{padding:var(--space-xl)}.join-code-form{flex-direction:column}.room-code-input{width:100%;text-align:center}.join-code-btn{width:100%;justify-content:center;padding:var(--space-md)}}@media (max-width: 480px){.lobby-header{grid-template-columns:1fr;gap:var(--space-md);padding:var(--space-md);align-items:center;justify-items:center}.header-center{min-width:0}.header-center h1{font-size:var(--text-xl);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.refresh-btn,.create-btn{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);min-width:auto}.refresh-btn .btn-text,.create-btn .btn-text{display:none}.refresh-btn,.create-btn{padding:var(--space-sm);min-width:40px;width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg)}.header-right{flex-direction:column;align-items:center;gap:var(--space-xs)}.game-header-lobby{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.game-title-area{width:100%;justify-content:space-between}.game-badges{align-self:flex-end;flex-wrap:wrap}.delete-btn{min-width:28px;height:28px;font-size:var(--text-xs)}.no-games{padding:var(--space-xl) var(--space-md)}.no-games-icon{font-size:3.5rem}.modal-footer{padding:var(--space-md) var(--space-lg) var(--space-lg);gap:var(--space-sm)}.cancel-btn,.submit-btn,.delete-confirm-btn{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);min-height:40px}.confirm-delete-modal .modal-body{padding:var(--space-xl) var(--space-md) var(--space-md)}.warning-icon{font-size:2rem;margin-bottom:var(--space-sm)}.confirm-message{font-size:var(--text-base)}.warning-text{font-size:var(--text-xs)}}.elo-widget{display:flex;align-items:center;gap:var(--space-md);background:var(--color-bg-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:2px solid var(--color-border);font-family:system-ui,sans-serif;min-width:280px}.elo-widget.compact{padding:var(--space-xs) var(--space-sm);min-width:200px}.elo-left{display:flex;align-items:center;gap:var(--space-sm)}.elo-badge{width:42px;height:42px;border-radius:50%;background:var(--color-accent-wood);color:var(--color-text-light);display:flex;align-items:center;justify-content:center;font-weight:var(--font-semibold);font-size:var(--text-lg);box-shadow:var(--shadow-sm);position:relative}.level-1{background:#6b5a45;color:#faf7f2}.level-2{background:#7d6851;color:#faf7f2}.level-3{background:#8b7355;color:#faf7f2}.level-4{background:#9a8466;color:#faf7f2}.level-5{background:#a89374;color:#3a3126}.level-6{background:#b5a17f;color:#3a3126}.level-7{background:#c2ae8a;color:#3a3126}.level-8{background:#c9a86a;color:#3a3126}.level-9{background:#d1b577;color:#3a3126}.level-10{background:linear-gradient(135deg,#f5b342,#d98c00);color:#3a3126;font-weight:700}.elo-numbers{display:flex;flex-direction:column}.elo-value{font-size:var(--text-md);font-weight:var(--font-semibold);letter-spacing:.5px;color:var(--color-primary)}.elo-level-label{font-size:var(--text-xs);opacity:.75;color:var(--color-text-muted)}.elo-progress-wrapper{flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.elo-progress-bar{position:relative;background:var(--color-bg-tertiary);height:10px;border-radius:var(--radius-sm);overflow:hidden}.elo-progress-fill{position:absolute;top:0;left:0;bottom:0;background:var(--color-accent-green);transition:width .4s ease}.elo-progress-text{font-size:11px;letter-spacing:.5px;opacity:.8;color:var(--color-text-muted)}.elo-widget.unranked{justify-content:center;min-width:unset;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:2px solid var(--color-border);box-shadow:var(--shadow-sm)}.elo-unranked-pill{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);background:var(--color-accent-green);color:var(--color-text-light);font-weight:var(--font-semibold);font-size:var(--text-sm);letter-spacing:.4px;white-space:nowrap;box-shadow:var(--shadow-sm);position:relative}.elo-unranked-pill:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(90deg,#faf7f24d,#faf7f200);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5}.elo-unranked-pill:hover{filter:brightness(1.08);transform:translateY(-1px);transition:var(--transition-base)}@media (max-width: 640px){.elo-widget{padding:var(--space-sm) var(--space-sm);gap:var(--space-sm);min-width:unset}.elo-badge{width:36px;height:36px;font-size:var(--text-md)}.elo-value{font-size:var(--text-sm)}.elo-progress-text{display:none}}.tournament-bracket-container{padding:calc(var(--user-header-height) + 10px) var(--space-xl) var(--space-xl);background:var(--gradient-wood);min-height:100vh;color:var(--color-text-dark)}.bracket-header{display:flex;align-items:flex-start;gap:var(--space-xl);margin-bottom:var(--space-4xl);padding-bottom:var(--space-xl);border-bottom:3px solid var(--color-accent-gold);margin-top:0;position:relative;top:-50px}.bracket-header .back-btn-bracket{position:relative;top:0;left:0}.back-btn-bracket{background:var(--color-danger);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-bold);transition:var(--transition-base);white-space:nowrap;box-shadow:var(--shadow-sm)}.back-btn-bracket:hover{background:var(--color-danger-dark);transform:translateY(-1px);box-shadow:0 3px 8px #c454544d}.tournament-info h2{margin:0 0 var(--space-sm) 0;color:var(--color-accent-gold);font-size:2.2em}.tournament-meta{display:flex;gap:var(--space-xl);margin-bottom:var(--space-sm);flex-wrap:wrap}.tournament-meta span{background:var(--color-bg-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);font-size:.9em;border:2px solid var(--color-border-main);color:var(--color-text-muted)}.prize-pool{background:var(--color-accent-gold);color:var(--color-text-dark);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-weight:var(--font-bold);display:inline-block;margin-top:var(--space-sm);box-shadow:var(--shadow-sm)}.bracket-container{display:flex;gap:var(--space-4xl);overflow-x:auto;padding:var(--space-xl) 0;min-height:600px}.bracket-round{min-width:280px;flex-shrink:0}.round-title{text-align:center;margin-bottom:var(--space-xl);color:var(--color-accent-gold);font-size:1.4em;text-transform:uppercase;letter-spacing:.5px}.round-matches{display:flex;flex-direction:column;gap:var(--space-xl)}.bracket-match{background:var(--color-bg-main);border:2px solid var(--color-border-main);border-radius:var(--radius-lg);padding:var(--space-xl);transition:var(--transition-base);position:relative;overflow:visible;z-index:1}.bracket-match:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(201,168,106,.1),transparent);opacity:0;transition:opacity .15s ease}.bracket-match:hover:before{opacity:1}.bracket-match.pending{border-color:var(--color-accent-green);box-shadow:0 0 15px #2f5d3a33}.bracket-match.finished{border-color:var(--color-accent-gold);box-shadow:0 0 15px #c9a86a33}.bracket-match.waiting{border-color:var(--color-accent-wood);opacity:.7}.match-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-border-main)}.match-title{font-weight:var(--font-bold);color:var(--color-accent-gold);font-size:1.1em}.match-deadline{font-size:.8em;color:var(--color-danger);background:var(--color-bg-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs)}.match-players{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.player{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:2px solid var(--color-border-main);transition:var(--transition-base);color:var(--color-text-dark)}.player.winner{border-color:var(--color-accent-gold);background:var(--color-accent-gold-light);transform:scale(1.05);box-shadow:var(--shadow-md)}.player-name{font-weight:var(--font-bold);text-align:center;min-height:var(--space-xl);color:var(--color-primary)}.match-vs{color:var(--color-accent-gold);font-weight:var(--font-bold);font-size:1.2em;text-shadow:0 1px 2px rgba(0,0,0,.1)}.report-win-btn{background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;font-size:.9em;font-weight:var(--font-bold);transition:var(--transition-base);box-shadow:var(--shadow-sm)}.report-win-btn:hover{background:var(--color-accent-green-hover);transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.match-actions{text-align:center;margin-top:var(--space-sm);position:relative;z-index:10}.start-match-btn{background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-bold);transition:var(--transition-base);font-size:1.1em;position:relative;z-index:20;pointer-events:auto;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm)}.start-match-btn:hover{background:var(--color-accent-green-hover);transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.start-match-btn:active{transform:translateY(0);box-shadow:0 2px 4px #2f5d3a4d}.match-result{text-align:center;background:var(--color-accent-gold);color:var(--color-text-dark);padding:var(--space-md);border-radius:var(--radius-md);font-weight:var(--font-bold);margin-top:var(--space-sm);box-shadow:var(--shadow-sm)}.match-waiting{text-align:center;color:var(--color-accent-wood);font-style:italic;padding:var(--space-md);margin-top:var(--space-sm)}.match-spectate{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:var(--space-md);margin-top:var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--color-border-main)}.spectate-wrapper{text-align:center;margin-top:var(--space-sm)}.spectate-btn{background:var(--color-info);color:var(--color-text-light);border:none;padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-semibold);display:inline-flex;align-items:center;gap:var(--space-xs);transition:var(--transition-base);box-shadow:var(--shadow-sm)}.spectate-btn:hover{background:var(--color-info-dark);transform:translateY(-1px);box-shadow:0 3px 8px #3a6b8c4d}.spectate-btn:active{transform:translateY(0)}.spectate-btn.disabled{background:var(--color-accent-wood);cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.live-badge{display:inline-block;margin-left:var(--space-sm);background:var(--color-danger);color:var(--color-text-light);font-size:.65rem;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);letter-spacing:.5px;font-weight:var(--font-bold);animation:pulseLive 1.6s infinite;box-shadow:0 0 0 2px #c4545433}@keyframes pulseLive{0%{box-shadow:0 0 #c4545480}70%{box-shadow:0 0 0 8px #c4545400}to{box-shadow:0 0 #c4545400}}.pending-badge{display:inline-block;margin-left:var(--space-sm);background:var(--color-pending);color:var(--color-text-dark);font-size:.65rem;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);letter-spacing:.5px;font-weight:var(--font-semibold);box-shadow:0 0 0 2px #d68d3026}.tournament-winner{text-align:center;margin-top:var(--space-5xl);padding:var(--space-4xl);background:var(--color-accent-gold);color:var(--color-text-dark);border-radius:var(--radius-lg);box-shadow:0 5px 20px #c9a86a4d;border:3px solid var(--color-accent-gold-dark)}.tournament-winner h3{margin:0 0 var(--space-md) 0;font-size:2em;text-transform:uppercase;letter-spacing:2px;color:var(--color-primary)}.winner-name{font-size:2.5em;font-weight:var(--font-bold);text-shadow:1px 1px 2px rgba(0,0,0,.15);color:var(--color-primary)}.loading-spinner{display:flex;justify-content:center;align-items:center;height:200px;font-size:3em}@media (max-width: 768px){.tournament-bracket-container{padding:var(--space-md)}.bracket-header{flex-direction:column;gap:var(--space-md)}.tournament-meta{flex-direction:column;gap:var(--space-sm)}.bracket-container{gap:var(--space-xl);padding:var(--space-md) 0}.bracket-round{min-width:280px}.match-players{flex-direction:column;gap:var(--space-sm)}.match-vs{transform:rotate(90deg)}.tournament-winner{padding:var(--space-xl)}.winner-name{font-size:2em}}@keyframes matchAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bracket-match{animation:matchAppear .5s ease-out}.bracket-match.pending{animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 20px #4ade8033}50%{box-shadow:0 0 30px #4ade8066}}.floating-back-btn{position:fixed;bottom:var(--space-xl);left:var(--space-xl);background:var(--gradient-danger);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-lg);font-size:var(--text-md);font-weight:var(--font-bold);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-xl);z-index:999;transition:transform .2s ease,box-shadow .3s ease}.floating-back-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000080}.floating-back-btn:active{transform:translateY(-1px)}.tournament-lobby{display:flex;flex-direction:column;gap:var(--space-xl);min-height:100vh;background:var(--gradient-wood);padding:var(--space-xl);color:var(--color-text-dark)}.lobby-header-tournament{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;background:var(--color-bg-main);padding:var(--space-xl) 30px;border-radius:var(--radius-lg);margin-top:0;border:2px solid var(--color-border);box-shadow:var(--shadow-lg)}.lobby-header-tournament h1{margin:0;font-size:1.8rem;text-align:center;flex:1;color:var(--color-primary)}.header-left-tournament,.header-right-tournament{display:flex;gap:var(--space-sm)}.back-btn-tournament,.refresh-btn{background:var(--color-accent-wood);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;font-size:1rem;transition:var(--transition-base);display:flex;align-items:center;gap:var(--space-sm);box-shadow:var(--shadow-sm)}.refresh-btn:hover{background:#6b5a45;transform:translateY(-1px);box-shadow:0 3px 8px #0003}.error-banner{background:var(--color-danger);color:var(--color-text-light);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm)}.success-banner{background:var(--color-accent-green);color:var(--color-text-light);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm)}.error-banner button,.success-banner button{background:none;border:none;color:var(--color-text-light);font-size:1.2rem;cursor:pointer;padding:0 var(--space-xs)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px;text-align:center;background:var(--color-bg-main);border-radius:var(--radius-lg);border:2px solid var(--color-border);color:var(--color-text-dark)}.loading-spinner{width:40px;height:40px;border:4px solid var(--color-bg-tertiary);border-top:4px solid var(--color-accent-gold);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-xl)}.tournaments-section{margin-bottom:20px;flex-shrink:0;max-height:clamp(320px,55vh,680px);overflow-y:auto;padding-right:6px}.tournaments-section::-webkit-scrollbar{width:10px}.tournaments-section::-webkit-scrollbar-track{background:#d4c5b04d;border-radius:var(--radius-md)}.tournaments-section::-webkit-scrollbar-thumb{background:var(--color-accent-gold);border-radius:var(--radius-md)}.tournaments-section::-webkit-scrollbar-thumb:hover{background:#b5925c}.no-tournaments{text-align:center;background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-2xl);max-width:500px;margin:0 auto;border:2px solid var(--color-border);color:var(--color-text-dark);max-height:inherit;overflow-y:auto}.no-tournaments-icon{font-size:2.8rem;margin-bottom:var(--space-md)}.no-tournaments h3{margin:0 0 var(--space-sm) 0;font-size:1.25rem;font-weight:var(--font-bold);color:var(--color-primary)}.no-tournaments p{margin:var(--space-xs) 0 0 0;font-size:.95rem;color:var(--color-text-muted)}.no-tournaments .tournament-info{margin-top:var(--space-lg);text-align:left}.no-tournaments .tournament-info h4{color:var(--color-accent-gold);margin-bottom:var(--space-sm);font-size:1rem}.no-tournaments .tournament-info ul{list-style:none;padding:0}.no-tournaments .tournament-info li{padding:6px 0;font-size:.95rem;border-bottom:1px solid #e8dfd0}.tournaments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-xl);max-width:1200px;margin:0 auto;padding-bottom:var(--space-sm)}.tournament-card{background:var(--color-bg-main);color:var(--color-text-dark);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-lg);transition:transform .15s ease,box-shadow .15s ease;border:2px solid var(--color-border)}.tournament-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.tournament-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xl)}.tournament-header h3{margin:0;font-size:1.3rem;color:var(--color-primary);flex:1}.tournament-badges{display:flex;gap:var(--space-sm)}.status-badge{background:var(--color-accent-green);color:var(--color-text-light);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:.8rem;font-weight:var(--font-semibold);box-shadow:var(--shadow-xs)}.status-badge.registration{background:#3a6b8c}.tournament-info{margin-bottom:var(--space-xl)}.participants-info{margin-bottom:var(--space-md)}.participants-count{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.participants-count .count{font-size:1.2rem;font-weight:var(--font-bold);color:var(--color-primary)}.participants-count .label{color:var(--color-text-muted);font-size:.9rem}.participants-bar{width:100%;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);overflow:hidden}.participants-fill{height:100%;background:var(--color-accent-green);border-radius:var(--radius-md);transition:width .3s ease}.tournament-info p{margin:var(--space-sm) 0;color:var(--color-text-muted);font-size:.9rem}.tournament-info strong{color:var(--color-primary)}.created-time{color:var(--color-accent-wood)!important;font-size:.8rem!important}.tournament-actions{display:flex;gap:var(--space-sm)}.back-btn-tournament{position:absolute;top:100px;left:30px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2em;color:var(--color-primary);transition:var(--transition-base);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs)}@media (max-width: 768px){.back-btn-tournament{top:90px;left:var(--space-xl)}}.register-btn,.view-bracket-btn{flex:1;background:var(--color-accent-green);color:var(--color-text-light);border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);box-shadow:var(--shadow-sm)}.register-btn:hover{background:#3a7348;transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.view-bracket-btn:hover:not(:disabled){background:#3a7348;transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.register-btn:disabled{background:#a8b4a0;color:#f4efe6;cursor:not-allowed;transform:none;box-shadow:none}.view-bracket-btn:disabled{background:#a8b4a0;color:#f4efe6;cursor:not-allowed;transform:none;box-shadow:none}.tournament-rules{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:30px;max-width:800px;margin:0 auto;border:2px solid var(--color-border);box-shadow:var(--shadow-lg)}.tournament-rules h4{color:var(--color-accent-gold);margin:0 0 var(--space-xl) 0;font-size:1.3rem;text-align:center}.rules-grid-tournament{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md)}.rule-item-tournament{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);text-align:center;border:1px solid var(--color-bg-tertiary);color:var(--color-text-dark)}.rule-item-tournament strong{color:var(--color-accent-gold);display:block;margin-bottom:var(--space-xs)}@media (max-width: 768px){.tournament-lobby{padding:var(--space-sm)}.lobby-header-tournament{padding:var(--space-md) var(--space-xl);flex-direction:row;gap:var(--space-md)}.lobby-header-tournament h1{font-size:1.4rem}.tournaments-grid{grid-template-columns:1fr;gap:var(--space-md)}.tournaments-section{max-height:50vh}.tournament-card{padding:var(--space-xl)}.no-tournaments{padding:var(--space-lg)}.no-tournaments-icon{font-size:2.2rem;margin-bottom:var(--space-sm)}.no-tournaments h3{font-size:1.1rem}.no-tournaments p,.no-tournaments .tournament-info li{font-size:.9rem}.rules-grid-tournament{grid-template-columns:1fr;gap:var(--space-sm)}.tournament-rules{padding:var(--space-xl)}}.card{position:relative;cursor:pointer;transition:all .3s ease;border-radius:var(--radius-md);overflow:visible}.card-image{width:80px;height:150px;object-fit:cover;border-radius:var(--radius-md);transition:all .3s ease;display:block}.card-medium .card-image,.card-large .card-image{width:80px;height:150px}.card-played .card-image{width:45px;height:80px}.card-small .card-image{width:60px;height:110px}.card-playable:hover:not(.card-selected){transform:translateY(-12px) scale(1.05)}.card:active,.card:focus{transform:none!important}.card-playable:not(:hover){transition:transform .2s ease-out}.card-selected{transform:translateY(-20px) scale(1.08)}.card-selected:after{content:"";position:absolute;inset:-4px;background:linear-gradient(45deg,orange,#ff0);border-radius:var(--radius-lg);z-index:-1;opacity:.6;animation:glow 1.5s infinite alternate}@keyframes glow{0%{opacity:.6}to{opacity:.5}}.card:not(.card-playable){opacity:.7;cursor:default;position:relative}.card:not(.card-playable):hover{transform:none}.card:not(.card-playable):before{content:"";position:absolute;inset:0;background-color:#80808066;border-radius:var(--radius-md);z-index:1;pointer-events:none}.card-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.card-disabled:before{content:"";position:absolute;inset:0;background-color:#f003;border-radius:var(--radius-md);z-index:1;pointer-events:none}@media (max-width: 768px){.card-played .card-image{width:35px;height:65px}}@media (max-width: 480px){.card-played .card-image{width:30px;height:55px}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;overflow:auto;padding:0;margin:0}.game-wrapper{width:100vw;height:100svh;background:linear-gradient(135deg,var(--color-game-primary-dark) 0%,var(--color-game-primary) 50%,var(--color-game-primary-dark) 100%);display:flex;flex-direction:column;position:relative;overflow:hidden;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.game-header{background:#fffffff2;padding:var(--space-sm) var(--space-lg);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);z-index:10;position:relative;min-height:60px}.game-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-game-primary-dark);margin:0}.title-suit-icon{height:1.7em;width:auto;vertical-align:middle;margin-right:.4em;margin-bottom:.15em;display:inline-block}.players-names{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-md);font-size:.9rem;font-weight:var(--font-semibold);z-index:5}.player-name-simple{color:var(--color-game-primary);transition:var(--transition-base)}.player-name-simple.active{color:var(--color-game-primary-dark);font-weight:var(--font-bold);text-shadow:0 1px 2px rgba(0,0,0,.1)}.opponent-name-simple{color:var(--color-game-danger);transition:var(--transition-base)}.opponent-name-simple.active{color:var(--color-game-danger-hover);font-weight:var(--font-bold);text-shadow:0 1px 2px rgba(0,0,0,.1)}.vs-simple{color:var(--color-game-gray);font-size:var(--text-sm);font-weight:var(--font-medium)}.desktop-controls{display:flex;gap:var(--space-md)}.game-btn{padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base)}.btn-primary{background:var(--color-game-primary);color:var(--color-text-light)}.btn-primary:hover{background:var(--color-game-primary-hover)}.btn-secondary{background:var(--color-game-secondary);color:var(--color-text-light)}.btn-secondary:hover{background:var(--color-game-secondary-hover)}.btn-danger{background:var(--color-game-danger);color:var(--color-text-light)}.btn-danger:hover{background:var(--color-game-danger-hover)}.btn-success{background:var(--color-game-success);color:var(--color-text-light)}.btn-success:hover{background:var(--color-game-success-hover)}.btn-warning{background:var(--color-game-warning);color:var(--color-text-primary)}.btn-warning:hover{background:var(--color-game-warning-hover)}.akuze-button-container{display:flex;align-items:center}.akuze-select{appearance:none;background:var(--color-game-success);color:var(--color-text-light);border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-xs);font-size:var(--text-sm);cursor:pointer;min-width:100px;max-width:200px}.akuze-select:hover{background:var(--color-game-success-hover)}.akuze-select option{background:var(--color-bg-main);color:var(--color-text-primary);padding:var(--space-xs)}.akuze-modal{max-width:500px}.akuze-selection{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-xl) 0}.akuz-option{background:linear-gradient(135deg,var(--color-game-warning) 0%,#ffb300 100%);border:none;border-radius:var(--radius-md);padding:var(--space-lg);cursor:pointer;transition:var(--transition-normal);text-align:left;box-shadow:var(--shadow-sm)}.akuz-option:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--color-game-warning-hover) 0%,#d69e00 100%)}.akuz-description{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.akuz-points{font-size:var(--text-sm);color:var(--color-game-green-dark);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.akuz-cards{display:flex;gap:var(--space-sm);flex-wrap:wrap}.akuz-card{background:#0000001a;padding:3px var(--space-sm);border-radius:var(--radius-xs);font-size:var(--text-xs);color:var(--color-text-primary)}.mobile-header-buttons{display:none}.floating-btn{width:40px;height:40px;border-radius:var(--radius-full);border:none;cursor:pointer;font-size:var(--text-lg);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:var(--transition-base);margin:0 var(--space-xs)}.details-btn{background:var(--color-game-primary);color:var(--color-text-light)}.details-btn:hover{background:var(--color-game-primary-hover);transform:scale(1.05)}.exit-btn{background:var(--color-game-danger);color:var(--color-text-light)}.exit-btn:hover{background:var(--color-game-danger-hover);transform:scale(1.05)}.akuze-btn{background:var(--color-game-warning);color:var(--color-text-primary);width:50px;height:50px;border-radius:var(--radius-full);border:none;cursor:pointer;font-size:var(--text-lg);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:var(--transition-base);margin:0 var(--space-xs);appearance:none}.akuze-btn:hover{background:var(--color-game-warning-hover);transform:scale(1.05)}@keyframes statusFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.game-area{flex:1;display:flex;flex-direction:column;justify-content:flex-start;padding:var(--space-3xl);position:relative;overflow:hidden;gap:var(--space-xl)}@media (max-width: 1199px) and (min-width: 900px){.game-area{padding:var(--space-xl)}}@media (max-width: 899px) and (min-width: 700px){.game-area{padding:var(--space-lg)}}@media (max-width: 699px) and (min-width: 500px){.game-area{padding:var(--space-md)}}@media (max-width: 499px){.game-area{padding:var(--space-sm)}}@media (max-height: 700px){.game-area{padding:var(--space-sm)}}@media (max-height: 600px){.game-area{padding:var(--space-sm)}}.opponent-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-top:var(--space-md)}.opponent-avatar-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:6px;background:#dc354533;border:2px solid rgba(220,53,69,.5);border-radius:8px;transition:all .3s ease}.opponent-avatar-display:has(.turn-indicator){box-shadow:0 0 15px #ffc107cc;border-color:var(--color-game-warning)}.player-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:var(--text-base);font-weight:var(--font-bold);color:var(--color-text-light);text-shadow:0 2px 4px rgba(0,0,0,.3)}.opponent-name{color:var(--color-text-light);font-size:var(--text-sm);font-weight:var(--font-semibold);text-shadow:0 1px 3px rgba(0,0,0,.3);text-align:center;line-height:1}.opponent-cards-indicator{display:flex;align-items:center;gap:2px;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-light);text-shadow:0 1px 2px rgba(0,0,0,.5)}.turn-indicator{color:var(--color-game-warning);font-weight:var(--font-bold)}.play-area{display:flex;justify-content:center;align-items:flex-start;min-height:200px;position:relative;gap:60px}.play-area.treseta-layout{justify-content:center;max-width:400px;margin:0 auto;gap:0}.played-cards-section{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);min-width:200px;position:relative}.played-cards-label{color:var(--color-text-light);font-size:var(--text-sm);font-weight:var(--font-semibold);text-shadow:0 1px 3px rgba(0,0,0,.3)}.played-cards-area{display:flex;gap:var(--space-lg);min-height:110px;align-items:center;justify-content:center;background:#ffffff1a;border:2px dashed rgba(255,255,255,.3);border-radius:var(--radius-md);padding:var(--space-lg);min-width:180px}.deck-trump-section{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);min-width:100px;position:relative}.deck-label{color:var(--color-text-light);font-size:var(--text-sm);font-weight:var(--font-semibold);text-shadow:0 1px 3px rgba(0,0,0,.3)}.deck-trump-stack{position:relative;width:100px;height:120px}.trump-card{position:absolute;top:10px;left:15px;z-index:1}.deck-card{position:absolute;top:-20px;left:15px;z-index:2;transform:rotate(90deg);width:70px;height:120px}.player-section{display:flex;flex-direction:column;align-items:center;gap:16px;min-height:280px;position:relative;bottom:25px}@media (min-height: 820px){.player-section{margin-top:auto;bottom:50px}.player-status-combined{font-size:var(--text-xs);padding:var(--space-md) var(--space-3xl);margin-bottom:var(--space-md)}}.player-status-combined{background:#fffffff2;color:var(--color-game-primary-dark);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm);text-align:center;border:2px solid rgba(15,81,50,.2);animation:statusFade .3s ease;max-width:450px;margin-bottom:var(--space-sm)}.player-label{color:var(--color-text-light);font-size:var(--text-md);font-weight:var(--font-semibold);text-shadow:0 1px 3px rgba(0,0,0,.3);margin-top:-16px}.points-display{color:var(--color-game-warning-gold);font-size:var(--text-base);font-weight:var(--font-bold);text-shadow:0 1px 2px rgba(0,0,0,.5)}.player-cards{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap;margin-top:var(--space-md)}.scores-overlay{position:absolute;inset:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:20}.scores-modal{background:var(--color-bg-main);border-radius:var(--radius-md);padding:var(--space-4xl);max-width:600px;width:90%;max-height:80vh;overflow-y:auto;color:var(--color-text-primary)}.scores-header{text-align:center;margin-bottom:var(--space-3xl)}.scores-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-4xl);align-items:start}.player-stats{text-align:center}.player-stats h3{color:var(--color-game-primary-dark);margin-bottom:var(--space-lg)}.stat-item{display:flex;justify-content:space-between;margin-bottom:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-bg-tertiary)}.trump-info{text-align:center;padding:0 var(--space-lg)}.trump-info h3{color:var(--color-game-primary-dark);margin-bottom:var(--space-lg)}.close-scores{width:100%;margin-top:var(--space-3xl);padding:var(--space-md);background:var(--color-game-secondary);color:var(--color-text-light);border:none;border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer}.close-scores:hover{background:var(--color-game-secondary-hover)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 767px){.game-header{padding:var(--space-sm) var(--space-lg)}.game-title{font-size:var(--text-lg)}.players-names{display:none}.mobile-header-buttons{display:flex;align-items:center;gap:var(--space-sm)}.desktop-controls{display:none}.player-status-combined{font-size:var(--text-xs);padding:var(--space-sm) var(--space-lg);max-width:95vw;margin-bottom:var(--space-xs)}.play-area{flex-direction:row;justify-content:center;align-items:flex-start;gap:var(--space-xl);min-height:160px}.played-cards-section{flex:1;min-width:120px;max-width:65%}.played-cards-area{min-width:100px;padding:12px;min-height:80px;gap:12px}.deck-trump-section{flex:0 0 auto;min-width:80px}.deck-trump-section.treseta-deck{position:absolute;top:50%;right:30px;transform:translateY(-50%);z-index:3}.play-area.treseta-layout{gap:0;max-width:100%}.deck-trump-stack{width:80px;height:120px}.trump-card{top:8px;left:-5px}.deck-card{left:10px;width:60px;height:110px}.player-cards,.opponent-cards{gap:var(--space-sm);flex-wrap:wrap;max-width:100%}.scores-grid{grid-template-columns:1fr;gap:var(--space-2xl)}.game-area{gap:10px;padding:var(--space-sm)}.opponent-section{margin-top:5px}.player-section{margin-top:30px}}@media (max-width: 480px){.played-cards-area{min-width:90px;padding:10px;min-height:70px;gap:10px}.game-area{gap:5px;padding:6px}.opponent-section{margin-top:-5px}.play-area{gap:30px}.floating-btn{width:36px;height:36px;font-size:var(--text-base)}}@media (max-height: 500px) and (orientation: landscape){.opponent-section{gap:var(--space-sm)}.play-area{min-height:120px;gap:15px}.player-section{gap:var(--space-sm);min-height:200px}}.card-pickup-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;z-index:1000;pointer-events:none}.card-pickup-animation{background:#fffffff2;border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-lg);border:3px solid var(--color-game-primary);animation:pickupSlideIn .4s ease-out;max-width:90vw;max-height:80vh}@keyframes pickupSlideIn{0%{transform:scale(.8) translateY(-50px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.pickup-header{text-align:center;margin-bottom:var(--space-xl)}.pickup-header h3{color:var(--color-game-primary-dark);font-size:var(--text-lg);margin:0}.pickup-cards{display:flex;gap:var(--space-2xl);justify-content:center;align-items:center;margin-bottom:var(--space-xl);flex-wrap:wrap}.pickup-player{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.pickup-label{font-weight:var(--font-semibold);color:var(--color-game-primary-dark);font-size:var(--text-base)}.pickup-winner{text-align:center;font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--color-game-primary-dark);padding:var(--space-md);background:#1987541a;border-radius:var(--radius-md);border:2px solid rgba(25,135,84,.3)}@media (max-width: 768px){.card-pickup-animation{padding:var(--space-lg);margin:var(--space-lg)}.pickup-header h3{font-size:var(--text-base)}.pickup-cards{gap:var(--space-lg);margin-bottom:var(--space-lg)}.pickup-winner{font-size:var(--text-base);padding:var(--space-sm)}}.final-score-overlay{position:fixed;top:0;left:0;width:100vw;height:100svh;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .5s ease-in-out}.final-score-container{background:linear-gradient(135deg,#ffffff 0%,var(--color-game-bg-light) 100%);border-radius:var(--radius-xl);padding:var(--space-5xl);box-shadow:var(--shadow-2xl);text-align:center;max-width:600px;width:90%;animation:slideUp .6s ease-out}.final-score-header{margin-bottom:30px}.final-score-header h2{color:var(--color-game-primary-dark);font-size:var(--text-3xl);margin-bottom:10px;font-weight:var(--font-bold)}.final-total-score{font-size:var(--text-lg);color:var(--color-game-primary);font-weight:var(--font-bold);margin-bottom:15px;padding:var(--space-sm) var(--space-lg);background:#1987541a;border-radius:var(--radius-md);border:1px solid rgba(25,135,84,.2)}.result-emoji{font-size:var(--text-4xl);margin-bottom:var(--space-xl);animation:bounce 1s ease-in-out}.final-scores-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;margin-bottom:30px}.final-player-score{background:#0f51321a;border-radius:15px;padding:25px;position:relative;border:2px solid transparent;transition:var(--transition-base)}.final-player-score .player-name{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-game-primary-dark);margin-bottom:10px}.final-player-score .player-points{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-game-primary);margin-bottom:5px}.final-player-score .player-cards{font-size:var(--text-base);color:var(--color-game-secondary);margin-bottom:10px}.vs-divider{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-game-secondary);align-self:center}.winner-badge{background:linear-gradient(135deg,var(--color-game-warning-gold) 0%,#ffed4a 100%);color:var(--color-game-primary-dark);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-xl);font-weight:var(--font-bold);font-size:var(--text-sm);margin-top:10px;border:2px solid var(--color-game-warning-gold);animation:glow 2s ease-in-out infinite alternate}.game-result{background:#6c757d1a;border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:30px}.game-result p{font-size:var(--text-lg);color:var(--color-game-gray-dark);margin:0}.elo-changes{margin-bottom:var(--space-xl);text-align:center}.elo-change{display:inline-flex;align-items:center;gap:10px;padding:var(--space-md) var(--space-2xl);border-radius:50px;font-weight:var(--font-bold);font-size:var(--text-md)}.elo-change.elo-positive{background:linear-gradient(135deg,#19875426,#28a74526);border:2px solid var(--color-game-success);color:var(--color-game-primary)}.elo-change.elo-negative{background:linear-gradient(135deg,#dc354526,#ff636326);border:2px solid var(--color-game-danger);color:var(--color-game-danger)}.elo-label{opacity:.8}.elo-value{font-size:var(--text-lg)}.elo-new{opacity:.7;font-size:var(--text-base)}.final-score-actions{display:flex;gap:var(--space-xl);justify-content:center;flex-wrap:wrap}.btn-primary-large{background:linear-gradient(135deg,var(--color-game-primary) 0%,var(--color-game-success) 100%);color:var(--color-text-light);border:none;padding:15px 30px;border-radius:var(--radius-lg);font-size:var(--text-md);font-weight:var(--font-bold);cursor:pointer;transition:var(--transition-base);box-shadow:0 4px 15px #1987544d}.btn-primary-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px #19875466;background:linear-gradient(135deg,#157347 0%,var(--color-game-primary) 100%)}.btn-secondary-large{background:linear-gradient(135deg,var(--color-game-secondary) 0%,#8d969e 100%);color:var(--color-text-light);border:none;padding:15px 30px;border-radius:var(--radius-lg);font-size:var(--text-md);font-weight:var(--font-bold);cursor:pointer;transition:var(--transition-base);box-shadow:0 4px 15px #6c757d4d}.btn-secondary-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6c757d66;background:linear-gradient(135deg,#545b62 0%,var(--color-game-secondary) 100%)}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes glow{0%{box-shadow:0 0 5px var(--color-game-warning-gold),0 0 10px var(--color-game-warning-gold),0 0 15px var(--color-game-warning-gold)}to{box-shadow:0 0 10px var(--color-game-warning-gold),0 0 20px var(--color-game-warning-gold),0 0 30px var(--color-game-warning-gold)}}@media (max-width: 768px){.final-score-container{padding:15px;margin:10px;max-width:95%;width:95%;max-height:90vh;overflow-y:auto}.final-score-header{margin-bottom:15px}.final-score-header h2{font-size:var(--text-xl);margin-bottom:5px}.result-emoji{font-size:var(--text-3xl);margin-bottom:10px}.final-scores-grid{grid-template-columns:1fr;gap:var(--space-md);margin-bottom:15px}.vs-divider{order:2;font-size:var(--text-base);margin:5px 0}.final-player-score{padding:var(--space-md);border-radius:var(--radius-lg)}.final-player-score .player-name{font-size:var(--text-base);margin-bottom:6px}.final-player-score .player-points{font-size:var(--text-lg);margin-bottom:4px}.final-player-score .player-cards{font-size:var(--text-sm);margin-bottom:6px}.winner-badge{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);margin-top:6px}.game-result{padding:var(--space-md);margin-bottom:15px}.game-result p{font-size:var(--text-base)}.final-score-actions{flex-direction:column;gap:10px}.btn-primary-large,.btn-secondary-large{width:100%;padding:10px var(--space-lg);font-size:var(--text-base)}.opponent-avatar-display{gap:3px;padding:var(--space-xs);border-radius:var(--radius-sm)}.player-avatar{width:30px;height:30px;font-size:var(--text-xs)}.opponent-name{font-size:var(--text-xs)}.opponent-cards-indicator{font-size:var(--text-xs);gap:1px}}.treseta-controls{margin-bottom:15px;padding:10px;background:#ffffff1a;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.score-tracking{margin-bottom:10px}.score-header{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-light);font-weight:var(--font-bold);margin-bottom:var(--space-sm);font-size:var(--text-base)}.target-score{font-size:var(--text-sm);opacity:.8}.partijas-history{display:flex;flex-direction:column;gap:3px}.partija-score{color:#ffffffe6;font-size:var(--text-sm);padding:2px 6px;background:#ffffff1a;border-radius:var(--radius-xs)}.akuze-controls{margin-top:10px}.akuze-select{width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);background:#fffffff2;color:var(--color-game-text);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-fast)}.akuze-select:hover{background:#fff;transform:translateY(-1px)}.partija-result{text-align:center;margin-bottom:20px}.partija-result p{font-size:var(--text-lg);margin-bottom:15px;color:var(--color-game-text)}.partija-scores{font-size:var(--text-md);margin-bottom:10px;color:var(--color-game-gray)}.total-scores{font-size:var(--text-lg);margin-bottom:10px;color:var(--color-game-primary-dark)}.target-info{font-size:var(--text-base);color:var(--color-game-gray);font-style:italic}@media (max-width: 768px){.treseta-controls{padding:var(--space-sm);margin-bottom:10px}.score-header{flex-direction:column;gap:5px;font-size:var(--text-sm)}.partija-score{font-size:var(--text-sm)}.akuze-select{font-size:var(--text-sm);padding:6px 10px}}.treseta-details{margin-top:var(--space-2xl);padding-top:var(--space-2xl);border-top:2px solid #e9ecef}.treseta-summary{text-align:center;margin-bottom:var(--space-xl)}.treseta-summary h3{color:var(--color-game-primary-dark);margin-bottom:var(--space-md);font-size:var(--text-lg)}.current-total{font-size:var(--text-lg);margin-bottom:var(--space-sm);color:var(--color-game-primary-dark)}.target-info{font-size:var(--text-base);color:var(--color-game-gray);font-style:italic;margin-bottom:var(--space-sm)}.current-partija{font-size:var(--text-sm);color:var(--color-game-gray)}.partijas-history{margin-bottom:var(--space-xl)}.partijas-history h4{color:var(--color-game-primary-dark);margin-bottom:var(--space-md);font-size:var(--text-md)}.partijas-list{background:var(--color-game-bg-light);border-radius:var(--radius-md);padding:var(--space-lg);max-height:200px;overflow-y:auto}.partija-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid #e9ecef}.partija-item:last-child{border-bottom:none}.partija-number{font-weight:var(--font-medium);color:var(--color-game-primary-dark);min-width:100px}.partija-score{font-weight:var(--font-bold);color:var(--color-game-text);min-width:60px;text-align:center}.partija-winner{font-size:var(--text-sm);min-width:90px;text-align:right}.current-akuze{background:var(--color-game-bg-light);border-radius:var(--radius-md);padding:var(--space-lg)}.current-akuze h4{color:var(--color-game-primary-dark);margin-bottom:var(--space-md);font-size:var(--text-md)}.my-akuze,.opponent-akuze{margin-bottom:var(--space-md)}.my-akuze:last-child,.opponent-akuze:last-child{margin-bottom:0}.current-akuze strong{color:var(--color-game-primary-dark);display:block;margin-bottom:6px}.current-akuze ul{list-style:none;padding-left:var(--space-lg)}.current-akuze li{margin-bottom:var(--space-xs);color:var(--color-game-gray);position:relative}.current-akuze li:before{content:"🃏";position:absolute;left:-16px;top:0}@media (max-width: 768px){.treseta-details{margin-top:var(--space-lg);padding-top:var(--space-lg)}.partijas-list{padding:var(--space-md);max-height:150px}.partija-item{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 0}.partija-winner{align-self:flex-end}.current-akuze{padding:var(--space-md)}}.waiting-opponent-message{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:var(--space-xl);background:#ffffff1a;border-radius:var(--radius-lg);margin-bottom:10px}.waiting-opponent-message p{margin:0;color:var(--color-text-light);font-size:var(--text-md)}.waiting-opponent-message small{color:var(--color-game-gray-light);font-size:var(--text-sm)}.loading-spinner-message{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:var(--space-xl);background:#ffffff1a;border-radius:var(--radius-lg);margin-bottom:10px}.loading-spinner-message p{margin:0;color:var(--color-text-light);font-size:var(--text-md)}.loading-spinner{font-size:var(--text-xl);animation:spin 1s linear infinite}.game-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary);color:var(--text-primary);text-align:center}.game-loading .loading-spinner{border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:var(--radius-full);width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:var(--space-xl)}.game-loading p{font-size:var(--text-lg);margin:0;opacity:.8}.loading-message{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-light);font-size:var(--text-lg);gap:var(--space-xl)}.loading-message .spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid var(--color-text-light);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-message p{margin:0;font-weight:var(--font-medium)}.game-2v2 .game-header{padding:var(--space-sm) var(--space-lg)}.game-2v2 .desktop-controls{z-index:15;position:relative}.team-scores{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-xl);font-weight:var(--font-semibold);z-index:5}.team-score{display:flex;flex-direction:column;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);background:#ffffff1a;color:var(--color-text-light);transition:all var(--transition-normal) ease;color:var(--color-text-primary)}.team-score.my-team{background:#28a745cc}.team-label{font-size:.8rem;opacity:.9}.team-points{font-size:1.2rem;font-weight:var(--font-bold)}.vs-divider{color:var(--color-text-primary);font-size:.9rem;font-weight:var(--font-medium)}@media (max-width: 768px){.game-2v2 .team-scores{display:none!important}.game-2v2 .mobile-header-buttons{display:flex!important;gap:var(--space-sm);align-items:center;justify-content:flex-end;width:auto}.game-2v2 .mobile-header-buttons .floating-btn,.game-2v2 .mobile-header-buttons .details-btn,.game-2v2 .mobile-header-buttons .exit-btn{width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;font-size:1rem!important;border-radius:var(--radius-full)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.game-2v2 .game-header{flex-wrap:nowrap!important;align-items:center;padding-left:var(--space-sm);padding-right:var(--space-sm)}}@media (min-width: 769px){.game-2v2 .team-scores,.game-2v2 .desktop-controls{display:flex}.game-2v2 .mobile-header-buttons{display:none}}.player-icon-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:#ffffff1a;border-radius:var(--radius-lg);transition:all var(--transition-normal) ease}.player-icon-display.teammate{background:#28a74533;border:2px solid rgba(40,167,69,.5)}.player-icon-display.opponent{background:#dc354533;border:2px solid rgba(220,53,69,.5)}.player-icon-display.current-turn{box-shadow:0 0 var(--space-xl) #ffc107cc;border-color:var(--color-game-warning)}.player-avatar{width:60px;height:60px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-light);text-shadow:0 2px 4px rgba(0,0,0,.3)}.player-avatar.teammate{background:linear-gradient(135deg,var(--color-game-success) 0%,#20c997 100%)}.player-avatar.opponent{background:linear-gradient(135deg,var(--color-game-danger) 0%,#fd7e14 100%)}.player-cards-indicator{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-light);text-shadow:0 1px 2px rgba(0,0,0,.5)}.cards-icon{width:18px;height:18px;background:var(--color-game-warning);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--color-text-primary);font-weight:var(--font-bold)}.game-area-2v2{flex:1;display:grid;grid-template-rows:auto 1fr auto;padding:15px;gap:15px;overflow:hidden;transform:scale(.8);transform-origin:center}.player-position{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.top-player{justify-self:center;margin-bottom:var(--space-xl)}.bottom-player{justify-self:center;min-height:180px}.left-player,.right-player{display:flex;align-items:center;justify-content:center}.middle-section{display:grid;grid-template-columns:1fr 1fr auto 1fr;gap:var(--space-xl);align-items:center;min-height:300px;position:relative}.middle-section.no-deck{grid-template-columns:1fr 2fr 1fr}.left-player,.right-player{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);position:relative;height:250px;justify-content:center}.game-2v2 .left-player .opponent-cards.vertical,.game-2v2 .right-player .opponent-cards.vertical{position:absolute;top:50%;left:50%;display:flex!important;flex-direction:row!important;gap:-5px;flex-wrap:nowrap;align-items:center;justify-content:center}.game-2v2 .left-player .opponent-cards.vertical{transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center}.game-2v2 .right-player .opponent-cards.vertical{transform:translate(-50%,-50%) rotate(-90deg);transform-origin:center center}.center-area{display:flex;flex-direction:row;align-items:center;gap:30px;min-height:250px;justify-content:center}.game-2v2 .deck-trump-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.game-2v2 .played-cards-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.game-2v2 .played-cards-label{font-size:.9rem;color:#fffc;text-align:center;margin-bottom:5px}.game-2v2 .deck-trump-stack{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px}.game-2v2 .trump-card{position:relative;z-index:1}.game-2v2 .deck-card{position:relative;z-index:2;top:-65px;left:5px}.game-2v2 .deck-label{font-size:.9rem;color:#fffc;text-align:center;margin-bottom:5px}.played-cards-cross{position:relative;width:400px;height:250px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:2px dashed rgba(255,255,255,.3);border-radius:var(--radius-lg)}.played-card-position{position:absolute;display:flex;flex-direction:column;align-items:center;z-index:11}.played-card-position.top{top:var(--space-xl);left:50%;transform:translate(-50%)}.played-card-position.right{right:var(--space-xl);top:50%;transform:translateY(-50%)}.played-card-position.bottom{bottom:var(--space-xl);left:50%;transform:translate(-50%)}.played-card-position.left{left:var(--space-xl);top:50%;transform:translateY(-50%)}.played-card-position.center{top:50%;left:50%;transform:translate(-50%,-50%)}.card-player-label{margin-top:5px;font-size:.7em;color:#fffc;background:#00000080;padding:2px 6px;border-radius:var(--radius-xs);text-align:center}@media (max-width: 768px){.played-cards-cross{width:200px;height:190px}.played-card-position.top{top:15px}.played-card-position.right{right:15px}.played-card-position.bottom{bottom:15px}.played-card-position.left{left:15px}}@media (max-width: 476px){.team-scores{display:none!important}.game-2v2 .desktop-controls .game-btn{padding:6px 8px;font-size:1.2rem;min-width:36px;text-align:center}.game-2v2 .desktop-controls .btn-primary:before{content:"🔍"}.game-2v2 .desktop-controls .btn-danger:before{content:"🚪"}.game-2v2 .desktop-controls .btn-secondary:before{content:"↩️"}.game-2v2 .desktop-controls .game-btn{text-indent:-9999px;overflow:hidden;position:relative}.game-2v2 .desktop-controls .game-btn:before{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-indent:0}}@media (max-width: 480px){.played-cards-cross{width:190px;height:190px}.played-card-position.top{top:10px}.played-card-position.right{right:10px}.played-card-position.bottom{bottom:10px}.played-card-position.left{left:10px}}.played-cards-area-2v2{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:var(--space-xl);min-height:180px;min-width:320px;width:100%;max-width:400px;align-items:center;justify-items:center;background:#ffffff1a;border:2px dashed rgba(255,255,255,.3);border-radius:var(--radius-lg);padding:var(--space-3xl)}.player-info{text-align:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:#ffffff1a;color:var(--color-text-light);font-size:.9rem;min-width:120px;position:relative;z-index:10;color:var(--color-text-secondary)}.player-info.teammate{background:#28a7454d;border:1px solid rgba(40,167,69,.5)}.player-info.opponent{background:#dc35454d;border:1px solid rgba(220,53,69,.5);top:-230px}.player-info.my-player{background:#28a74580;border:2px solid rgba(40,167,69,.8);font-weight:600}.player-name{font-weight:600;margin-bottom:4px}.player-cards-count{font-size:.8rem;opacity:.9}.teams-scores-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:32px;align-items:start}.team-stats{text-align:center}.team-stats h3{color:var(--color-game-primary-dark);margin-bottom:var(--space-lg)}.team-players{margin-top:var(--space-lg);color:var(--color-text-secondary)}.player-stat{display:flex;justify-content:space-between;margin-bottom:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid #eee;font-size:.9rem}@media (min-width: 1920px){.middle-section{grid-template-columns:1fr 1fr 120px 1fr;gap:var(--space-3xl)}.played-cards-area-2v2{min-width:400px;min-height:200px;gap:var(--space-3xl);padding:30px}.center-area{gap:var(--space-5xl)}}@media (max-width: 1919px) and (min-width: 1366px){.middle-section{grid-template-columns:1fr 1fr 100px 1fr;gap:var(--space-xl)}.played-cards-area-2v2{min-width:280px;min-height:160px;gap:15px;padding:var(--space-xl)}.center-area{gap:25px}.player-info{font-size:.8rem;padding:6px var(--space-md);min-width:100px}.player-info.my-player{bottom:var(--space-md)}}@media (max-width: 1365px) and (min-width: 1024px){.middle-section{grid-template-columns:150px 1fr 200px 150px;gap:15px}.played-cards-area-2v2{min-width:240px;min-height:140px;gap:var(--space-md);padding:18px}.center-area{gap:var(--space-xl)}.player-info{font-size:.75rem;padding:5px var(--space-sm);min-width:90px}}@media (max-width: 1023px) and (min-width: 768px){.game-area-2v2{padding:var(--space-md);gap:var(--space-md);transform:scale(.9)}.middle-section{grid-template-columns:70px 1fr 70px 70px;gap:var(--space-md);min-height:200px}.left-player,.right-player{height:180px}.played-cards-area-2v2{min-width:200px;min-height:120px;gap:var(--space-md);padding:15px}.center-area{gap:15px}.player-info{font-size:.7rem;padding:var(--space-xs) 6px;min-width:70px}}@media (max-width: 767px){.team-scores{position:static;transform:none;gap:var(--space-md);font-size:.8rem;margin:var(--space-xs) 0}.team-score{padding:2px 6px;font-size:.75rem}.team-points{font-size:1rem}.vs-divider{font-size:.75rem}.game-2v2 .desktop-controls{display:flex!important;gap:var(--space-sm);justify-content:flex-end}.game-area-2v2{padding:var(--space-sm);gap:var(--space-sm);transform:scale(.95)}.middle-section{display:grid;grid-template-columns:80px 1fr 80px;gap:var(--space-md);min-height:180px;justify-items:center;top:-30px}.left-player,.right-player{height:140px;justify-content:center}.left-player .player-info{position:absolute;top:-105px;left:35px;transform:translate(-50%);font-size:.65rem;padding:3px 6px;min-width:70px;white-space:nowrap}.right-player .player-info{position:absolute;top:-105px;left:-29px;transform:translate(-50%);font-size:.65rem;padding:3px 6px;min-width:70px;white-space:nowrap}.center-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);min-height:160px;justify-content:center}.played-cards-section{order:1;right:var(--space-xl)}.played-cards-area-2v2{min-width:160px;min-height:100px;gap:var(--space-sm);padding:var(--space-md);max-width:220px}.played-cards-label{font-size:.7rem;margin-bottom:var(--space-xs)}.game-2v2 .deck-trump-section{order:2;min-width:60px;gap:var(--space-xs)}.game-2v2 .deck-trump-stack{width:60px;height:90px;position:relative;top:-60px;right:-40px}.game-2v2 .trump-card{position:absolute;top:var(--space-sm);left:5px;z-index:1}.game-2v2 .deck-card{position:absolute;top:-65px;left:-20px;z-index:2;transform:rotate(90deg)}.game-2v2 .deck-label{font-size:.65rem;margin-bottom:3px}.bottom-player{min-height:140px;gap:6px}.player-cards{gap:var(--space-xs);margin-top:2px}.game-2v2 .card-medium .card-image,.game-2v2 .card-small .card-image{width:30px;height:60px}.teams-scores-grid{grid-template-columns:1fr;gap:var(--space-lg)}.scores-modal{padding:var(--space-xl);max-width:95vw}.player-position.bottom-player{position:relative;bottom:75px}}.game-2v2 .card-small .card-image{width:55px;height:100px}.game-2v2 .card-medium .card-image,.game-2v2 .card-large .card-image{width:80px;height:150px}@media (max-width: 1900px) and (min-width: 1200px){.game-2v2 .card-medium .card-image{width:60px;height:110px}.game-2v2 .card-small .card-image{width:var(--space-5xl);height:75px}.middle-section{top:-50px}.player-info.opponent{top:-180px}.player-position.bottom-player{position:relative;top:-60px}.player-position.top-player{position:relative;top:-20px}.player-avatar{width:50px;height:50px;font-size:18px}.player-icon-display{padding:var(--space-sm);gap:6px}}@media (max-width: 768px){.player-icon-display{padding:4px;gap:3px}.player-avatar{width:35px;height:35px;font-size:14px}.player-name{font-size:var(--text-xs);color:var(--color-text-light);max-width:55px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-cards-indicator{font-size:10px}.cards-icon{width:var(--space-md);height:var(--space-md);font-size:7px}}@media (max-width: 767px) and (max-height: 850px){.game-2v2 .card-medium .card-image,.game-2v2 .card-small .card-image{width:55px;height:105px}.card-played .card-image{width:35px;height:65px}.player-icon-display{padding:6px;gap:var(--space-xs)}.player-avatar{width:35px;height:35px;font-size:14px}.player-name{font-size:10px;max-width:60px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--color-text-light)}.player-cards-indicator{font-size:9px}.cards-icon{width:var(--space-md);height:var(--space-md);font-size:7px}.middle-section.no-deck{grid-template-columns:1fr 3fr 1fr;gap:15px;margin-bottom:150px;top:25px}.deck-trump-stack{width:45px;height:70px}.game-2v2 .trump-card{top:60px;left:-50px}.game-2v2 .deck-card{position:absolute;top:45px;left:-70px;z-index:2;transform:rotate(90deg)}.played-cards-area-2v2{min-width:140px;min-height:80px;gap:6px;padding:8px}.middle-section{min-height:140px}.left-player,.right-player{height:110px}.right-player .player-info{position:absolute;top:-65px;left:-29px;transform:translate(-50%);font-size:.65rem;padding:3px 6px;min-width:70px;white-space:nowrap}.left-player .player-info{position:absolute;top:-65px;left:35px;transform:translate(-50%);font-size:.65rem;padding:3px 6px;min-width:70px;white-space:nowrap}}@media (max-height: 670px){.game-2v2 .card-medium .card-image,.game-2v2 .card-small .card-image{width:42px;height:80px}}.final-teams-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;margin-bottom:30px}.final-team-score{background:#0f51321a;border-radius:var(--radius-lg);padding:var(--space-3xl);position:relative;border:2px solid transparent;transition:all var(--transition-normal) ease}.team-header{margin-bottom:15px}.team-header h3{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-game-primary-dark);margin-bottom:var(--space-md)}.final-team-score .team-points{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-game-primary);margin-bottom:var(--space-md)}.final-team-score .team-cards{font-size:var(--text-base);color:var(--color-game-secondary);margin-bottom:15px}.team-players{display:flex;flex-direction:column;gap:5px}.team-player{font-size:.9rem;color:var(--color-game-gray-dark);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:#6c757d1a}.team-player.current-player{background:#19875433;color:var(--color-game-primary-dark);font-weight:var(--font-bold)}@media (max-width: 768px){.final-teams-grid{grid-template-columns:1fr;gap:var(--space-xl)}.vs-divider{order:2;font-size:1.2rem}.final-team-score{padding:var(--space-xl)}.final-team-score .team-points{font-size:var(--text-2xl)}.team-header h3{font-size:var(--text-lg)}}.reconnect-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--space-xl)}.reconnect-dialog{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-2xl);max-width:450px;width:100%;text-align:center;color:#333;animation:slideUp .3s ease-out}.reconnect-header{margin-bottom:var(--space-xl)}.reconnect-header h2{margin:0 0 var(--space-sm) 0;color:#4a5568;font-size:1.3em}.connection-status{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);display:inline-block}.connection-status:contains("✅"){background:#28a74533;color:#28a745;border:1px solid rgba(40,167,69,.3)}.connection-status:contains("❌"){background:#dc354533;color:#dc3545;border:1px solid rgba(220,53,69,.3)}.reconnect-content{margin-bottom:var(--space-2xl);text-align:left}.reconnect-content>p{text-align:center;margin-bottom:var(--space-md);color:#666}.game-info{background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.info-item{display:flex;justify-content:space-between;margin-bottom:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid rgba(0,0,0,.1)}.info-item:last-child{margin-bottom:0;border-bottom:none}.info-item strong{color:#4a5568}.connection-warning{background:#ffc10733;border:1px solid rgba(255,193,7,.4);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm);text-align:center}.connection-warning p{margin:0 0 var(--space-xs) 0;color:#856404;font-weight:var(--font-semibold)}.connection-warning small{color:#6c757d}.reconnect-attempts{text-align:center;margin-bottom:var(--space-sm)}.reconnect-attempts small{color:#6c757d;font-style:italic}.reconnect-actions{display:flex;gap:var(--space-md);justify-content:center}.btn-primary{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);font-size:var(--text-sm);flex:1}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #28a7454d}.btn-primary:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);font-size:var(--text-sm);flex:1}.btn-secondary:hover{background:#5a6268;transform:translateY(-1px)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.reconnect-overlay{padding:var(--space-md)}.reconnect-dialog{padding:var(--space-xl)}.reconnect-actions{flex-direction:column}.btn-primary-dialog,.btn-secondary-dialog{flex:none;width:100%}.reconnect-header h2{font-size:1.2em}.game-info{padding:var(--space-md)}.info-item{font-size:var(--text-sm)}}.app-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--space-md) var(--space-2xl);background:var(--color-accent-green);border-bottom:2px solid #264a2e;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:1000;min-height:60px;font-family:system-ui,-apple-system,sans-serif}.app-header-left{display:flex;align-items:center;justify-content:flex-start}.app-header-logo{display:flex;align-items:center;gap:var(--space-md)}.app-logo-icon{width:32px;height:32px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.app-logo-text{font-size:18px;font-weight:var(--font-bold);color:var(--color-text-light);letter-spacing:.3px;white-space:nowrap}.app-user-info{display:flex;align-items:center;gap:var(--space-sm)}.app-user-name{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-light);letter-spacing:.3px}.app-user-badge{font-size:11px;color:#3498db;background:#3498db33;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(52,152,219,.4);padding:3px var(--space-sm);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;font-weight:var(--font-semibold);box-shadow:0 2px 8px #3498db33}.app-header-nav{display:flex;justify-content:center;align-items:center;gap:var(--space-md)}.app-nav-btn{background:#faf7f226;color:var(--color-text-light);border:1px solid rgba(250,247,242,.3);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);white-space:nowrap}.app-nav-btn:hover{background:#faf7f240;border-color:#faf7f280;transform:translateY(-1px)}.app-nav-btn:active{transform:translateY(0)}.app-header-right{display:flex;align-items:center;justify-content:flex-end}.app-header-actions{display:flex;align-items:center;gap:var(--space-md);margin-right:5px}.app-header-logo-right{opacity:.6;transition:opacity .3s ease}.app-header-logo-right:hover{opacity:.9}.app-header-logo-right .app-logo-icon{width:28px;height:28px;animation-delay:1.5s}.app-action-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);white-space:nowrap}.app-action-btn .app-btn-icon{flex-shrink:0}.app-leaderboard-btn{background:var(--color-accent-gold);color:var(--color-text-dark);box-shadow:var(--shadow-md)}.app-leaderboard-btn:hover{background:#d4b57a;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.app-bug-btn{background:#e8a33d;color:var(--color-text-dark);box-shadow:var(--shadow-md)}.app-bug-btn:hover{background:#f0b347;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.app-logout-btn{background:#8b4545;color:var(--color-text-light);box-shadow:var(--shadow-md)}.app-logout-btn:hover{background:#9d5050;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.app-action-btn:active{transform:translateY(0)}.app-logout-btn svg{width:16px;height:16px;stroke-width:2}@media (max-width: 768px){.app-header{padding:var(--space-sm) var(--space-lg);gap:var(--space-sm)}.app-logo-text{font-size:var(--text-base)}.app-nav-btn{padding:var(--space-xs) var(--space-md);font-size:13px}.app-action-btn{padding:var(--space-xs) var(--space-md);font-size:13px;gap:var(--space-xs)}.app-user-name{font-size:var(--text-sm)}.app-user-badge{font-size:10px;padding:2px var(--space-sm)}}@media (max-width: 700px){.app-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg)}.app-header-left{order:1}.app-header-right{order:2}.app-header-nav{order:3;width:100%;justify-content:center;padding-top:var(--space-sm);border-top:1px solid rgba(255,255,255,.15)}.app-header-logo-right{display:none}}@media (max-width: 480px){.app-header{padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.app-header-nav{gap:var(--space-xs)}.app-nav-btn{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs)}.app-logo-icon{width:26px;height:26px}.app-logo-text{font-size:14px}.app-action-btn .app-btn-text{display:none}.app-action-btn{padding:var(--space-sm);border-radius:var(--radius-md);gap:0}.app-leaderboard-btn .app-btn-icon{font-size:18px}.app-user-badge{display:none}}@media (max-width: 360px){.app-nav-btn{padding:var(--space-xs) var(--space-sm);font-size:11px}.app-header-actions{gap:var(--space-sm)}.app-action-btn{width:36px;height:36px;justify-content:center}}.hamburger-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:32px;height:32px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001;position:relative}.hamburger-btn span{width:24px;height:3px;background:var(--color-text-light);border-radius:2px;transition:var(--transition-base);position:relative}.hamburger-btn.open{gap:0}.hamburger-btn.open span:nth-child(1){transform:rotate(45deg);position:absolute}.hamburger-btn.open span:nth-child(2){opacity:0}.hamburger-btn.open span:nth-child(3){transform:rotate(-45deg);position:absolute}.mobile-menu-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:1000;animation:fadeIn .2s ease}.mobile-menu{position:fixed;top:0;right:0;width:280px;max-width:80vw;height:100vh;background:var(--color-accent-green);box-shadow:-4px 0 20px #0000004d;display:flex;flex-direction:column;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-menu-header{padding:var(--space-xl);border-bottom:2px solid #264a2e}.mobile-menu-header h3{margin:0;color:var(--color-text-light);font-size:18px;font-weight:var(--font-bold)}.mobile-menu-items{display:flex;flex-direction:column;padding:var(--space-md);gap:var(--space-sm)}.mobile-menu-item{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg) var(--space-xl);background:#faf7f21a;border:1px solid rgba(250,247,242,.2);border-radius:var(--radius-md);color:var(--color-text-light);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);text-align:left}.mobile-menu-item:hover{background:#faf7f233;border-color:#faf7f266;transform:translate(-4px)}.mobile-menu-icon{font-size:20px;display:flex;align-items:center;justify-content:center;min-width:24px}.mobile-menu-item.logout-item{margin-top:auto;background:#e74c3c33;border-color:#e74c3c66}.mobile-menu-item.logout-item:hover{background:#e74c3c4d;border-color:#e74c3c99}@media (max-width: 768px){.hamburger-btn{display:flex;order:3;margin-left:auto}.mobile-menu-overlay{display:block}.app-header-nav,.app-header-right .app-header-actions{display:none}.app-header{grid-template-columns:1fr auto}}.leaderboard-container{min-height:100vh;background:var(--gradient-wood);color:var(--color-text-dark);padding:var(--space-xl);overflow-y:auto}.leaderboard-header{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-2xl);position:relative;background:var(--color-bg-main);padding:var(--space-3xl);border-radius:var(--radius-lg);border:2px solid var(--color-border);box-shadow:var(--shadow-lg)}.leaderboard-header h1{flex:1;text-align:center;font-size:32px;font-weight:var(--font-bold);margin:0;color:var(--color-primary)}.back-btn-leaderboard{position:absolute;left:10px}.lb-header-actions{display:flex;gap:var(--space-sm)}.lb-refresh-btn{padding:var(--space-sm) var(--space-lg);background:var(--color-accent-gold);border:none;color:var(--color-text-light);font-size:18px;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-md)}.lb-refresh-btn:hover{background:#b5925c;transform:rotate(90deg)}.leaderboard-filters{display:flex;gap:var(--space-md);justify-content:center;margin-bottom:var(--space-2xl);flex-wrap:wrap}.filter-btn{padding:var(--space-sm) var(--space-xl);background:var(--color-bg-secondary);border:2px solid var(--color-border);color:var(--color-text-medium);font-size:15px;font-weight:var(--font-semibold);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base)}.filter-btn:hover{background:var(--color-border-light);border-color:var(--color-accent-gold)}.filter-btn.active{background:var(--color-accent-green);border-color:var(--color-accent-green);color:var(--color-text-light);box-shadow:var(--shadow-md)}.leaderboard-content{max-width:1200px;margin:0 auto}.leaderboard-table{background:var(--color-bg-main);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl);border:2px solid var(--color-border)}.table-header{display:grid;grid-template-columns:60px 1fr 80px 100px 140px 100px;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);background:var(--color-border-light);border-bottom:2px solid var(--color-border);font-weight:var(--font-bold);font-size:14px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-medium)}.table-body{max-height:calc(100vh - 280px);overflow-y:auto}.table-row{display:grid;grid-template-columns:60px 1fr 80px 100px 140px 100px;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border-light);transition:var(--transition-base);align-items:center;color:var(--color-text-dark)}.table-row:hover{background:var(--color-bg-secondary)}.table-row.current-user{background:#2f5d3a1f;border-left:4px solid var(--color-accent-green);box-shadow:inset 0 0 20px #2f5d3a14}.table-row.top-1{background:linear-gradient(90deg,rgba(201,168,106,.2),transparent)}.table-row.top-2{background:linear-gradient(90deg,rgba(192,192,192,.2),transparent)}.table-row.top-3{background:linear-gradient(90deg,rgba(205,127,50,.2),transparent)}.col-rank{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:var(--color-text-dark)}.rank-medal{font-size:28px}.col-player{display:flex;align-items:center;gap:var(--space-sm)}.player-name{font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--color-text-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.you-badge{padding:var(--space-xs) var(--space-sm);background:var(--color-accent-green);color:var(--color-text-light);font-size:11px;font-weight:var(--font-bold);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.col-level{display:flex;justify-content:center}.level-badge{width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:18px;box-shadow:var(--shadow-md)}.level-badge.level-1{background:#6b5a45;color:var(--color-text-light)}.level-badge.level-2{background:#7d6851;color:var(--color-text-light)}.level-badge.level-3{background:var(--color-text-muted);color:var(--color-text-light)}.level-badge.level-4{background:#9a8466;color:var(--color-text-light)}.level-badge.level-5{background:#a89374;color:var(--color-text-dark)}.level-badge.level-6{background:#b5a17f;color:var(--color-text-dark)}.level-badge.level-7{background:#c2ae8a;color:var(--color-text-dark)}.level-badge.level-8{background:var(--color-accent-gold);color:var(--color-text-dark)}.level-badge.level-9{background:#d1b577;color:var(--color-text-dark)}.level-badge.level-10{background:linear-gradient(135deg,#f5b342,#d98c00);color:var(--color-text-dark)}.col-elo{text-align:center}.elo-value{font-size:18px;font-weight:var(--font-bold);color:var(--color-accent-green)}.col-stats{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);font-size:15px}.stat-wins{color:var(--color-accent-green);font-weight:var(--font-semibold)}.stat-separator{color:var(--color-text-muted)}.stat-losses{color:var(--color-danger);font-weight:var(--font-semibold)}.col-winrate{text-align:center}.winrate{font-size:var(--text-base);font-weight:var(--font-bold)}.winrate.positive{color:var(--color-accent-green)}.winrate.negative{color:var(--color-danger)}.lb-error-banner{background:var(--color-danger);border:none;color:var(--color-text-light);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md)}.lb-error-banner button{background:none;border:none;color:var(--color-text-light);font-size:18px;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.lb-loading-state,.lb-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px var(--space-xl);text-align:center;background:var(--color-bg-main);border-radius:var(--radius-lg);border:2px solid var(--color-border);color:var(--color-text-dark)}.lb-loading-spinner{border:4px solid var(--color-border-light);border-top:4px solid var(--color-accent-gold);border-radius:var(--radius-full);width:50px;height:50px;animation:spin 1s linear infinite;margin-bottom:var(--space-xl)}.lb-empty-icon{font-size:64px;margin-bottom:var(--space-lg);opacity:.7}.lb-empty-state h3{font-size:var(--text-2xl);margin:var(--space-sm) 0;color:var(--color-primary)}.lb-empty-state p{color:var(--color-text-medium);font-size:var(--text-base)}.lb-guest-notice{margin-top:var(--space-2xl);padding:var(--space-lg) var(--space-xl);background:#fef3cd;border:2px solid #f5e5a0;border-radius:var(--radius-md);text-align:center}.lb-guest-notice p{margin:0;font-size:15px;color:var(--color-primary)}.mobile-user-stats{display:none}@media (max-width: 768px){.mobile-user-stats{display:block;margin-bottom:var(--space-xl)}.mobile-stats-card{background:linear-gradient(135deg,#2f5d3a1a,#2f5d3a0d);border:2px solid var(--color-accent-green);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-lg)}.mobile-stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-accent-green)}.mobile-stats-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-accent-green)}.mobile-stats-rank{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-accent-gold)}.mobile-stats-body{display:flex;flex-direction:column;gap:var(--space-md)}.mobile-stat-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0}.mobile-stat-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.mobile-stat-value{font-size:var(--text-base);color:var(--color-text-dark);font-weight:var(--font-semibold)}.mobile-streak{display:flex;align-items:center;gap:var(--space-xs)}}@media (max-width: 768px){.leaderboard-header h1{font-size:var(--text-2xl)}.table-header{font-size:11px;padding:var(--space-sm) var(--space-md)}.table-header .col-stats:before{content:"W/L"}.table-header .col-stats{font-size:10px;text-align:center}.table-header .col-stats{position:relative;overflow:hidden;text-indent:-9999px}.table-header .col-stats:before{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-indent:0}.table-header,.table-row{grid-template-columns:35px 1fr 45px 55px 55px;gap:4px;padding:var(--space-sm) var(--space-xs);font-size:12px}.col-winrate{display:none}.table-row.current-user{position:sticky;top:0;z-index:10;background:#2f5d3a40;border:2px solid var(--color-accent-green);box-shadow:0 4px 12px #2f5d3a4d}.level-badge{width:32px;height:32px;font-size:14px}.elo-value{font-size:15px}.player-name{font-size:13px;color:var(--color-text-dark);max-width:150px}.col-stats{font-size:11px;gap:2px}.col-rank{font-size:14px}.rank-medal{font-size:20px}.stat-wins,.stat-losses{font-size:11px}.stat-separator{font-size:10px}.you-badge{font-size:9px;padding:2px 4px}}.app-footer{background:var(--color-accent-green);color:var(--color-text-light);padding:var(--space-4xl) var(--space-xl) var(--space-xl);border-top:2px solid #264a2e;font-size:var(--text-sm);font-family:system-ui,-apple-system,sans-serif;box-shadow:0 -2px 8px #00000026}.footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;gap:var(--space-4xl);margin-bottom:var(--space-2xl);align-items:center}.footer-icons{display:flex;gap:var(--space-xl);align-items:center}.footer-icon{width:48px;height:48px;object-fit:contain;transition:var(--transition-base);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.footer-icon:hover{transform:scale(1.1)}.footer-section:first-child,.footer-section:first-child h4,.footer-section:first-child p{text-align:left}.footer-section h4{color:#fff;font-size:var(--text-base);font-weight:var(--font-bold);margin:0 0 var(--space-md) 0;text-transform:uppercase;letter-spacing:.5px;text-align:right;text-shadow:0 2px 6px rgba(0,0,0,.3)}.footer-section p{margin:0;line-height:1.6;color:#fffc;text-align:right}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm);align-items:flex-end}.footer-links li a,.footer-link-btn{color:#faf7f2d9;text-decoration:none;transition:var(--transition-base);background:none;border:none;padding:0;font-size:var(--text-sm);cursor:pointer;text-align:right;font-family:inherit;font-weight:var(--font-medium)}.footer-links li a:hover,.footer-link-btn:hover{color:var(--color-accent-gold);transform:translate(-2px)}.footer-socials{display:flex;gap:var(--space-md);margin-top:var(--space-md)}.footer-socials a{font-size:24px;transition:var(--transition-base);opacity:.85;text-decoration:none}.footer-socials a:hover{transform:scale(1.1);opacity:1}.footer-bottom{max-width:1200px;margin:0 auto;padding-top:var(--space-xl);border-top:1px solid rgba(250,247,242,.2);text-align:center;color:#faf7f2b3;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-md)}.footer-bottom p{margin:0;font-size:13px;font-weight:var(--font-regular)}.footer-version{font-family:Courier New,monospace;color:#faf7f299;background:#0003;padding:2px var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs)}@media (max-width: 768px){.app-footer{padding:var(--space-2xl) var(--space-lg) var(--space-lg)}.footer-content{flex-direction:column;gap:var(--space-2xl);align-items:center;text-align:center}.footer-section:first-child h4,.footer-section:first-child p,.footer-section h4,.footer-section p{text-align:center}.footer-icons{gap:var(--space-lg)}.footer-icon{width:40px;height:40px}.footer-links{align-items:center}.footer-link-btn{text-align:center}.footer-socials{justify-content:center}.footer-bottom{flex-direction:column;gap:var(--space-sm)}}@media (max-width: 480px){.footer-icon{width:36px;height:36px}.footer-section h4{font-size:var(--text-sm)}.footer-links li a,.footer-link-btn{font-size:13px}.footer-socials a{font-size:20px}}.bug-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}.bug-modal-content{background:var(--color-bg-main);border-radius:var(--radius-lg);padding:var(--space-3xl) var(--space-4xl);box-shadow:var(--shadow-2xl);border:2px solid var(--color-border);max-width:550px;width:90%;max-height:90vh;overflow-y:auto;color:var(--color-text-dark)}.bug-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--color-border-light)}.bug-modal-header h2{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary)}.bug-close-btn{background:var(--color-text-muted);border:none;color:var(--color-text-light);width:32px;height:32px;border-radius:var(--radius-sm);font-size:20px;cursor:pointer;transition:var(--transition-base);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.bug-close-btn:hover{background:#6b5a45;transform:rotate(90deg)}.bug-form{display:flex;flex-direction:column;gap:var(--space-xl)}.form-group-bug{display:flex;flex-direction:column;gap:var(--space-sm)}.form-group-bug label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary);letter-spacing:.3px}.form-group-bug input,.form-group-bug textarea,.form-group-bug select{padding:var(--space-md) var(--space-lg);background:#fff;border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-dark);font-size:15px;font-family:inherit;transition:var(--transition-base)}.form-group-bug input:focus,.form-group-bug textarea:focus,.form-group-bug select:focus{outline:none;border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #c9a86a26}.form-group-bug textarea{resize:vertical;min-height:80px}.form-group-bug select{cursor:pointer}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.form-warning{color:#d97706;font-weight:500}.char-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:400;margin-left:var(--space-sm)}.recommended-badge{font-size:10px;background:var(--color-accent-gold);color:#fff;padding:2px 8px;border-radius:12px;margin-left:var(--space-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.bug-help-banner{background:linear-gradient(135deg,#c9a86a26,#c9a86a0d);border-left:4px solid var(--color-accent-gold);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-dark);line-height:1.5}.bug-help-banner strong{color:var(--color-accent-gold)}.bug-form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-sm)}.bug-cancel-btn,.bug-submit-btn{flex:1;padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-md)}.bug-cancel-btn{background:var(--color-text-muted);color:var(--color-text-light)}.bug-cancel-btn:hover:not(:disabled){background:#6b5a45;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.bug-submit-btn{background:var(--color-accent-green);color:var(--color-text-light)}.bug-submit-btn:hover:not(:disabled){background:#3a7348;transform:translateY(-1px);box-shadow:0 3px 8px #2f5d3a4d}.bug-cancel-btn:disabled,.bug-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 600px){.bug-modal-content{padding:var(--space-xl) var(--space-2xl);width:95%}.bug-modal-header h2{font-size:var(--text-xl)}.bug-form-actions{flex-direction:column}.bug-cancel-btn,.bug-submit-btn{width:100%}}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-xl);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg-main);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-2xl);animation:slideUp .3s ease;border:2px solid var(--color-border)}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl) var(--space-3xl);border-bottom:2px solid var(--color-border-light);position:sticky;top:0;background:var(--color-bg-main);z-index:1}.modal-header h2{margin:0;color:var(--color-primary);font-size:var(--text-3xl);font-weight:var(--font-bold)}.modal-close-btn{background:var(--color-text-muted);border:none;color:var(--color-text-light);font-size:24px;cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:var(--transition-base);line-height:1;box-shadow:var(--shadow-md)}.modal-close-btn:hover{background:#6b5a45;transform:rotate(90deg)}.modal-body{padding:var(--space-3xl);color:var(--color-text-dark);line-height:1.7}.modal-body h3{color:var(--color-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-top:var(--space-2xl);margin-bottom:var(--space-md)}.modal-body p{margin:var(--space-md) 0;font-size:var(--text-base);color:var(--color-text-dark)}.modal-body ul{margin:var(--space-md) 0;padding-left:var(--space-2xl)}.modal-body li{margin:var(--space-sm) 0;font-size:var(--text-base);color:var(--color-text-dark)}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:var(--color-border-light);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.modal-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}.modal-content::-webkit-scrollbar-thumb:hover{background:#c4b5a0}@media (max-width: 768px){.modal-content{max-width:95%;max-height:90vh}.modal-header{padding:var(--space-xl)}.modal-header h2{font-size:var(--text-xl)}.modal-body{padding:var(--space-xl)}}:root{--user-header-height: 72px}#root{margin:0;padding:0;min-height:100svh}.App{margin:0;padding:0;min-height:100svh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.connection-error{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff6b6b,#ee5a24,#ff8c42);background-size:200% 200%;animation:gradientShift 15s ease infinite;color:#fff;text-align:center;padding:var(--space-xl);position:relative;overflow:hidden}.connection-error:before{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 1px,transparent 1px);background-size:50px 50px;animation:particleFloat 20s linear infinite;opacity:.3}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes particleFloat{0%{transform:translate(0)}to{transform:translate(-50px,-50px)}}.connection-error h2{font-size:2.5em;margin:0 0 var(--space-xl) 0;font-weight:800;text-shadow:0 4px 12px rgba(0,0,0,.3);position:relative;z-index:1;background:linear-gradient(135deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.connection-error p{font-size:1.2em;margin:var(--space-sm) 0;opacity:.95;position:relative;z-index:1;font-weight:var(--font-medium);text-shadow:0 2px 8px rgba(0,0,0,.2)}.connection-error button{margin-top:30px;padding:var(--space-lg) var(--space-4xl);background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:2px solid rgba(255,255,255,.4);border-radius:var(--radius-lg);font-size:1.1em;font-weight:var(--font-bold);cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;z-index:1;box-shadow:var(--shadow-xl)}.connection-error button:hover{background:#ffffff4d;transform:translateY(-3px);box-shadow:0 12px 32px #0000004d;border-color:#fff9}.connection-error button:active{transform:translateY(-1px)}.loading-screen{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e293b,#334155,#475569);background-size:200% 200%;animation:gradientShift 15s ease infinite;color:#fff;text-align:center;padding:var(--space-xl);position:relative;overflow:hidden}.loading-screen:before{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 1px,transparent 1px);background-size:50px 50px;animation:particleFloat 20s linear infinite;opacity:.3}.loading-screen h2{font-size:2em;margin:var(--space-xl) 0 var(--space-sm) 0;font-weight:800;text-shadow:0 4px 12px rgba(0,0,0,.3);position:relative;z-index:1;background:linear-gradient(135deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-screen p{font-size:1.1em;opacity:.9;position:relative;z-index:1;font-weight:var(--font-medium);text-shadow:0 2px 8px rgba(0,0,0,.2)}.loading-spinner{width:70px;height:70px;border:5px solid rgba(255,255,255,.2);border-top:5px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-xl);position:relative;z-index:1;box-shadow:var(--shadow-xl)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}body{margin:0;padding:0}.text-center{text-align:center}.mt-20{margin-top:var(--space-xl)}.mb-20{margin-bottom:var(--space-xl)}@media (max-width: 768px){.connection-error h2,.loading-screen h2{font-size:1.8em}.connection-error p,.loading-screen p{font-size:1em}.connection-error button{padding:var(--space-md) 28px;font-size:1em}.loading-spinner{width:60px;height:60px}}@media (max-width: 480px){.connection-error h2,.loading-screen h2{font-size:1.5em}.connection-error p,.loading-screen p{font-size:.95em}.connection-error button{padding:var(--space-md) var(--space-2xl);font-size:.95em}.loading-spinner{width:50px;height:50px;border-width:4px}}
