*{box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;--bg-primary: #ffffff;--bg-pure: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9edf1;--bg-hover: #e2e6ea;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-tertiary: #aab0b8;--text-on-accent: #ffffff;--text-on-dark: #ffffff;--border-primary: #2c3e50;--border-secondary: #95a5a6;--border-tertiary: #fcfcfc;--border-color: var(--border-secondary);--accent-primary: #3498db;--accent-hover: #2980b9;--accent-light: color-mix(in srgb, var(--accent-primary) 20%, transparent);--brand: #9333ea;--accent: var(--brand);--accent-purple: var(--brand);--brand-alpha-8: color-mix(in srgb, var(--brand) 8%, transparent);--brand-alpha-10: color-mix(in srgb, var(--brand) 10%, transparent);--brand-alpha-12: color-mix(in srgb, var(--brand) 12%, transparent);--brand-alpha-15: color-mix(in srgb, var(--brand) 15%, transparent);--brand-alpha-20: color-mix(in srgb, var(--brand) 20%, transparent);--brand-alpha-25: color-mix(in srgb, var(--brand) 25%, transparent);--brand-alpha-30: color-mix(in srgb, var(--brand) 30%, transparent);--brand-alpha-35: color-mix(in srgb, var(--brand) 35%, transparent);--brand-alpha-40: color-mix(in srgb, var(--brand) 40%, transparent);--brand-alpha-45: color-mix(in srgb, var(--brand) 45%, transparent);--brand-alpha-50: color-mix(in srgb, var(--brand) 50%, transparent);--brand-alpha-60: color-mix(in srgb, var(--brand) 60%, transparent);--brand-alpha-70: color-mix(in srgb, var(--brand) 70%, transparent);--accent-alpha-10: color-mix(in srgb, var(--accent-primary) 10%, transparent);--accent-alpha-20: color-mix(in srgb, var(--accent-primary) 20%, transparent);--accent-alpha-30: color-mix(in srgb, var(--accent-primary) 30%, transparent);--accent-alpha-40: color-mix(in srgb, var(--accent-primary) 40%, transparent);--accent-alpha-60: color-mix(in srgb, var(--accent-primary) 60%, transparent);--accent-secondary: #9b59b6;--accent-secondary-hover: #8e44ad;--success: #4caf50;--success-hover: #45a049;--success-bright: #66bb6a;--success-light: color-mix(in srgb, var(--success) 30%, transparent);--success-alpha-10: color-mix(in srgb, var(--success) 10%, transparent);--success-alpha-20: color-mix(in srgb, var(--success) 20%, transparent);--success-alpha-30: color-mix(in srgb, var(--success) 30%, transparent);--success-alpha-40: color-mix(in srgb, var(--success) 40%, transparent);--danger-primary: #e74c3c;--danger-hover: #c0392b;--danger-text: #ff6b6b;--danger-light: color-mix(in srgb, var(--danger-primary) 20%, transparent);--danger-alpha-10: color-mix(in srgb, var(--danger-primary) 10%, transparent);--danger-alpha-20: color-mix(in srgb, var(--danger-primary) 20%, transparent);--danger-alpha-30: color-mix(in srgb, var(--danger-primary) 30%, transparent);--danger-alpha-40: color-mix(in srgb, var(--danger-primary) 40%, transparent);--danger-alpha-50: color-mix(in srgb, var(--danger-primary) 50%, transparent);--danger-alpha-60: color-mix(in srgb, var(--danger-primary) 60%, transparent);--danger-alpha-95: color-mix(in srgb, var(--danger-primary) 95%, transparent);--warning-primary: #ff9800;--warning-hover: #f57c00;--warning-text: #ff8c00;--warning-light: color-mix(in srgb, var(--warning-primary) 20%, transparent);--highlight-primary: #ffcc00;--highlight-light: color-mix(in srgb, var(--highlight-primary) 20%, transparent);--highlight-medium: color-mix(in srgb, var(--highlight-primary) 50%, transparent);--highlight-strong: color-mix(in srgb, var(--highlight-primary) 80%, transparent);--gray-100: #f5f5f5;--gray-200: #eeeeee;--gray-300: #e0e0e0;--gray-400: #bdbdbd;--gray-500: #aaaaaa;--gray-600: #888888;--gray-700: #666666;--gray-800: #444444;--gray-900: #333333;--toast-bg: rgba(30, 30, 30, .95);--toast-hover: rgba(40, 40, 40, .95);--toast-border: rgba(255, 255, 255, .1);--modal-overlay: rgba(0, 0, 0, .7);--shadow-toast: rgba(0, 0, 0, .3);--shadow-modal: rgba(0, 0, 0, .4);--shadow-xs: rgba(0, 0, 0, .1);--shadow-sm: rgba(0, 0, 0, .2);--shadow-md: rgba(0, 0, 0, .3);--shadow-lg: rgba(0, 0, 0, .5);--overlay-black-strong: rgba(0, 0, 0, .85);--overlay-black-deep: rgba(0, 0, 0, .9);--overlay-white-ghost: rgba(255, 255, 255, .05);--overlay-white-subtle: rgba(255, 255, 255, .1);--overlay-white-light: rgba(255, 255, 255, .2);--overlay-white-medium: rgba(255, 255, 255, .3);--overlay-white-half: rgba(255, 255, 255, .5);--overlay-white-strong: rgba(255, 255, 255, .8);--board-square-light: #f0d9b5;--board-square-dark: #b58863;--board-square-dark-hover: #a07855;--piece-black: #000000;--piece-white: #ffffff;--checkers-red-piece-start: #ff6b6b;--checkers-red-piece-end: #c92a2a;--checkers-red-piece-border: #8b0000;--checkers-black-piece-start: #4a4a4a;--checkers-black-piece-end: #1a1a1a;--checkers-black-piece-border: #000000;--cell-bg: #ffffff;--cell-locked: #d5dbdb;--cell-hover: #ecf0f1;--cell-selected: #a8d5ff;--sudoku-cell-selected: color-mix(in srgb, var(--accent-primary) 42%, white);--cell-highlight: color-mix(in srgb, var(--brand) 60%, white);--cell-option-highlight: color-mix(in srgb, var(--cell-highlight) 37%, transparent);--control-bg: #95a5a6;--control-hover: #7f8c8d;--number-pad-bg: #ecf0f1;--number-pad-border: #bdc3c7;--sudoku-solving: #22c55e;--sudoku-solved: #86efac;--sudoku-solved-text: var(--gray-900);--stratego-red: #ff4444;--stratego-red-dark: #cc0000;--stratego-red-text: #990000;--stratego-blue: #4444ff;--stratego-blue-dark: #0000cc;--stratego-blue-text: #000099;--stratego-cell: #8b7355;--stratego-cell-hover: #a0826d;--stratego-cell-occupied: #5b4835;--stratego-panel-hover: #3a3a3a;--stratego-river: #2c5f7f;--stratego-river-deep: #1e3a5f;--stratego-river-mid: #2874a6;--stratego-hidden-bg: #34495e;--stratego-hidden-bg-alt: #2c3e50;--stratego-hidden-text: #ecf0f1;--stratego-river-highlight: rgba(174, 214, 241, .4);--tile-board-bg: #bbada0;--tile-beige: #eee4da;--tile-text-dark: #776e65;--tile-text-cream: #f9f6f2;--tile-brown-dim: #8f7a66;--tile-brown-dimmer: #9f8a76;--tile-beige-alpha-35: color-mix(in srgb, var(--tile-beige) 35%, transparent);--tile-beige-alpha-73: color-mix(in srgb, var(--tile-beige) 73%, transparent);--tile-beige-alpha-90: color-mix(in srgb, var(--tile-beige) 90%, transparent);--ms-num-1: #0000ff;--ms-num-2: #008000;--ms-num-3: #ff0000;--ms-num-4: #000080;--ms-num-5: #800000;--ms-num-6: #008080;--ms-num-7: #000000;--ms-num-8: #808080;--ms-num-alt-1: #4d9fff;--ms-num-alt-2: #4caf50;--ms-num-alt-3: #ff6b6b;--ms-num-alt-4: #5e9ed6;--ms-num-alt-5: #ff8a80;--ms-num-alt-6: #4dd0e1;--ms-num-alt-7: #e0e0e0;--ms-num-alt-8: #bdbdbd;--arcade-black: #000000;--arcade-near-black: #1a1a1a;--arcade-panel: rgba(255, 255, 255, .05);--arcade-text: var(--text-on-dark);--solitaire-red-suit: #dc2626;--solitaire-black-suit: #1f2937;--solitaire-card-back-bg: #1f2937;--solitaire-card-back-border: #374151;--solitaire-card-back-red-text: #f87171;--solitaire-card-back-text: #e5e7eb;--solitaire-drop-hint: #5a67d8;--solitaire-card-back-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--auth-bg: #0a0a14;--auth-panel: #14141e;--auth-panel-raised: #1e1e28;--auth-panel-deep: #0f0f19;--drawer-overlay: rgba(0, 0, 0, .5);--drawer-handle: var(--text-secondary);--fab-shadow: 0 4px 12px rgba(0, 0, 0, .3);--fab-bg: var(--accent-primary);--fab-hover-bg: var(--accent-hover);--transition-speed: .3s;--transition-ease: cubic-bezier(.4, 0, .2, 1);--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px);--icon-filter: brightness(0) saturate(100%);--button-bg: var(--bg-secondary);--button-hover-bg: var(--bg-tertiary);--button-text: var(--text-primary);--card-bg: var(--bg-primary);--hover-bg: var(--overlay-white-subtle);--accent-bg: var(--accent-light);--accent-primary-alpha: var(--accent-light);--accent-primary-hover: var(--accent-hover);--primary: var(--accent-primary);--primary-color: var(--accent-primary);--primary-light: var(--accent-light);--success-color: var(--success);--success-primary: var(--success);--danger: var(--danger-primary);--danger-bg: var(--danger-light);--error-color: var(--danger-primary);--text-color: var(--text-primary);--text-muted: var(--text-secondary);--bg-color: var(--bg-primary);--surface-1: var(--bg-primary);--surface-2: var(--bg-secondary);--surface-3: var(--bg-tertiary);--surface-primary: var(--bg-primary);--surface-secondary: var(--bg-secondary);--surface-tertiary: var(--bg-tertiary);--surface-hover: var(--bg-tertiary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{color-scheme:dark;--bg-primary: #1a1a1a;--bg-pure: #000000;--bg-secondary: #2d2d2d;--bg-tertiary: #333333;--bg-hover: #3d3d3d;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--text-tertiary: #6e6e6e;--border-primary: #404040;--border-secondary: #505050;--border-tertiary: #303030;--border-color: var(--border-secondary);--accent-primary: #4a9eff;--accent-hover: #3a8eef;--accent-light: color-mix(in srgb, var(--accent-primary) 20%, transparent);--brand: #9333ea;--accent: var(--brand);--accent-purple: var(--brand);--accent-secondary: #9b59b6;--accent-secondary-hover: #8e44ad;--success: #4caf50;--success-hover: #45a049;--success-light: color-mix(in srgb, var(--success) 30%, transparent);--danger-primary: #e74c3c;--danger-hover: #c0392b;--danger-text: #ff6b6b;--danger-light: color-mix(in srgb, var(--danger-primary) 20%, transparent);--warning-primary: #ff9800;--warning-hover: #f57c00;--warning-text: #ff8c00;--warning-light: color-mix(in srgb, var(--warning-primary) 20%, transparent);--highlight-primary: #ffcc00;--highlight-light: color-mix(in srgb, var(--highlight-primary) 20%, transparent);--highlight-medium: color-mix(in srgb, var(--highlight-primary) 50%, transparent);--highlight-strong: color-mix(in srgb, var(--highlight-primary) 80%, transparent);--gray-100: #3a3a3a;--gray-200: #444444;--gray-300: #4e4e4e;--gray-400: #5a5a5a;--gray-500: #6a6a6a;--gray-600: #7a7a7a;--gray-700: #8a8a8a;--gray-800: #9a9a9a;--gray-900: #aaaaaa;--toast-bg: rgba(30, 30, 30, .95);--toast-hover: rgba(40, 40, 40, .95);--toast-border: rgba(255, 255, 255, .1);--modal-overlay: rgba(0, 0, 0, .7);--shadow-toast: rgba(0, 0, 0, .3);--shadow-modal: rgba(0, 0, 0, .4);--shadow-xs: rgba(0, 0, 0, .1);--shadow-sm: rgba(0, 0, 0, .2);--shadow-md: rgba(0, 0, 0, .3);--shadow-lg: rgba(0, 0, 0, .5);--overlay-black-strong: rgba(0, 0, 0, .85);--overlay-black-deep: rgba(0, 0, 0, .9);--overlay-white-ghost: rgba(255, 255, 255, .05);--overlay-white-subtle: rgba(255, 255, 255, .1);--overlay-white-light: rgba(255, 255, 255, .2);--overlay-white-medium: rgba(255, 255, 255, .3);--overlay-white-half: rgba(255, 255, 255, .5);--overlay-white-strong: rgba(255, 255, 255, .8);--board-square-light: #f0d9b5;--board-square-dark: #b58863;--board-square-dark-hover: #a07855;--piece-black: #000000;--piece-white: #ffffff;--checkers-red-piece-start: #ff6b6b;--checkers-red-piece-end: #c92a2a;--checkers-red-piece-border: #8b0000;--checkers-black-piece-start: #4a4a4a;--checkers-black-piece-end: #1a1a1a;--checkers-black-piece-border: #000000;--cell-bg: #2d2d2d;--cell-locked: #3a3a3a;--cell-hover: #404040;--cell-selected: #2d5f8a;--sudoku-cell-selected: color-mix(in srgb, var(--accent-primary) 50%, var(--bg-pure));--cell-highlight: color-mix(in srgb, var(--brand) 85%, white);--cell-option-highlight: color-mix(in srgb, var(--cell-highlight) 37%, transparent);--control-bg: #404040;--control-hover: #505050;--number-pad-bg: #353535;--number-pad-border: #505050;--sudoku-solving: #22c55e;--sudoku-solved: #86efac;--sudoku-solved-text: var(--gray-900);--tile-beige-alpha-35: color-mix(in srgb, var(--tile-beige) 35%, transparent);--tile-beige-alpha-73: color-mix(in srgb, var(--tile-beige) 73%, transparent);--tile-beige-alpha-90: color-mix(in srgb, var(--tile-beige) 90%, transparent);--drawer-overlay: rgba(0, 0, 0, .5);--drawer-handle: var(--text-secondary);--fab-shadow: 0 4px 12px rgba(0, 0, 0, .3);--fab-bg: var(--accent-primary);--fab-hover-bg: var(--accent-hover);--transition-speed: .3s;--transition-ease: cubic-bezier(.4, 0, .2, 1);--icon-filter: brightness(0) saturate(100%) invert(1)}[data-accent=purple]{--accent-primary: #9b59b6;--accent-hover: #8e44ad;--brand: #7c3aed}[data-theme=dark][data-accent=purple]{--accent-primary: #ba68c8;--accent-hover: #a45dbb;--brand: #8b5cf6}[data-accent=green]{--accent-primary: #27ae60;--accent-hover: #229954;--brand: #16a34a}[data-theme=dark][data-accent=green]{--accent-primary: #2ecc71;--accent-hover: #27ae60;--brand: #22c55e}[data-accent=teal]{--accent-primary: #14b8a6;--accent-hover: #0d9488;--brand: #0f766e}[data-theme=dark][data-accent=teal]{--accent-primary: #2dd4bf;--accent-hover: #14b8a6;--brand: #14b8a6}[data-accent=orange]{--accent-primary: #f97316;--accent-hover: #ea580c;--brand: #c2410c}[data-theme=dark][data-accent=orange]{--accent-primary: #fb923c;--accent-hover: #f97316;--brand: #ea580c}[data-accent=pink]{--accent-primary: #ec4899;--accent-hover: #db2777;--brand: #be185d}[data-theme=dark][data-accent=pink]{--accent-primary: #f472b6;--accent-hover: #ec4899;--brand: #f472b6}body{margin:0;padding:0;min-width:320px;background-color:var(--bg-primary);color:var(--text-primary);user-select:none;-webkit-user-select:none}#root{width:100%;overflow-x:hidden}img,video,canvas,svg,table,iframe{max-width:100%;height:auto}*{max-width:100vw}.modal,.dropdown-menu,.popover,[role=dialog],[role=menu]{max-width:none}.container{padding-left:clamp(.5rem,2vw,2rem);padding-right:clamp(.5rem,2vw,2rem)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.5rem}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}button{border-radius:8px;border:none;font-family:inherit;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button:active{transform:scale(.98)}@supports (height: 100dvh){body{min-height:100dvh}}@supports not (height: 100dvh){body{min-height:100vh}}.menu{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90vh;padding:2rem;gap:2rem}.menu-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:1rem}.menu-header h1{font-size:3rem;margin:0;color:var(--text-primary);text-shadow:2px 2px 4px var(--shadow-md)}.header-buttons{display:flex;gap:.5rem}.theme-toggle{background:var(--accent-primary);border:none;font-size:1.5rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px var(--shadow-sm);transition:transform .2s,background-color .2s}.theme-toggle:hover{transform:scale(1.1);background-color:var(--accent-hover)}.settings-toggle{background:var(--control-bg);border:none;font-size:1.5rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px var(--shadow-sm);transition:transform .2s,background-color .2s}.settings-toggle:hover{transform:scale(1.1);background-color:var(--control-hover)}.keyboard-toggle{background:var(--accent-secondary);border:none;font-size:1.5rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px var(--shadow-sm);transition:transform .2s,background-color .2s}.keyboard-toggle:hover{transform:scale(1.1);background-color:var(--accent-secondary-hover)}.user-info{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px var(--shadow-sm)}.game-category{width:100%;max-width:700px;margin-bottom:1.5rem}.category-title{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-primary);font-weight:600}.username{color:var(--text-primary);font-size:1.1rem;font-weight:500;flex:1}.logout-button{padding:.5rem 1rem;background-color:var(--danger-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.logout-button:hover{background-color:var(--danger-hover)}.menu h1{font-size:3rem;margin:0;color:var(--text-primary)}.theme-toggle{padding:.75rem;font-size:1.5rem;background-color:var(--control-bg);border:none;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:48px;height:48px}.theme-toggle:hover{background-color:var(--control-hover);transform:scale(1.1)}.game-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;width:100%;max-width:700px}.play-game-button{padding:1.5rem 1rem;font-size:1.1rem;background-color:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-primary);border-radius:12px;cursor:pointer;font-weight:700;transition:all .2s;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 2px 4px var(--shadow-sm)}.game-icon{width:64px;height:64px;object-fit:contain}.game-icon.masked-icon{filter:brightness(0) saturate(100%);opacity:.9}[data-theme=light] .game-icon.masked-icon{filter:brightness(0) saturate(100%) invert(0%)}[data-theme=dark] .game-icon.masked-icon{filter:brightness(0) saturate(100%) invert(100%)}.game-name{font-size:1rem;text-align:center}.play-game-button:hover{transform:translateY(-4px);box-shadow:0 4px 8px var(--shadow-md);border-color:var(--accent-primary)}.play-game-button.dev-only{background-color:var(--accent-secondary);display:flex;align-items:center;justify-content:center;gap:.5rem}.play-game-button.dev-only:hover{background-color:var(--accent-secondary-hover)}.dev-badge{background-color:var(--overlay-white-light);padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700}.pending-badge{position:absolute;top:.5rem;right:.5rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:.25rem .5rem;background-color:var(--danger-primary);color:var(--text-on-accent);border-radius:12px;font-size:.85rem;font-weight:700;box-shadow:0 2px 4px var(--shadow-md)}.pending-badge.pulsing{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 2px 4px var(--shadow-md)}50%{transform:scale(1.15);box-shadow:0 4px 8px var(--danger-light)}}.play-game-button.disabled-game{opacity:.4;filter:grayscale(80%);cursor:not-allowed;position:relative}.play-game-button.disabled-game:hover{transform:none;box-shadow:0 2px 4px var(--shadow-sm);border-color:var(--border-primary)}.play-game-button.disabled-game:active{transform:none}.keyboard-required-badge{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);background-color:var(--gray-700);color:var(--text-on-accent);padding:.25rem .5rem;border-radius:6px;font-size:1rem;line-height:1;white-space:nowrap;pointer-events:none;z-index:1}.stats-button{width:100%;max-width:500px;padding:1rem;font-size:1.1rem;background-color:var(--accent-secondary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s;margin-top:1rem}.stats-button:hover{background-color:var(--accent-secondary-hover)}.admin-button{width:100%;max-width:500px;padding:1rem;font-size:1.1rem;background-color:var(--accent-secondary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s;margin-top:.5rem}.admin-button:hover{background-color:var(--accent-secondary-hover)}@media(max-width:768px){.menu{padding:1rem;gap:1rem}.menu-header{margin-bottom:.5rem}.menu-header h1{font-size:2rem}.user-info{margin-bottom:1rem;width:100%}.game-buttons{grid-template-columns:repeat(3,1fr);gap:.75rem;max-width:100%}.play-game-button{padding:1rem .5rem}.game-icon{width:48px;height:48px}.game-name{font-size:.85rem}.stats-button,.admin-button{max-width:100%}.keyboard-required-badge{font-size:.9rem;padding:.2rem .4rem;bottom:.4rem}}@media(max-width:480px){.menu{padding:.75rem}.menu-header h1{font-size:1.75rem}.user-info{flex-direction:column;text-align:center;gap:.5rem}.game-buttons{grid-template-columns:repeat(2,1fr);gap:.5rem}.play-game-button{padding:.75rem .25rem}.game-icon{width:40px;height:40px}.game-name{font-size:.8rem}.pending-badge{top:.25rem;right:.25rem;min-width:1.25rem;height:1.25rem;font-size:.75rem;padding:.15rem .4rem}.keyboard-required-badge{font-size:.85rem;padding:.15rem .35rem;bottom:.3rem}}@media(max-width:480px){.menu{padding:.75rem}.menu-header h1{font-size:1.75rem}.user-info{flex-direction:column;text-align:center;gap:.5rem}.game-buttons{grid-template-columns:repeat(2,1fr);gap:.5rem}.play-game-button{padding:.75rem .25rem}.game-icon{width:40px;height:40px}.game-name{font-size:.8rem}.pending-badge{top:.25rem;right:.25rem;min-width:1.25rem;height:1.25rem;font-size:.75rem;padding:.15rem .4rem}.keyboard-required-badge{font-size:.6rem;padding:.2rem .4rem;bottom:.3rem}}._authContainer_10hjy_1{display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100dvh;width:100%;background:linear-gradient(135deg,var(--auth-panel) 0%,var(--auth-bg) 100%);padding:24px;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));position:relative;overflow:hidden}._authContainer_10hjy_1:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--brand-alpha-8) 0%,transparent 50%);animation:_rotate_10hjy_1 30s linear infinite}@keyframes _rotate_10hjy_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._authBox_10hjy_32{background:color-mix(in srgb,var(--auth-panel-raised) 85%,transparent);padding:48px 40px;border-radius:24px;width:100%;max-width:460px;border:1px solid var(--brand-alpha-15);box-shadow:0 24px 64px var(--modal-overlay),0 0 0 1px var(--overlay-white-ghost) inset,0 0 120px var(--brand-alpha-8);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:1;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}._authBox_10hjy_32:hover{transform:translateY(-4px);box-shadow:0 32px 80px var(--modal-overlay),0 0 0 1px var(--overlay-white-ghost) inset,0 0 140px var(--brand-alpha-12)}._authBox_10hjy_32:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-purple),var(--accent));background-size:200% 100%;animation:_shimmer_10hjy_1 4s ease-in-out infinite}@keyframes _shimmer_10hjy_1{0%{background-position:-200% 0}to{background-position:200% 0}}._authBox_10hjy_32 h1{font-size:36px;font-weight:800;margin-bottom:8px;text-align:center;color:var(--text-primary);background:linear-gradient(135deg,var(--text-on-accent) 0%,var(--accent) 60%,var(--accent-purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-1px;text-shadow:0 0 30px var(--brand-alpha-30)}._authBox_10hjy_32 h2{color:var(--text-secondary);text-align:center;margin-bottom:36px;font-size:18px;line-height:1.6;opacity:.9;font-weight:500}._authError_10hjy_99{color:var(--danger-text);font-size:14px;margin-bottom:20px;padding:14px 16px;background:linear-gradient(135deg,var(--danger-alpha-10) 0%,var(--danger-alpha-10) 100%);border-radius:10px;border:1px solid var(--danger-alpha-30);box-shadow:0 4px 12px var(--danger-alpha-20);font-weight:500;display:flex;align-items:center;gap:8px}._authError_10hjy_99:before{content:"⚠";font-size:16px}._formGroup_10hjy_119{margin-bottom:28px}._formGroup_10hjy_119 label{display:block;margin-bottom:12px;font-weight:600;color:var(--text-primary);font-size:14px;letter-spacing:.5px;text-transform:uppercase;opacity:.95}._formGroup_10hjy_119 input{width:100%;padding:16px 18px;border-radius:12px;font-size:15px;background-color:color-mix(in srgb,var(--auth-panel-deep) 70%,transparent);border:2px solid var(--brand-alpha-10);color:var(--text-primary);outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px var(--shadow-modal),0 0 0 1px var(--overlay-white-ghost) inset;font-family:inherit}._formGroup_10hjy_119 input:hover{background-color:color-mix(in srgb,var(--auth-panel) 80%,transparent);border-color:var(--brand-alpha-30);box-shadow:0 4px 16px var(--shadow-lg),0 0 0 1px var(--overlay-white-ghost) inset}._formGroup_10hjy_119 input:focus{background-color:color-mix(in srgb,var(--auth-panel) 95%,transparent);border-color:var(--accent);box-shadow:0 4px 20px var(--modal-overlay),0 0 0 4px var(--brand-alpha-15),0 0 0 1px var(--overlay-white-ghost) inset;transform:translateY(-2px)}._formGroup_10hjy_119 input::placeholder{color:var(--text-muted);opacity:.6}._authButton_10hjy_173{width:100%;padding:18px;border-radius:12px;font-size:16px;font-weight:700;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-purple) 100%);background-size:200% 100%;background-position:0% 0%;color:var(--text-on-accent);margin-top:16px;border:none;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px var(--brand-alpha-35),0 4px 8px var(--shadow-md),0 0 0 1px var(--overlay-white-subtle) inset;position:relative;overflow:hidden;letter-spacing:.8px;text-transform:uppercase;font-size:14px}._authButton_10hjy_173:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--overlay-white-light),transparent);transition:left .6s ease}._authButton_10hjy_173:hover:not(:disabled):before{left:100%}._authButton_10hjy_173:hover:not(:disabled){background-position:100% 0%;transform:translateY(-3px);box-shadow:0 12px 32px var(--brand-alpha-45),0 8px 16px var(--shadow-modal),0 0 0 1px var(--overlay-white-subtle) inset}._authButton_10hjy_173:active:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px var(--brand-alpha-35),0 2px 4px var(--shadow-md)}._authButton_10hjy_173:disabled{opacity:.4;cursor:not-allowed;background:linear-gradient(135deg,var(--gray-800) 0%,var(--gray-900) 100%);box-shadow:none;transform:none}._authToggle_10hjy_237{text-align:center;margin-top:32px;color:var(--text-secondary);font-size:14px;padding-top:28px;border-top:1px solid var(--overlay-white-ghost)}._toggleButton_10hjy_246{background:none;border:none;color:var(--accent);font-weight:700;text-decoration:none;position:relative;transition:all .3s ease;padding-bottom:2px;padding-left:4px;padding-right:4px;cursor:pointer;font-size:14px}._toggleButton_10hjy_246:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-purple));transition:width .4s cubic-bezier(.4,0,.2,1)}._toggleButton_10hjy_246:hover:not(:disabled){color:var(--accent-purple);text-shadow:0 0 8px var(--brand-alpha-40)}._toggleButton_10hjy_246:hover:not(:disabled):after{width:100%}._toggleButton_10hjy_246:disabled{opacity:.4;cursor:not-allowed}._authDivider_10hjy_286{display:flex;align-items:center;margin:24px 0;gap:16px}._authDivider_10hjy_286:before,._authDivider_10hjy_286:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brand-alpha-20),transparent)}._authDivider_10hjy_286 span{color:var(--text-muted);font-size:13px;text-transform:uppercase;letter-spacing:1px;font-weight:500}._ssoButton_10hjy_309{width:100%;padding:16px 18px;border-radius:12px;font-size:15px;font-weight:600;background:var(--overlay-white-ghost);color:var(--text-primary);border:2px solid var(--brand-alpha-30);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:12px;position:relative;overflow:hidden}._ssoButton_10hjy_309:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--overlay-white-subtle),transparent);transition:left .5s ease}._ssoButton_10hjy_309:hover:not(:disabled):before{left:100%}._ssoButton_10hjy_309:hover:not(:disabled){background:var(--overlay-white-subtle);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px var(--shadow-md),0 0 0 1px var(--overlay-white-ghost) inset}._ssoButton_10hjy_309:active:not(:disabled){transform:translateY(0)}._ssoButton_10hjy_309:disabled{opacity:.4;cursor:not-allowed}.stats-app .stats-container{padding:2rem;max-width:1600px;margin:0 auto;min-height:100vh;color:var(--text-primary)}.stats-app .stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.stats-app .stats-header h1{font-size:2.5rem;margin:0;color:var(--text-primary)}.stats-app .back-button{padding:.5rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.stats-app .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.stats-app .stats-loading,.stats-app .stats-error{text-align:center;padding:3rem;font-size:1.2rem;color:var(--text-secondary)}.stats-app .stats-error{color:var(--danger-text)}.stats-app .stats-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-secondary);padding-bottom:0}.stats-app .stats-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;margin-bottom:-2px}.stats-app .stats-tab:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.stats-app .stats-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.stats-app .accordion{display:flex;flex-direction:column;gap:.5rem}.stats-app .accordion-item{background-color:var(--bg-primary);border:1px solid var(--border-secondary);border-radius:8px;overflow:hidden}.stats-app .accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:transparent;border:none;color:var(--text-primary);font-size:1.1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;text-align:left}.stats-app .accordion-header:hover{background-color:var(--bg-secondary)}.stats-app .accordion-icon{font-size:1.5rem;font-weight:300;color:var(--text-secondary);transition:transform .2s ease}.stats-app .accordion-item.expanded .accordion-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-secondary)}.stats-app .accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.stats-app .accordion-item.expanded .accordion-content{max-height:2000px;padding:1rem}.stats-app .accordion-item.wordsearch-game.expanded .accordion-content{max-height:none}.stats-app .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.stats-app .stat-item{background-color:var(--bg-primary);padding:1.25rem;border-radius:8px;text-align:center;border:1px solid var(--border-secondary)}.stats-app .stat-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.stats-app .stat-value{font-size:1.5rem;color:var(--accent-primary);font-weight:700}.stats-app .stat-item-wide{min-width:180px}.stats-app .stat-value-row{display:flex;flex-direction:column;gap:.25rem;align-items:center}.stats-app .stat-detail{font-size:1.25rem;color:var(--text-primary);font-weight:600}.stats-app .stat-percent{font-size:.9rem;color:var(--accent-primary);font-weight:500}.stats-app .best-times-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.stats-app .variant-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;background-color:var(--bg-primary);border-radius:8px;padding:.25rem}.stats-app .variant-tab{flex:1;padding:.6rem .75rem;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.stats-app .variant-tab:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.stats-app .variant-tab.active{color:var(--text-primary);background-color:var(--accent-primary);color:var(--text-on-accent)}.stats-app .variant-stats-content{min-height:100px}.stats-app .best-time-item{background-color:var(--bg-primary);padding:1rem;border-radius:8px;text-align:center;border:1px solid var(--border-secondary)}.stats-app .best-time-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.stats-app .best-time-value{font-size:1.3rem;color:var(--accent-primary);font-weight:700;font-family:Courier New,monospace}.stats-app .best-time-value.no-time{color:var(--text-secondary)}.stats-app .stats-section{background-color:var(--bg-secondary);padding:1.5rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 8px var(--shadow-sm)}.stats-app .stats-section h2{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.8rem;border-bottom:2px solid var(--border-secondary);padding-bottom:.5rem}.stats-app .stats-section h3{margin:1.5rem 0 1rem;color:var(--text-primary);font-size:1.4rem}.stats-app .stats-section h4{margin:0 0 .75rem;color:var(--text-secondary);font-size:1rem;text-align:center;font-weight:600}.stats-app .totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}@media(min-width:760px){.stats-app .totals-section .totals-grid{grid-template-columns:repeat(4,1fr)}}.stats-app .total-item{background-color:var(--bg-primary);padding:1.5rem;border-radius:8px;text-align:center;border:1px solid var(--border-secondary)}.stats-app .total-label{font-size:1rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.stats-app .total-value{font-size:2rem;color:var(--accent-primary);font-weight:700}.stats-app .streaks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}@media(min-width:760px){.stats-app .streaks-grid{grid-template-columns:repeat(2,1fr)}}.stats-app .streak-item{background-color:var(--bg-primary);padding:1.5rem;border-radius:8px;text-align:center;border:1px solid var(--border-secondary)}.stats-app .streak-label{font-size:1rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.stats-app .streak-value{font-size:1.5rem;font-weight:700;padding:.5rem;border-radius:6px}.stats-app .streak-value.win{color:var(--success);background-color:var(--success-light)}.stats-app .streak-value.loss{color:var(--danger-text);background-color:var(--danger-light)}.stats-app .leaderboards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stats-app .leaderboard{background-color:var(--bg-primary);padding:1rem;border-radius:8px;border:1px solid var(--border-secondary)}.stats-app .leaderboard-table{width:100%;border-collapse:collapse;font-size:.95rem}.stats-app .leaderboard-table thead{background-color:var(--bg-secondary)}.stats-app .leaderboard-table th{padding:.75rem .5rem;text-align:left;color:var(--text-secondary);font-weight:600;border-bottom:2px solid var(--border-secondary)}.stats-app .leaderboard-table th:first-child{width:40px;text-align:center}.stats-app .leaderboard-table th:last-child{text-align:right}.stats-app .leaderboard-table td{padding:.75rem .5rem;border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}.stats-app .leaderboard-table td:first-child{text-align:center;font-weight:700;color:var(--text-secondary)}.stats-app .leaderboard-table td:last-child{text-align:right;font-family:Courier New,monospace;font-weight:600;color:var(--accent-primary)}.stats-app .leaderboard-table tbody tr:hover{background:var(--bg-tertiary)}.stats-app .wordsearch-leaderboard{padding:1rem 0}.stats-app .wordsearch-themes-accordion{display:flex;flex-direction:column;gap:.5rem}.stats-app .wordsearch-themes-accordion .accordion-item{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);overflow:hidden}.stats-app .wordsearch-themes-accordion .accordion-header{width:100%;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;background:transparent;border:none;cursor:pointer;font-size:.95rem;font-weight:500;color:var(--text-primary);transition:background-color .2s}.stats-app .wordsearch-themes-accordion .accordion-header:hover{background:var(--bg-secondary)}.stats-app .wordsearch-themes-accordion .accordion-icon{font-weight:600;color:var(--text-secondary)}.stats-app .wordsearch-themes-accordion .accordion-content{padding:0 1rem 1rem}.stats-app .wordsearch-themes-accordion .accordion-item.expanded .accordion-content{display:block}.stats-app .wordsearch-themes-accordion .accordion-item:not(.expanded) .accordion-content{display:none}.stats-app .no-data{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.stats-app .matchups-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.stats-app .matchups-table-wrapper::-webkit-scrollbar{height:8px}.stats-app .matchups-table-wrapper::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.stats-app .matchups-table-wrapper::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.stats-app .matchups-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.stats-app .matchups-table{width:100%;border-collapse:collapse;font-size:1rem;background-color:var(--bg-primary);border-radius:8px;overflow:hidden}.stats-app .matchups-table thead{background-color:var(--bg-secondary)}.stats-app .matchups-table th{padding:1rem;text-align:left;color:var(--text-secondary);font-weight:600;border-bottom:2px solid var(--border-secondary)}.stats-app .matchups-table th:first-child{text-align:left;min-width:150px}.stats-app .matchups-table th:not(:first-child){text-align:center;min-width:120px}.stats-app .matchups-table td{padding:1rem;border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}.stats-app .matchups-table td:not(:first-child){text-align:center;font-family:Courier New,monospace;font-weight:600}.stats-app .matchups-table tbody tr:hover{background-color:var(--bg-secondary)}.stats-app .opponent-name{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.stats-app .wins{color:var(--success)}.stats-app .losses{color:var(--danger-text)}.stats-app .no-games{color:var(--text-secondary);font-style:italic}.stats-app .matchups-cards{display:none}@media(max-width:600px){.stats-app .matchups-table-wrapper{display:none}.stats-app .matchups-cards{display:flex;flex-direction:column;gap:1rem}.stats-app .matchup-card{background-color:var(--bg-primary);border:1px solid var(--border-secondary);border-radius:8px;padding:1rem}.stats-app .matchup-card-header{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-secondary)}.stats-app .matchup-card-games{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stats-app .matchup-game-item{display:flex;flex-direction:column;gap:.25rem}.stats-app .matchup-game-name{font-size:.85rem;color:var(--text-secondary);font-weight:500}.stats-app .matchup-game-record{font-family:Courier New,monospace;font-weight:600;font-size:.95rem;color:var(--text-primary)}}.stats-app .stats-content{display:block}@media(min-width:1024px){.stats-app .leaderboards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.stats-app .stats-container{padding:clamp(.5rem,2vw,1rem)}.stats-app .stats-header{flex-direction:column;gap:1rem;text-align:center}.stats-app .stats-header h1{font-size:2rem}.stats-app .stats-tabs{gap:.25rem}.stats-app .stats-tab{padding:.6rem 1rem;font-size:.9rem}.stats-app .leaderboards-grid{grid-template-columns:1fr}.stats-app .totals-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.stats-app .streaks-grid{grid-template-columns:1fr}.stats-app .accordion-header{padding:.875rem 1rem;font-size:1rem}.stats-app .matchups-table{font-size:.85rem}.stats-app .matchups-table th,.stats-app .matchups-table td{padding:.5rem .25rem}.stats-app .matchups-table th:first-child{min-width:80px}.stats-app .matchups-table th:not(:first-child){min-width:65px}.stats-app .opponent-name{max-width:80px}}.admin-container{padding:2rem;max-width:1400px;margin:0 auto;color:var(--text-primary)}.admin-container .admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-container .admin-header h1{margin:0;color:var(--text-primary)}.admin-container .back-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.admin-container .back-button:hover{background-color:var(--accent-secondary)}.admin-container .admin-loading{text-align:center;font-size:1.5rem;color:var(--text-primary);padding:3rem}.admin-container .admin-error{background-color:var(--danger-primary);color:var(--text-on-accent);padding:1rem;border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.admin-container .admin-error button{background-color:var(--overlay-white-light);color:var(--text-on-accent);border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.admin-container .admin-error button:hover{background-color:var(--overlay-white-medium)}.admin-container .admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color)}.admin-container .tab-button{padding:1rem 2rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;color:var(--text-secondary);transition:all .2s}.admin-container .tab-button:hover{color:var(--text-primary);background-color:var(--bg-hover)}.admin-container .tab-button.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.admin-container .users-list h2,.admin-container .games-list h2{margin-bottom:1rem;color:var(--text-primary)}.admin-container .games-list{margin-top:1rem}.admin-container .no-games{padding:3rem;text-align:center;font-size:1.2rem;color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:8px}.admin-container .games-table{width:100%;border-collapse:collapse;background-color:var(--bg-secondary);border-radius:8px;overflow:hidden}.admin-container .games-table thead{background-color:var(--accent-primary);color:var(--text-on-accent)}.admin-container .games-table th,.admin-container .games-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.admin-container .games-table th{font-weight:600;text-transform:uppercase;font-size:.875rem;letter-spacing:.5px}.admin-container .games-table tbody tr:hover{background-color:var(--bg-hover)}.admin-container .games-table tbody tr:last-child td{border-bottom:none}.admin-container .game-type-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500;color:var(--text-on-accent);text-transform:capitalize}.admin-container .players-list{display:flex;flex-direction:column;gap:.25rem}.admin-container .player-name{font-size:.875rem;color:var(--text-primary)}.admin-container .status-text{font-size:.875rem;color:var(--text-secondary);text-transform:capitalize}.admin-container .delete-game{background-color:var(--danger-primary);color:var(--text-on-accent)}.admin-container .delete-game:hover{background-color:var(--danger-hover)}.admin-container .users-list h2{margin-bottom:1rem;color:var(--text-primary)}.admin-container .users-table{width:100%;border-collapse:collapse;background-color:var(--bg-secondary);border-radius:8px;overflow:hidden}.admin-container .users-table thead{background-color:var(--accent-primary);color:var(--text-on-accent)}.admin-container .users-table th,.admin-container .users-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.admin-container .users-table th{font-weight:600;text-transform:uppercase;font-size:.875rem;letter-spacing:.5px}.admin-container .users-table tbody tr:hover{background-color:var(--bg-hover)}.admin-container .users-table tbody tr:last-child td{border-bottom:none}.admin-container .deleted-user{opacity:.6;background-color:var(--danger-alpha-10)}.admin-container .badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500}.admin-container .badge-admin{background-color:var(--success);color:var(--text-on-accent)}.admin-container .badge-user{background-color:var(--accent-primary);color:var(--text-on-accent)}.admin-container .badge-active{background-color:var(--success);color:var(--text-on-accent)}.admin-container .badge-deleted{background-color:var(--danger-primary);color:var(--text-on-accent)}.admin-container .action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.admin-container .action-button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.admin-container .grant-admin{background-color:var(--success);color:var(--text-on-accent)}.admin-container .grant-admin:hover{background-color:var(--success-hover)}.admin-container .revoke-admin{background-color:var(--warning-primary);color:var(--text-on-accent)}.admin-container .revoke-admin:hover{background-color:var(--warning-hover)}.admin-container .delete-user{background-color:var(--danger-primary);color:var(--text-on-accent)}.admin-container .delete-user:hover{background-color:var(--danger-hover)}@media(max-width:768px){.admin-container{padding:1rem}.admin-container .admin-header{flex-direction:column;gap:1rem;align-items:flex-start}.admin-container .admin-tabs{width:100%}.admin-container .tab-button{flex:1;padding:.75rem 1rem;font-size:.875rem}.admin-container .users-table,.admin-container .games-table{font-size:.875rem}.admin-container .users-table th,.admin-container .users-table td,.admin-container .games-table th,.admin-container .games-table td{padding:.75rem .5rem}.admin-container .action-buttons{flex-direction:column;gap:.25rem}.admin-container .action-button{width:100%}}.settings-app{width:100%;max-width:700px;margin:0 auto;padding:2rem 1rem}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.settings-header h1{font-size:2.5rem;margin:0;color:var(--text-primary)}.settings-app .back-button{padding:.5rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.settings-app .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.saved-indicator{color:var(--success);font-weight:600;opacity:0;transition:opacity .3s}.saved-indicator.visible{opacity:1}.settings-section{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem}.settings-section-title{margin:0 0 1.25rem;font-size:1.4rem;color:var(--text-primary)}.settings-group-title{margin:1.25rem 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.settings-group-title:first-of-type{margin-top:0}.mode-options{display:flex;gap:1rem}.mode-card{flex:1;max-width:240px;padding:.75rem;display:flex;flex-direction:column;gap:.75rem;align-items:center;background-color:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:10px;cursor:pointer;transition:all .2s}.mode-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.mode-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.mode-preview{width:100%;border-radius:6px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.mode-card-light .mode-preview{background-color:#f4f4f4}.mode-card-dark .mode-preview{background-color:#1a1a1a}.mode-preview-title{height:.75rem;width:60%;border-radius:3px}.mode-preview-line{height:.5rem;width:85%;border-radius:3px}.mode-preview-button{height:1.25rem;width:40%;border-radius:4px}.mode-card-light .mode-preview-title,.mode-card-light .mode-preview-line{background-color:#2c3e50;opacity:.8}.mode-card-light .mode-preview-button{background-color:var(--accent-primary)}.mode-card-dark .mode-preview-title{background-color:#e0e0e0}.mode-card-dark .mode-preview-line{background-color:#a0a0a0}.mode-card-dark .mode-preview-button{background-color:var(--accent-primary)}.mode-label{font-size:1rem;font-weight:600;color:var(--text-primary)}.accent-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.accent-swatch{position:relative;display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:10px;cursor:pointer;transition:all .2s}.accent-swatch:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.accent-swatch.selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.accent-color{width:2rem;height:2rem;border-radius:50%;background-color:var(--swatch);flex-shrink:0;box-shadow:var(--shadow-sm)}.accent-name{font-size:.9rem;color:var(--text-primary);font-weight:500;text-align:left}.accent-check{position:absolute;top:.4rem;right:.6rem;color:var(--success);font-weight:700}@media(max-width:480px){.settings-app{padding:1rem .5rem}.settings-header h1{font-size:1.75rem}.mode-options{flex-direction:column}.mode-card{max-width:none}}.sudoku-app{width:100%}.sudoku-app .menu{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}.sudoku-app .menu-header{display:flex;align-items:center;gap:1rem;position:relative;max-width:600px}.sudoku-app .back-button{padding:.5rem 1rem;font-size:1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.sudoku-app .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.sudoku-app .menu h1{font-size:3rem;margin:0;color:var(--text-primary)}.sudoku-app .sudoku-tabs{display:flex;gap:.5rem;margin-bottom:.5rem;border-bottom:2px solid var(--border-secondary);padding-bottom:0;width:100%;max-width:500px;justify-content:center}.sudoku-app .sudoku-tab{padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;margin-bottom:-2px}.sudoku-app .sudoku-tab:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.sudoku-app .sudoku-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.sudoku-app .theme-toggle{padding:.75rem;font-size:1.5rem;background-color:var(--control-bg);border:none;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:48px;height:48px}.sudoku-app .theme-toggle:hover{background-color:var(--control-hover);transform:scale(1.1)}.sudoku-app .resume-button{padding:1rem 2rem;font-size:1.2rem;background-color:var(--success);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s;animation:pulse 2s infinite}.sudoku-app .resume-button:hover{background-color:var(--success-hover)}.sudoku-app .difficulty-buttons{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:500px}.sudoku-app .difficulty-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.sudoku-app .play-button{flex:1;min-width:200px;padding:1rem;font-size:1.1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s}.sudoku-app .play-button:hover{background-color:var(--accent-hover)}.sudoku-app .scores-button{padding:1rem;font-size:1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.sudoku-app .scores-button:hover{background-color:var(--control-hover)}.sudoku-app .best-time{width:100%;text-align:center;font-size:.9rem;color:var(--text-secondary);margin-top:.25rem}@media(max-width:600px){.sudoku-app .menu h1{font-size:2rem}.sudoku-app .sudoku-tabs{gap:.25rem}.sudoku-app .sudoku-tab{padding:.6rem .75rem;font-size:.85rem}.sudoku-app .difficulty-row{flex-direction:column}.sudoku-app .play-button,.sudoku-app .scores-button{width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:6px;cursor:pointer;font-family:inherit;font-weight:500;transition:background-color .2s,transform .1s,box-shadow .2s;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-sm{padding:.375rem .75rem;font-size:.875rem}.btn-md{padding:.5rem 1rem;font-size:1rem}.btn-lg{padding:.75rem 1.5rem;font-size:1.125rem}.btn-primary{background-color:var(--accent-primary);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-300)}.btn-danger{background-color:transparent;color:var(--danger-primary);border:2px solid var(--danger-primary)}.btn-danger:hover:not(:disabled){background-color:var(--danger-light)}.btn-ghost{background-color:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-secondary)}@media(prefers-color-scheme:dark){.btn-secondary{background-color:var(--bg-tertiary, var(--bg-secondary))}.btn-secondary:hover:not(:disabled){background-color:var(--gray-700)}}.btn-pulse{animation:btn-pulse 2s infinite}.btn-pulse:active:not(:disabled){animation:none}@keyframes btn-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.game-header-shared{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;max-width:900px;margin:0 auto;padding:.75rem 1rem}.game-header-left{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.game-header-center{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}.game-header-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary);text-align:center;white-space:nowrap}.game-header-subtitle{font-size:.6em;font-weight:400;margin-left:.75rem;color:var(--text-secondary)}.game-header-info{display:flex;align-items:center;gap:1rem;margin-top:.25rem}.game-header-stat{display:flex;flex-direction:column;align-items:center;padding:.25rem .75rem;background:var(--bg-secondary);border-radius:6px;min-width:60px}.game-header-stat-label{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.5px}.game-header-stat-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.game-header-timer{font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace}.game-header-stat-player{font-size:.65rem;color:var(--text-secondary);margin-top:-2px}.game-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}@media(max-width:600px){.game-header-shared{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.game-header-left,.game-header-right{order:1}.game-header-center{order:0;flex-basis:100%;margin-bottom:.25rem}.game-header-title{font-size:1.25rem}.game-header-stat{padding:.2rem .5rem;min-width:50px}.game-header-stat-value{font-size:1rem}}@media(max-width:400px){.game-header-info{gap:.5rem}.game-header-stat{padding:.15rem .35rem;min-width:40px}.game-header-stat-label{font-size:.6rem}.game-header-stat-value{font-size:.9rem}}.player-selector{width:100%;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.player-selector-header{display:flex;justify-content:space-between;align-items:center}.player-selector-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.player-selector-count{font-size:.9rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:4px}.player-selector-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:1rem;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-secondary)}.player-selector-empty{margin:0;padding:1rem;text-align:center;color:var(--text-secondary);font-style:italic}.player-selector-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background-color:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:6px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.player-selector-item:hover{border-color:var(--accent-primary);transform:translate(4px)}.player-selector-item:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.player-selector-item.selected{background-color:var(--accent-primary);border-color:var(--accent-hover);color:var(--text-on-accent)}.player-selector-item.selected:hover{background-color:var(--accent-hover)}.player-selector-checkbox{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:2px solid currentColor;border-radius:4px;font-size:.875rem;font-weight:700;flex-shrink:0}.player-selector-item.selected .player-selector-checkbox{background-color:var(--text-on-accent);color:var(--accent-primary);border-color:var(--text-on-accent)}.player-selector-name{font-size:1rem;font-weight:500}@media(max-width:600px){.player-selector-list{max-height:250px;padding:.75rem}.player-selector-item{padding:.75rem}}.active-games-list{width:100%;display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.active-games-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.active-games-items{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:1rem;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-secondary)}.active-game-item{display:flex;flex-direction:column;gap:.25rem;padding:.875rem 1rem;background-color:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:6px;cursor:pointer;transition:all .2s}.active-game-item:hover{border-color:var(--accent-primary);transform:translate(4px)}.active-game-item:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.active-game-item.my-turn{border-left:4px solid var(--success)}.active-game-primary{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.active-game-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary)}.active-game-status{color:var(--text-secondary)}.active-game-status.my-turn{color:var(--success);font-weight:600}.active-game-tertiary{color:var(--text-secondary);font-size:.85rem}.active-game-tertiary:before{content:"•";margin-right:.5rem}@media(max-width:600px){.active-games-items{max-height:250px;padding:.75rem}.active-game-item{padding:.75rem}.active-game-primary{font-size:1rem}}.game-over-overlay{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.game-over-content{background-color:var(--surface-primary);padding:2rem;border-radius:12px;max-width:400px;width:90%;box-shadow:0 8px 32px var(--shadow-md);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.game-over-content.victory{border:3px solid var(--success);box-shadow:0 8px 32px var(--success-alpha-30)}.game-over-content.defeat{border:3px solid var(--danger-primary);box-shadow:0 8px 32px var(--danger-alpha-30)}.game-over-title{margin:0 0 1rem;font-size:2rem;color:var(--text-primary);text-align:center}.game-over-content.victory .game-over-title{color:var(--success)}.game-over-content.defeat .game-over-title{color:var(--danger-primary)}.game-over-subtitle{margin:0 0 1.5rem;font-size:1rem;color:var(--text-secondary);text-align:center}.game-over-stats{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.game-over-stat{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:var(--surface-secondary);border-radius:6px}.game-over-stat-label{color:var(--text-secondary);font-size:.875rem}.game-over-stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:700}.game-over-buttons{display:flex;gap:1rem;justify-content:center;padding:0 .5rem}.game-over-buttons .btn{flex:1;max-width:150px}@media(max-width:480px){.game-over-content{padding:1.5rem;margin:1rem}.game-over-title{font-size:1.75rem}.game-over-buttons{flex-direction:column;gap:.75rem}.game-over-buttons .btn{max-width:none}}.menu-layout{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2rem;min-height:100vh}.menu-layout-header{display:flex;align-items:center;justify-content:center;gap:1rem;position:relative;width:100%;max-width:600px}.menu-layout-title{margin:0;font-size:2.5rem;color:var(--text-primary);text-align:center;flex:1}.menu-layout-back{padding:.5rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s;flex-shrink:0}.menu-layout-back:hover{background-color:var(--control-hover);transform:translate(-2px)}.menu-layout-content{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:600px}.menu-layout-loading,.menu-layout-error{font-size:1.2rem;padding:1rem;text-align:center}.menu-layout-loading{color:var(--text-secondary)}.menu-layout-error{color:var(--danger-text)}.menu-layout-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.menu-layout-section-title{font-size:1.5rem;margin:0;color:var(--text-primary)}@media(max-width:600px){.menu-layout{padding:1rem;gap:1.5rem}.menu-layout-title{font-size:2rem}.menu-layout-back{font-size:.9rem;padding:.4rem .8rem}.menu-layout-content{gap:1.5rem}}.pause-overlay{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:pauseFadeIn .3s ease}@keyframes pauseFadeIn{0%{opacity:0}to{opacity:1}}.pause-content{background-color:var(--surface-primary);padding:2rem;border-radius:12px;max-width:320px;width:90%;box-shadow:0 8px 32px var(--shadow-md);animation:pauseSlideUp .3s ease}@keyframes pauseSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pause-title{margin:0 0 .5rem;font-size:2rem;color:var(--text-primary);text-align:center}.pause-subtitle{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-secondary);text-align:center}.pause-buttons{display:flex;flex-direction:column;gap:.75rem;padding:0 .5rem}.pause-buttons .btn{width:100%}@media(max-width:480px){.pause-content{padding:1.5rem;margin:1rem}.pause-title{font-size:1.75rem}}.instructions-box{text-align:center;width:100%}.instructions-box.simple{color:var(--text-secondary);font-size:.9rem}.instructions-box.simple .instructions-content{max-width:500px;margin:0 auto}.instructions-box.card{padding:1rem;background-color:var(--surface-secondary);border-radius:8px;color:var(--text-secondary);font-size:.875rem}.instructions-box.card .instructions-content{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.instructions-box .instruction-item{display:flex;gap:.5rem;align-items:center}.instructions-box .instruction-item strong{color:var(--text-primary)}.instructions-mobile-hint{margin-top:.5rem;font-size:.8rem;color:var(--text-tertiary, var(--text-secondary));opacity:.8}@media(hover:hover)and (pointer:fine){.instructions-mobile-hint{display:none}}.modal-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background-color:var(--bg-primary);color:var(--text-primary);padding:2rem;border-radius:12px;max-width:90vw;max-height:90vh;width:auto;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px var(--shadow-modal);animation:slideIn .3s ease-out;transition:transform .3s var(--transition-ease)}.modal-bottom-sheet{position:fixed;inset:auto 0 0;max-width:100vw;max-height:90vh;width:100%;border-radius:16px 16px 0 0;padding:0;animation:slideUpIn .3s var(--transition-ease)}.modal-bottom-sheet .modal-title{padding:1rem 1.5rem .5rem;margin:0;border-bottom:none;position:sticky;top:0;background:var(--bg-primary);z-index:10}.modal-bottom-sheet .modal-body{padding:1rem 1.5rem;margin-bottom:0}.modal-bottom-sheet .modal-close{margin:0 1.5rem 1.5rem;position:sticky;bottom:0;background:var(--bg-primary)}.modal-drag-handle{width:32px;height:4px;background:var(--drawer-handle);border-radius:2px;margin:12px auto 8px;flex-shrink:0;cursor:grab}.modal-drag-handle:active{cursor:grabbing}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUpIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-title{margin:0 0 1.5rem;font-size:1.5rem;text-align:center;flex-shrink:0}.modal-body{margin-bottom:1.5rem;line-height:1.6;max-width:100%;overflow:auto;flex:1;min-height:0}.modal-close{width:100%;padding:.75rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s;flex-shrink:0}.modal-close:hover{background-color:var(--accent-hover)}.modal-close:active{transform:scale(.98)}.modal-confirm-buttons{display:flex;gap:1rem;margin-top:1.5rem;padding:0 1rem}.modal-body:has(.modal-confirm-buttons){min-width:280px;padding:.5rem 0;text-align:center}.modal-confirm-buttons button{flex:1;padding:.75rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s}.modal-cancel{background-color:var(--bg-secondary);color:var(--text-primary)}.modal-cancel:hover{background-color:var(--bg-tertiary)}.modal-confirm{background-color:var(--accent-primary);color:var(--text-on-accent)}.modal-confirm:hover{background-color:var(--accent-hover)}.modal-confirm-buttons button:active{transform:scale(.98)}.toast-container{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{background-color:var(--toast-bg);color:var(--text-on-accent);padding:1rem 1.5rem;border-radius:8px;box-shadow:0 4px 16px var(--shadow-toast);font-size:.95rem;max-width:400px;word-wrap:break-word;animation:toastSlideIn .3s ease-out;pointer-events:auto;cursor:pointer;border:1px solid var(--toast-border)}@keyframes toastSlideIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.toast:hover{background-color:var(--toast-hover)}.toast-error{background-color:var(--danger-alpha-95);border:1px solid var(--danger-text)}.toast-error:hover{background-color:var(--danger-hover)}.sudoku-app .game{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.sudoku-app .generating{font-size:1.5rem;margin-top:3rem;color:var(--text-secondary)}.sudoku-app .game-header{display:flex;align-items:center;gap:1rem;width:100%;max-width:600px;justify-content:space-between}.sudoku-app .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.sudoku-app .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.sudoku-app .game-header button:hover{background-color:var(--accent-hover)}.sudoku-app .timer{font-size:1.2rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.sudoku-app .board{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:8px;background-color:var(--border-tertiary);padding:6px;border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);width:min(95vw,500px);height:min(95vw,500px);box-sizing:border-box}.sudoku-app .block{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:1px;background-color:var(--border-secondary)}.sudoku-app .cell{aspect-ratio:1;background-color:var(--bg-pure);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;font-weight:700;position:relative;color:var(--text-primary)}.sudoku-app .cell:hover{background-color:var(--cell-hover)}.sudoku-app .cell.locked{background-color:var(--cell-locked);color:var(--text-primary)}.sudoku-app .cell.selected{background-color:var(--sudoku-cell-selected)!important;color:var(--text-on-accent)}.sudoku-app .cell.highlighted{background-color:var(--cell-highlight)!important}.sudoku-app .cell.optionHighlighted{background-color:var(--cell-option-highlight)!important}.sudoku-app .cell-value{font-size:clamp(1.2rem,4vw,1.8rem)}.sudoku-app .cell-options{display:grid;grid-template-columns:repeat(3,.6fr);grid-template-rows:repeat(3,.3fr);width:100%;height:100%}.sudoku-app .option{font-size:clamp(.65rem,2vw,.9rem);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-weight:600}.sudoku-app .option-empty{display:block;min-height:1rem}.sudoku-app .controls{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:600px;padding:1rem 2rem}.sudoku-app .control-buttons{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.sudoku-app .control-buttons button{padding:.75rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.sudoku-app .control-buttons button:hover{background-color:var(--control-hover)}.sudoku-app .control-buttons button.active{background-color:var(--success)}.sudoku-app .control-buttons button.active:hover{background-color:var(--success-hover)}.sudoku-app .control-buttons button svg{display:block;height:20px;width:auto}.sudoku-app .control-buttons button:disabled{background-color:var(--control-bg);color:var(--text-secondary);cursor:not-allowed;opacity:.5}.sudoku-app .control-buttons button.hint-button{background-color:var(--brand)}.sudoku-app .control-buttons button.hint-button:hover:not(:disabled){background-color:color-mix(in srgb,var(--brand) 80%,black)}.sudoku-app .control-buttons button.hint-button:disabled{background-color:var(--control-bg)}.sudoku-app .hinted{animation:hint-pulse 1.5s ease-out;background-color:var(--sudoku-solved)!important;color:var(--sudoku-solved-text)!important}@keyframes hint-pulse{0%{background-color:var(--sudoku-solving);transform:scale(1.1)}50%{background-color:var(--sudoku-solved)}to{background-color:var(--sudoku-solved);transform:scale(1)}}.sudoku-app .number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:50%;margin-left:auto}.sudoku-app .number-button{aspect-ratio:1;background-color:var(--number-pad-bg);border:2px solid var(--number-pad-border);border-radius:8px;cursor:pointer;font-size:1.5rem;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .2s;position:relative;color:var(--text-primary)}.sudoku-app .number-button:hover:not(:disabled){background-color:var(--cell-hover);transform:scale(1.05)}.sudoku-app .number-button.selected{background-color:var(--accent-primary);border-color:var(--accent-hover);color:var(--text-on-accent)}.sudoku-app .number-button:disabled{background-color:var(--control-bg);color:var(--text-secondary);cursor:not-allowed;opacity:.5}.sudoku-app .number-button .number{font-size:clamp(1.2rem,4vw,2rem)}.sudoku-app .number-button .count{font-size:clamp(.7rem,2vw,1rem);color:var(--text-secondary)}.sudoku-app .number-button.selected .count{color:var(--overlay-white-strong)}@media(min-width:600px){.sudoku-app .board{width:min(95vw,600px);height:min(95vw,600px)}}.sudoku-app .cell.diagonal-cell{background-color:var(--brand-alpha-8)}.sudoku-app .cell.diagonal-cell.selected{background-color:var(--brand-alpha-25)}.sudoku-app .cell.diagonal-cell.highlighted{background-color:var(--brand-alpha-35)}.sudoku-app .cell.diagonal-cell.hinted{background-color:var(--brand-alpha-50)}@media(prefers-color-scheme:dark){.sudoku-app .cell.diagonal-cell{background-color:var(--brand-alpha-12)}.sudoku-app .cell.diagonal-cell.selected{background-color:var(--brand-alpha-30)}.sudoku-app .cell.diagonal-cell.highlighted{background-color:var(--brand-alpha-40)}}.sudoku-app .jigsaw-board{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:1px;background-color:var(--border-tertiary);padding:3px;border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);width:min(95vw,500px);height:min(95vw,500px);box-sizing:border-box}.sudoku-app .jigsaw-cell.border-top{border-top:2px dashed var(--text-secondary)}.sudoku-app .jigsaw-cell.border-right{border-right:2px dashed var(--text-secondary)}.sudoku-app .jigsaw-cell.border-bottom{border-bottom:2px dashed var(--text-secondary)}.sudoku-app .jigsaw-cell.border-left{border-left:2px dashed var(--text-secondary)}.sudoku-app .jigsaw-cell{display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;font-weight:700;position:relative;color:var(--text-primary);aspect-ratio:1;border:1px solid transparent}.sudoku-app .jigsaw-cell:hover{background-color:var(--cell-hover)}.sudoku-app .jigsaw-cell.locked{background-color:var(--cell-locked);color:var(--text-primary)}.sudoku-app .jigsaw-cell.selected{background-color:var(--sudoku-cell-selected)!important;color:var(--text-on-accent)}.sudoku-app .jigsaw-cell.highlighted{background-color:var(--cell-highlight)!important}.sudoku-app .jigsaw-cell.optionHighlighted{background-color:var(--cell-option-highlight)!important}.sudoku-app .jigsaw-cell .cell-value{font-size:clamp(1.2rem,4vw,1.8rem)}.sudoku-app .jigsaw-cell .cell-options{display:grid;grid-template-columns:repeat(3,.6fr);grid-template-rows:repeat(3,.3fr);width:100%;height:100%}.sudoku-app .jigsaw-cell .option{font-size:clamp(.65rem,2vw,.9rem);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-weight:600}.sudoku-app .jigsaw-cell .option-empty{display:block}@media(min-width:600px){.sudoku-app .jigsaw-board{width:min(95vw,600px);height:min(95vw,600px)}}.sudoku-app .killer-board{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:1px;background-color:var(--border-tertiary);padding:3px;border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);width:min(95vw,500px);height:min(95vw,500px);box-sizing:border-box}.sudoku-app .killer-cell.cage-border-top{border-top:2px dashed var(--text-secondary)}.sudoku-app .killer-cell.cage-border-right{border-right:2px dashed var(--text-secondary)}.sudoku-app .killer-cell.cage-border-bottom{border-bottom:2px dashed var(--text-secondary)}.sudoku-app .killer-cell.cage-border-left{border-left:2px dashed var(--text-secondary)}.sudoku-app .killer-cell .cage-sum{position:absolute;top:1px;left:2px;font-size:clamp(.5rem,1.8vw,.75rem);font-weight:600;color:var(--text-secondary);line-height:1;z-index:1}.sudoku-app .killer-cell{display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;font-weight:700;position:relative;color:var(--text-primary);aspect-ratio:1;border:1px solid transparent}.sudoku-app .killer-cell:hover{background-color:var(--cell-hover)}.sudoku-app .killer-cell.locked{background-color:var(--cell-locked);color:var(--text-primary)}.sudoku-app .killer-cell.selected{background-color:var(--sudoku-cell-selected)!important;color:var(--text-on-accent)}.sudoku-app .killer-cell.highlighted{background-color:var(--cell-highlight)!important}.sudoku-app .killer-cell.optionHighlighted{background-color:var(--cell-option-highlight)!important}.sudoku-app .killer-cell .cell-value{font-size:clamp(1.2rem,4vw,1.8rem)}.sudoku-app .killer-cell .cell-options{display:grid;grid-template-columns:repeat(3,.6fr);grid-template-rows:repeat(3,.3fr);width:100%;height:100%;padding-top:10px}.sudoku-app .killer-cell .option{font-size:clamp(.55rem,1.8vw,.8rem);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-weight:600}.sudoku-app .killer-cell .option-empty{display:block}@media(min-width:600px){.sudoku-app .killer-board{width:min(95vw,600px);height:min(95vw,600px)}}.chess-app{width:100%}.chess-app .chess-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90vh;padding:2rem;gap:2rem}.chess-app .chess-menu-header{display:flex;align-items:center;gap:1rem;position:relative}.chess-app .chess-menu h1{font-size:3rem;margin:0;color:var(--text-primary);text-shadow:2px 2px 4px var(--shadow-md)}.chess-app .back-button{padding:.5rem 1rem;font-size:1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.chess-app .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.chess-app .menu-content{display:flex;flex-direction:column;align-items:center;gap:3rem;width:100%;max-width:600px}.chess-app .menu-content h2{font-size:1.8rem;margin:0;color:var(--text-primary)}.chess-app .active-games-section,.chess-app .new-game-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.chess-app .games-list{width:100%;display:flex;flex-direction:column;gap:.75rem;padding:1rem;background-color:var(--shadow-sm);border-radius:8px;max-height:300px;overflow-y:auto}.chess-app .game-item{padding:1rem 1.5rem;background-color:var(--control-bg);color:var(--text-on-accent);border-radius:6px;cursor:pointer;transition:all .2s;border:2px solid transparent}.chess-app .game-item:hover{background-color:var(--control-hover);transform:translate(4px);border-color:var(--accent-primary)}.chess-app .game-info-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.chess-app .opponent-name{font-size:1.1rem;font-weight:600}.chess-app .turn-indicator{font-size:.9rem;color:var(--text-secondary)}.chess-app .turn-indicator:first-of-type:has(●){color:var(--success);font-weight:700}.chess-app .player-list{width:100%;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:1rem;background-color:var(--shadow-sm);border-radius:8px}.chess-app .player-item{padding:1rem 1.5rem;background-color:var(--control-bg);color:var(--text-on-accent);border-radius:6px;cursor:pointer;transition:all .2s;font-size:1.1rem;border:2px solid transparent}.chess-app .player-item:hover{background-color:var(--control-hover);transform:translate(4px)}.chess-app .player-item.selected{background-color:var(--accent-primary);border-color:var(--accent-hover);font-weight:700}.chess-app .loading-text,.chess-app .error-text{font-size:1.2rem;padding:1rem}.chess-app .error-text{color:var(--danger-text)}.chess-app .loading-text{color:var(--text-secondary)}.chess-app .menu-buttons{display:flex;flex-direction:column;gap:1rem}.chess-app .start-button{padding:1rem 3rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.5rem;font-weight:700;transition:all .2s;box-shadow:0 4px 6px var(--shadow-md)}.chess-app .start-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 8px var(--shadow-modal)}.chess-app .start-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px var(--shadow-md)}.chess-app .start-button:disabled{opacity:.5;cursor:not-allowed}.chess-app .chess-game{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem}.chess-app .game-header{display:flex;align-items:center;gap:1rem;width:100%;max-width:600px;justify-content:space-between;position:relative}.chess-app .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary);position:absolute;left:50%;transform:translate(-50%)}.chess-app .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.chess-app .game-header button:hover{background-color:var(--accent-hover)}.chess-app .board-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem}.chess-app .chess-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);width:min(90vw,600px);height:min(90vw,600px);max-width:600px;max-height:600px}.chess-app .cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s;position:relative}.chess-app .cell.black{background-color:var(--board-square-dark)}.chess-app .cell.white{background-color:var(--board-square-light)}.chess-app .cell:hover{opacity:.8}.chess-app .cell.selected{background-color:var(--cell-selected)!important}.chess-app .cell.valid-move:after{content:"";position:absolute;width:25%;height:25%;background-color:var(--shadow-md);border-radius:50%;pointer-events:none}.chess-app .cell.valid-move:has(.piece):after{width:90%;height:90%;border:3px solid var(--shadow-md);background-color:transparent;border-radius:0}.chess-app .cell.last-move{background-color:var(--highlight-light)!important}.chess-app .cell.last-move.black,.chess-app .cell.last-move.white{background-color:var(--highlight-light)!important;box-shadow:inset 0 0 0 3px var(--highlight-medium)}.chess-app .piece{-webkit-user-select:none;user-select:none;pointer-events:none;text-shadow:0 2px 4px var(--shadow-md);font-size:clamp(1.5rem,5vw,2.8rem)}.chess-app .piece.white{color:var(--text-on-accent);filter:drop-shadow(0 0 1px black)}.chess-app .piece.black{color:var(--piece-black);filter:drop-shadow(0 0 1px white)}.chess-app .game-info{text-align:center;font-size:1.2rem;color:var(--text-primary);font-weight:700}.chess-app .game-info .check{color:var(--danger-primary);font-size:1.5rem;margin-top:.5rem;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chess-app .game-over{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--bg-primary);padding:2rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-lg);text-align:center;z-index:1000}.chess-app .game-over h2{margin:0 0 1rem;color:var(--text-primary)}.chess-app .game-over button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.chess-app .game-over button:hover{background-color:var(--accent-hover)}.chess-app .promotion-dialog{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.chess-app .promotion-content{background-color:var(--bg-primary);padding:2rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-lg);text-align:center}.chess-app .promotion-content h3{margin:0 0 1.5rem;color:var(--text-primary)}.chess-app .promotion-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.chess-app .promotion-options button{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.chess-app .promotion-options button:hover{background-color:var(--accent-hover)}.chess-app .promotion-options .piece{font-size:3rem}.chess-app .graveyard{display:flex;flex-wrap:wrap;gap:.25rem;min-height:3rem;width:min(90vw,600px);max-width:600px;padding:.5rem;background-color:var(--bg-secondary);border-radius:8px;border:2px solid var(--border-primary);align-items:center;justify-content:center}.chess-app .graveyard .piece{font-size:2rem;opacity:.8}@media(max-width:600px){.chess-app .chess-game{padding:0rem}.chess-app .game-header{justify-content:center;gap:.5rem}.chess-app .game-header h2{font-size:1.2rem;position:static;transform:none;width:100%;text-align:center}}.checkers-app{width:100%}.checkers-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90vh;padding:2rem;gap:2rem}.checkers-menu-header{display:flex;align-items:center;gap:1rem;position:relative}.checkers-menu-header h1{margin:0;color:var(--text-primary);font-size:3rem;text-shadow:2px 2px 4px var(--shadow-md)}.checkers-menu .back-button{padding:.5rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s;font-weight:500}.checkers-menu .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.checkers-menu .menu-content{display:flex;flex-direction:column;align-items:center;gap:3rem;width:100%;max-width:600px}.checkers-menu .menu-content h2{font-size:1.8rem;margin:0;color:var(--text-primary)}.checkers-menu .loading-text,.checkers-menu .error-text{font-size:1.2rem;padding:1rem}.checkers-menu .error-text{color:var(--danger-text)}.checkers-menu .loading-text{color:var(--text-secondary)}.checkers-menu .active-games-section,.checkers-menu .new-game-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.checkers-menu .games-list{width:100%;display:flex;flex-direction:column;gap:.75rem;padding:1rem;background-color:var(--shadow-sm);border-radius:8px;max-height:300px;overflow-y:auto}.checkers-menu .game-item{padding:1rem 1.5rem;background-color:var(--control-bg);color:var(--text-on-accent);border-radius:6px;cursor:pointer;transition:all .2s;border:2px solid transparent}.checkers-menu .game-item:hover{background-color:var(--control-hover);transform:translate(4px);border-color:var(--accent-primary)}.checkers-menu .game-info-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.checkers-menu .opponent-name{font-size:1.1rem;font-weight:600}.checkers-menu .turn-indicator{font-size:.9rem;color:var(--text-secondary)}.checkers-menu .turn-indicator:first-of-type:has(●){color:var(--success);font-weight:700}.checkers-menu .player-list{width:100%;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:1rem;background-color:var(--shadow-sm);border-radius:8px}.checkers-menu .player-item{padding:1rem 1.5rem;background-color:var(--control-bg);color:var(--text-on-accent);border-radius:6px;cursor:pointer;transition:all .2s;font-size:1.1rem;border:2px solid transparent}.checkers-menu .player-item:hover{background-color:var(--control-hover);transform:translate(4px)}.checkers-menu .player-item.selected{background-color:var(--accent-primary);border-color:var(--accent-hover);font-weight:700}.checkers-menu .start-button{padding:1rem 3rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.5rem;font-weight:700;transition:all .2s;box-shadow:0 4px 6px var(--shadow-md)}.checkers-menu .start-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 8px var(--shadow-modal)}.checkers-menu .start-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px var(--shadow-md)}.checkers-menu .start-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.checkers-menu-header h1{font-size:2rem}}.checkers-game{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:1rem;box-sizing:border-box}.checkers-game .game-header{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:600px;margin-bottom:1rem;position:relative}.checkers-game .game-header h2{margin:0;color:var(--text-primary);position:absolute;left:50%;transform:translate(-50%)}.checkers-game .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem}.checkers-game .game-header button:hover{background-color:var(--accent-hover)}.checkers-game .board-container{display:flex;flex-direction:column;align-items:center;gap:.5rem}.checkers-game .checkers-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:0;width:min(80vw,600px);height:min(80vw,600px);border:2px solid var(--border-color);box-shadow:0 4px 6px var(--shadow-xs)}.checkers-game .cell{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background-color .2s}.checkers-game .cell.light{background-color:var(--board-square-light)}.checkers-game .cell.dark{background-color:var(--board-square-dark)}.checkers-game .cell.dark:hover{background-color:var(--board-square-dark-hover)}.checkers-game .cell.selected{background-color:var(--success-hover)!important;box-shadow:inset 0 0 0 3px var(--success)}.checkers-game .cell.valid-move{background-color:var(--highlight-light)!important}.checkers-game .cell.valid-move:after{content:"";position:absolute;width:25%;height:25%;border-radius:50%;background-color:var(--success-light)}.checkers-game .cell.last-move-from,.checkers-game .cell.last-move-to{background-color:var(--highlight-light)!important}.checkers-game .cell.last-move-from.dark,.checkers-game .cell.last-move-to.dark,.checkers-game .cell.last-move-from.light,.checkers-game .cell.last-move-to.light{background-color:var(--highlight-light)!important;box-shadow:inset 0 0 0 3px var(--highlight-medium)}.checkers-game .piece{width:80%;height:80%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--highlight-primary);box-shadow:0 2px 4px var(--shadow-md);position:relative}.checkers-game .piece.red{background:radial-gradient(circle at 30% 30%,var(--checkers-red-piece-start),var(--checkers-red-piece-end));border:2px solid var(--checkers-red-piece-border)}.checkers-game .piece.black{background:radial-gradient(circle at 30% 30%,var(--checkers-black-piece-start),var(--checkers-black-piece-end));border:2px solid var(--checkers-black-piece-border)}.checkers-game .piece.king{box-shadow:0 0 10px var(--highlight-strong),0 2px 4px var(--shadow-md)}.checkers-game .graveyard{width:min(80vw,600px);min-height:2rem;display:flex;align-items:center;justify-content:center;padding:.5rem;background-color:var(--bg-secondary);border-radius:6px}.checkers-game .graveyard .piece-count{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.checkers-game .game-over{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--bg-primary);padding:2rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-md);text-align:center;z-index:1000}.checkers-game .game-over h2{margin:0 0 1rem;color:var(--text-primary)}.checkers-game .game-over button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem}.checkers-game .game-over button:hover{background-color:var(--accent-hover)}.checkers-game .game-info{margin-top:1rem;text-align:center;color:var(--text-primary)}.checkers-game .game-info p{margin:.5rem 0;font-size:1.1rem}@media(max-width:600px){.checkers-game{padding:0rem}.checkers-game .game-header{gap:.5rem}.checkers-game .game-header h2{font-size:1.2rem;position:static;transform:none;width:100%;text-align:center}.checkers-game .game-header button{padding:.4rem .8rem;font-size:.9rem}.checkers-game .piece{font-size:1.5rem}}.stratego-app{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.stratego-app .stratego-menu{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--text-primary)}.stratego-app .menu-header{width:100%;max-width:800px;display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.stratego-app .menu-header h1{font-size:3rem;margin:0;color:var(--accent-primary);text-shadow:2px 2px 4px var(--shadow-md)}.stratego-app .back-button{padding:.75rem 1.5rem;background-color:var(--surface-secondary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s}.stratego-app .back-button:hover{background-color:var(--surface-hover);transform:translateY(-2px)}.stratego-app .menu-content{width:100%;max-width:800px;display:flex;flex-direction:column;gap:2rem}.stratego-app .loading-text,.error-text{text-align:center;font-size:1.2rem;padding:2rem}.stratego-app .error-text{color:var(--danger-primary)}.stratego-app .active-games-section,.new-game-section{background-color:var(--surface-secondary);padding:2rem;border-radius:12px;border:2px solid var(--border-color)}.stratego-app .active-games-section h2,.new-game-section h2{color:var(--accent-primary);margin-top:0;margin-bottom:1.5rem;font-size:1.5rem}.stratego-app .games-list{display:flex;flex-direction:column;gap:.75rem}.stratego-app .game-item{padding:1rem;background-color:var(--surface-primary);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.stratego-app .game-item:hover{background-color:var(--surface-hover);transform:translate(4px);border-color:var(--accent-primary)}.stratego-app .game-info-row{display:flex;justify-content:space-between;align-items:center}.stratego-app .opponent-name{font-weight:700;font-size:1.1rem}.stratego-app .turn-indicator{font-size:.9rem;color:var(--text-secondary)}.stratego-app .player-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}.stratego-app .player-item{padding:1rem;background-color:var(--surface-primary);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;text-align:center;transition:all .2s}.stratego-app .player-item:hover{background-color:var(--surface-hover);transform:translateY(-2px)}.stratego-app .player-item.selected{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.stratego-app .no-players{text-align:center;color:var(--text-secondary);font-style:italic;padding:2rem}.stratego-app .start-button{width:100%;padding:1rem;font-size:1.1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:all .2s}.stratego-app .start-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-2px)}.stratego-app .start-button:disabled{opacity:.5;cursor:not-allowed}.stratego-app .game-rules{background-color:var(--surface-secondary);padding:1.5rem;border-radius:12px;border:2px solid var(--border-color)}.stratego-app .game-rules h3{color:var(--accent-primary);margin-top:0;margin-bottom:1rem;font-size:1.3rem}.stratego-app .game-rules ul{list-style:none;padding:0;margin:0}.stratego-app .game-rules ul li{margin:.5rem 0;padding-left:1.5rem;position:relative}.stratego-app .game-rules ul li:before{content:"→";position:absolute;left:0;color:var(--accent-primary)}.stratego-app .game-rules strong{color:var(--accent-secondary)}@media(max-width:768px){.stratego-app .menu-header h1{font-size:2rem}.stratego-app .player-list{grid-template-columns:1fr}}.stratego-app .placement-phase{min-height:100vh;padding:20px;display:flex;flex-direction:column;gap:20px}.stratego-app .placement-header{display:flex;justify-content:space-between;align-items:center}.stratego-app .placement-header h2{margin:0;font-size:2rem}.stratego-app .exit-button{padding:10px 20px;background-color:var(--stratego-red);color:var(--text-on-accent);border:none;border-radius:5px;cursor:pointer;font-size:1rem}.stratego-app .exit-button:hover{background-color:var(--stratego-red-dark)}.stratego-app .placement-info{background-color:var(--overlay-white-subtle);padding:15px;border-radius:8px;text-align:center}.stratego-app .placement-info p{margin:5px 0}.stratego-app .player-color{font-weight:700;padding:2px 8px;border-radius:4px}.stratego-app .player-color.red{background-color:var(--stratego-red);color:var(--text-on-accent)}.stratego-app .player-color.blue{background-color:var(--stratego-blue);color:var(--text-on-accent)}.stratego-app .placement-container{display:flex;gap:20px;flex-wrap:wrap}.stratego-app .placement-board-section{flex:1;min-width:min(500px,100vw - 2rem);display:flex;flex-direction:column;gap:15px}.stratego-app .placement-board-section h3{margin:0;font-size:1.2rem}.stratego-app .placement-board{display:grid;gap:2px;background-color:var(--gray-900);padding:10px;border-radius:8px;width:fit-content}.stratego-app .placement-board .board-row{display:flex;gap:2px}.stratego-app .placement-board .board-cell{width:45px;height:45px;background-color:var(--stratego-cell);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;transition:all .2s}.stratego-app .placement-board .board-cell:hover{background-color:var(--stratego-cell-hover);transform:scale(1.05)}.stratego-app .placement-board .board-cell.occupied{background-color:var(--stratego-cell-occupied)}.stratego-app .placement-board .board-cell.lake{background-color:var(--stratego-river);background-image:radial-gradient(circle at 20% 30%,var(--overlay-white-subtle) 0%,transparent 50%),radial-gradient(circle at 80% 70%,var(--overlay-white-subtle) 0%,transparent 50%);cursor:not-allowed;position:relative}.stratego-app .placement-board .board-cell.lake:after{content:"~";position:absolute;font-size:24px;color:var(--overlay-white-medium);pointer-events:none}.stratego-app .placement-board .board-cell.lake:hover{background-color:var(--stratego-river);transform:none}.stratego-app .placement-board .board-cell.non-placement{background-color:var(--stratego-panel-hover);cursor:not-allowed;opacity:.5}.stratego-app .placement-board .board-cell.non-placement:hover{background-color:var(--stratego-panel-hover);transform:none}.stratego-app .placement-board .piece{font-size:18px;font-weight:700;-webkit-user-select:none;user-select:none;background-color:var(--overlay-white-strong);width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:3px}.stratego-app .placement-board .piece.red{border:2px solid var(--stratego-red)}.stratego-app .placement-board .piece.blue{border:2px solid var(--stratego-blue)}.stratego-app .placement-actions{display:flex;gap:10px;flex-wrap:wrap}.stratego-app .placement-actions button{padding:12px 24px;border:none;border-radius:5px;cursor:pointer;font-size:1rem;transition:all .2s}.stratego-app .placement-actions button:not(.submit-button){background-color:var(--gray-700);color:var(--text-on-accent)}.stratego-app .placement-actions button:not(.submit-button):hover:not(:disabled){background-color:var(--gray-600)}.stratego-app .placement-actions .submit-button{background-color:var(--success);color:var(--text-on-accent);font-weight:700}.stratego-app .placement-actions .submit-button:hover:not(:disabled){background-color:var(--success-hover);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-sm)}.stratego-app .placement-actions button:disabled{background-color:var(--gray-800);color:var(--gray-600);cursor:not-allowed;opacity:.5}.stratego-app .placement-legend{display:flex;gap:20px;padding:15px;background-color:var(--overlay-white-subtle);border-radius:8px;flex-wrap:wrap}.stratego-app .placement-legend .legend-item{display:flex;align-items:center;gap:8px}.stratego-app .placement-legend .legend-color{width:30px;height:30px;border-radius:4px;border:2px solid var(--border-color)}.stratego-app .placement-legend .placement-area-color{background-color:var(--stratego-cell)}.stratego-app .placement-legend .lake-color{background-color:var(--stratego-river)}.stratego-app .placement-legend .non-placement-color{background-color:var(--stratego-panel-hover);opacity:.5}.stratego-app .placement-board.rotated,.stratego-app .placement-board .board-cell.rotated-cell{transform:rotate(180deg)}.stratego-app .placement-board .board-cell.rotated-cell:hover{transform:rotate(180deg) scale(1.05)}.stratego-app .available-pieces-section{flex:1;min-width:min(300px,100vw - 2rem);max-width:min(400px,100vw - 2rem);display:flex;flex-direction:column;gap:15px}.stratego-app .available-pieces-section h3{margin:0;font-size:1.2rem}.stratego-app .available-pieces{display:flex;flex-direction:column;gap:10px;max-height:600px;overflow-y:auto;padding:10px;background-color:var(--overlay-white-subtle);border-radius:8px}.stratego-app .piece-group{background-color:var(--overlay-white-subtle);padding:10px;border-radius:5px}.stratego-app .piece-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--overlay-white-light)}.stratego-app .piece-name{font-weight:700;font-size:.9rem}.stratego-app .piece-count{color:var(--gray-500);font-size:.85rem}.stratego-app .piece-list{display:flex;flex-wrap:wrap;gap:5px}.stratego-app .available-piece{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:var(--overlay-white-strong);border:2px solid transparent;border-radius:5px;cursor:pointer;font-weight:700;font-size:16px;transition:all .2s;-webkit-user-select:none;user-select:none}.stratego-app .available-piece.red{color:var(--stratego-red-text);border-color:var(--stratego-red)}.stratego-app .available-piece.blue{color:var(--stratego-blue-text);border-color:var(--stratego-blue)}.stratego-app .available-piece:hover{background-color:var(--text-on-accent);transform:scale(1.1);box-shadow:0 2px 5px var(--shadow-md)}.stratego-app .available-piece.selected{border-color:var(--highlight-primary);background-color:var(--highlight-light);transform:scale(1.15);box-shadow:0 0 15px var(--highlight-strong)}@media(max-width:768px){.stratego-app .placement-container{flex-direction:column}.stratego-app .placement-board-section,.stratego-app .available-pieces-section{min-width:100%;max-width:100%}.stratego-app .placement-board .board-cell{width:35px;height:35px}}.stratego-app .stratego-game{display:flex;flex-direction:column;align-items:center;padding:2rem;color:var(--text-primary)}.stratego-app .game-header{width:100%;max-width:800px;display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.stratego-app .game-header h2{color:var(--accent-primary);font-size:2rem;margin:0}.stratego-app .players-info{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;background-color:var(--surface-secondary);border-radius:8px;border:2px solid var(--border-color)}.stratego-app .player-card{display:flex;flex-direction:column;align-items:center;padding:1rem;border-radius:8px;border:2px solid var(--border-color);flex:1}.stratego-app .player-card.red{background-color:var(--danger-light);border-color:var(--danger-primary)}.stratego-app .player-card.blue{background-color:var(--accent-light);border-color:var(--accent-primary)}.stratego-app .player-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.stratego-app .player-name{font-size:1.2rem;font-weight:700;margin-top:.25rem}.stratego-app .vs-divider{font-weight:700;color:var(--text-secondary);font-size:1.5rem}.stratego-app .exit-button{padding:.5rem 1rem;background-color:var(--surface-secondary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.stratego-app .exit-button:hover{background-color:var(--surface-hover);transform:translateY(-2px)}.stratego-app .forfeit-button{padding:.5rem 1rem;background-color:var(--surface-secondary);color:var(--danger-primary);border:2px solid var(--danger-primary);border-radius:6px;cursor:pointer;transition:all .2s;font-weight:600}.stratego-app .forfeit-button:hover{background-color:var(--danger-light);transform:translateY(-2px)}.stratego-app .game-info{margin-bottom:1rem;padding:1rem;background-color:var(--surface-secondary);border-radius:8px;border:2px solid var(--border-color)}.stratego-app .turn-indicator{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700}.stratego-app .turn-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-color)}.stratego-app .turn-dot.red{background-color:var(--danger-primary)}.stratego-app .turn-dot.blue{background-color:var(--accent-primary)}.stratego-app .game-over{color:var(--accent-primary);font-size:1.5rem}.stratego-app .board-container{display:flex;justify-content:center}.stratego-app .stratego-board{display:inline-block;border:4px solid var(--border-color);background-color:var(--surface-secondary);border-radius:8px;padding:4px}.stratego-app .board-row{display:flex}.stratego-app .board-cell{width:60px;height:60px;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:var(--surface-primary);transition:all .2s;position:relative}.stratego-app .board-cell:hover{background-color:var(--surface-hover)}.stratego-app .board-cell.lake{background:linear-gradient(135deg,var(--stratego-river-deep) 0%,var(--stratego-river-mid) 50%,var(--stratego-river-deep) 100%);cursor:not-allowed;position:relative;overflow:hidden}.stratego-app .board-cell.lake:before{content:"~";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;color:var(--stratego-river-highlight);pointer-events:none}.stratego-app .board-cell.lake:hover{background:linear-gradient(135deg,var(--stratego-river-deep) 0%,var(--stratego-river-mid) 50%,var(--stratego-river-deep) 100%)}.stratego-app .board-cell.selected{background-color:var(--accent-secondary);border:2px solid var(--accent-primary)}.stratego-app .board-cell.valid-move{background-color:var(--success-light);cursor:pointer}.stratego-app .board-cell.valid-move:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background-color:var(--success)}.stratego-app .board-cell.last-move-from{box-shadow:inset 0 0 0 3px var(--highlight-medium);background-color:var(--highlight-light)}.stratego-app .board-cell.last-move-to{box-shadow:inset 0 0 0 3px var(--highlight-strong);background-color:var(--highlight-light)}.stratego-app .piece{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;border-radius:4px;border:2px solid var(--border-color);-webkit-user-select:none;user-select:none}.stratego-app .piece.red{background-color:var(--danger-primary);color:var(--text-on-accent)}.stratego-app .piece.blue{background-color:var(--accent-primary);color:var(--text-on-accent)}.stratego-app .piece.hidden{background:linear-gradient(135deg,var(--stratego-hidden-bg) 25%,var(--stratego-hidden-bg-alt) 25%,var(--stratego-hidden-bg-alt) 50%,var(--stratego-hidden-bg) 50%,var(--stratego-hidden-bg) 75%,var(--stratego-hidden-bg-alt) 75%,var(--stratego-hidden-bg-alt));background-size:10px 10px;color:var(--stratego-hidden-text);font-size:1.5rem}.stratego-app .piece.revealed-to-opponent{background-color:var(--accent-secondary)!important;background:linear-gradient(135deg,var(--accent-secondary-hover) 0%,var(--accent-secondary) 50%,var(--accent-secondary-hover) 100%)!important}.stratego-app .game-legend{background-color:var(--surface-secondary);padding:1rem 1.5rem;border-radius:8px;border:2px solid var(--border-color);max-width:800px;width:100%;margin-top:2rem}.stratego-app .game-legend h3{color:var(--accent-primary);margin-bottom:.5rem;margin-top:0;font-size:1rem}.stratego-app .legend-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;font-size:.85rem}.stratego-app .legend-item{padding:.4rem;background-color:var(--surface-primary);border-radius:4px;border:1px solid var(--border-color);transition:all .2s;text-align:center;display:flex;flex-direction:column;gap:.25rem}.stratego-app .legend-item:hover{background-color:var(--surface-hover);transform:translateY(-2px);box-shadow:0 2px 8px var(--shadow-sm)}.stratego-app .legend-rank{font-weight:700;color:var(--text-primary)}.stratego-app .legend-desc{font-size:.75rem;color:var(--text-secondary);line-height:1.2}@media(max-width:768px){.stratego-app .board-cell{width:40px;height:40px}.stratego-app .piece{width:35px;height:35px;font-size:.9rem}.stratego-app .legend-grid{grid-template-columns:repeat(2,1fr)}.stratego-app .legend-item{font-size:.75rem;padding:.5rem}.stratego-app .legend-rank{font-size:.85rem}.stratego-app .legend-desc{font-size:.7rem}}.stratego-app .stratego-board.rotated,.stratego-app .board-cell.rotated-cell{transform:rotate(180deg)}.stratego-app .graveyard{display:flex;flex-wrap:wrap;gap:4px;padding:10px;background-color:var(--shadow-md);border-radius:8px;min-height:50px;width:100%;max-width:600px;justify-content:center;align-items:center}.stratego-app .graveyard-top{margin-bottom:10px;border:2px solid var(--overlay-white-light)}.stratego-app .graveyard-bottom{margin-top:10px;margin-bottom:10px;border:2px solid var(--overlay-white-medium)}.stratego-app .captured-piece{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:14px;font-weight:700;background-color:var(--overlay-white-strong);border-radius:4px;cursor:help;transition:transform .2s}.stratego-app .captured-piece:hover{transform:scale(1.2)}.stratego-app .captured-piece.red{color:var(--stratego-red-dark);border:1px solid var(--stratego-red)}.stratego-app .captured-piece.blue{color:var(--stratego-blue-dark);border:1px solid var(--stratego-blue)}.minesweeper-app{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;background-color:var(--bg-primary)}.minesweeper-app .menu{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2rem;min-height:100vh}.minesweeper-app .menu-header{display:flex;align-items:center;justify-content:center;gap:1rem;position:relative;width:100%;max-width:500px}.minesweeper-app .menu-header h1{margin:0;font-size:2.5rem;color:var(--text-primary);text-align:center;flex:1}.minesweeper-app .back-button{padding:.5rem 1rem;background-color:var(--control-bg);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s;font-weight:500;flex-shrink:0}.minesweeper-app .back-button:hover{background-color:var(--control-hover);transform:translate(-2px)}.minesweeper-app .resume-button{padding:1rem 2rem;background-color:var(--success);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:background-color .2s;animation:pulse 2s infinite}.minesweeper-app .resume-button:hover{background-color:var(--success-hover)}.minesweeper-app .difficulty-buttons{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:500px}.minesweeper-app .difficulty-row{display:flex;flex-direction:column;gap:.5rem}.minesweeper-app .play-button{padding:1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:all .2s;display:flex;flex-direction:column;gap:.5rem;align-items:center}.minesweeper-app .play-button:hover{background-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-md)}.minesweeper-app .difficulty-name{font-size:1.5rem;font-weight:700}.minesweeper-app .difficulty-info{font-size:.9rem;opacity:.9}.minesweeper-app .difficulty-stats{font-size:1rem;opacity:.95}.minesweeper-app .best-time{text-align:center;color:var(--text-secondary);font-size:.9rem}@media(max-width:600px){.minesweeper-app .menu{padding:1rem}.minesweeper-app .menu-header h1{font-size:1.8rem}.minesweeper-app .back-button{font-size:.9rem;padding:.4rem .8rem}}.minesweeper-app .game{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;min-height:100vh}.minesweeper-app .loading{font-size:1.5rem;margin-top:3rem;color:var(--text-secondary)}.minesweeper-app .game-header{display:flex;align-items:center;gap:1rem;width:100%;max-width:900px;justify-content:space-between;flex-wrap:wrap}.minesweeper-app .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.minesweeper-app .game-header button:hover{background-color:var(--accent-hover)}.minesweeper-app .game-info{display:flex;align-items:center;gap:1.5rem;flex:1;justify-content:center}.minesweeper-app .game-info h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.minesweeper-app .info-item{display:flex;align-items:center;gap:.5rem;background-color:var(--bg-secondary);padding:.5rem 1rem;border-radius:6px;border:2px solid var(--border-secondary)}.minesweeper-app .info-label{font-size:1.2rem}.minesweeper-app .info-value{font-size:1.2rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;min-width:3ch;text-align:center}.minesweeper-app .board{display:grid;gap:0;background-color:var(--border-secondary);border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);padding:0;user-select:none;-webkit-user-select:none;touch-action:manipulation}.minesweeper-app .cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;cursor:pointer;transition:all .1s;border:1px solid var(--border-secondary);position:relative}.minesweeper-app .cell:not(.revealed){background:linear-gradient(135deg,var(--gray-200) 0%,var(--gray-300) 100%);border-top:2px solid var(--gray-100);border-left:2px solid var(--gray-100);border-right:2px solid var(--gray-500);border-bottom:2px solid var(--gray-500)}.minesweeper-app .cell:not(.revealed):hover{background:linear-gradient(135deg,var(--gray-300) 0%,var(--gray-400) 100%)}.minesweeper-app .cell:not(.revealed):active{background:var(--gray-400);border-top:2px solid var(--gray-500);border-left:2px solid var(--gray-500);border-right:2px solid var(--gray-100);border-bottom:2px solid var(--gray-100)}.minesweeper-app .cell.revealed{background-color:var(--cell-bg);border:1px solid var(--border-secondary);cursor:default}.minesweeper-app .cell.flagged{background:linear-gradient(135deg,var(--danger-light) 0%,var(--danger-alpha-40) 100%)}.minesweeper-app .cell.questioned{background:linear-gradient(135deg,var(--highlight-light) 0%,var(--highlight-medium) 100%)}.minesweeper-app .cell.mine{background-color:var(--danger-primary)}.minesweeper-app .cell.exploded{background-color:var(--danger-hover);animation:explode .3s ease-out}@keyframes explode{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.minesweeper-app .cell-number-1{color:var(--ms-num-1)}.minesweeper-app .cell-number-2{color:var(--ms-num-2)}.minesweeper-app .cell-number-3{color:var(--ms-num-3)}.minesweeper-app .cell-number-4{color:var(--ms-num-4)}.minesweeper-app .cell-number-5{color:var(--ms-num-5)}.minesweeper-app .cell-number-6{color:var(--ms-num-6)}.minesweeper-app .cell-number-7{color:var(--ms-num-7)}.minesweeper-app .cell-number-8{color:var(--ms-num-8)}[data-theme=dark] .minesweeper-app .cell-number-1{color:var(--ms-num-alt-1)}[data-theme=dark] .minesweeper-app .cell-number-2{color:var(--ms-num-alt-2)}[data-theme=dark] .minesweeper-app .cell-number-3{color:var(--ms-num-alt-3)}[data-theme=dark] .minesweeper-app .cell-number-4{color:var(--ms-num-alt-4)}[data-theme=dark] .minesweeper-app .cell-number-5{color:var(--ms-num-alt-5)}[data-theme=dark] .minesweeper-app .cell-number-6{color:var(--ms-num-alt-6)}[data-theme=dark] .minesweeper-app .cell-number-7{color:var(--ms-num-alt-7)}[data-theme=dark] .minesweeper-app .cell-number-8{color:var(--ms-num-alt-8)}.minesweeper-app .board.difficulty-0{width:min(90vw,360px);height:min(90vw,360px)}.minesweeper-app .board.difficulty-0 .cell{font-size:1.2rem}.minesweeper-app .board.difficulty-1{width:min(90vw,480px);height:min(90vw,480px)}.minesweeper-app .board.difficulty-1 .cell{font-size:1rem}.minesweeper-app .board.difficulty-2{width:min(95vw,1030px);height:min(50vh,550px)}.minesweeper-app .board.difficulty-2 .cell{font-size:.9rem}.minesweeper-app .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;margin-top:.5rem}.minesweeper-app .game-instructions p{margin:0}@media(max-width:768px){.minesweeper-app .game-header{flex-direction:column;gap:.75rem}.minesweeper-app .game-info{width:100%;justify-content:space-between}.minesweeper-app .game-info h2{font-size:1.2rem}.minesweeper-app .info-item{padding:.4rem .7rem}.minesweeper-app .info-label,.minesweeper-app .info-value{font-size:1rem}.minesweeper-app .board.difficulty-2{width:95vw;height:auto}.minesweeper-app .board.difficulty-2 .cell{font-size:.8rem}}@media(max-width:480px){.minesweeper-app .game{padding:.5rem;gap:1rem}.minesweeper-app .board.difficulty-0,.minesweeper-app .board.difficulty-1{width:95vw;height:95vw}.minesweeper-app .board.difficulty-1 .cell{font-size:.85rem}.minesweeper-app .board.difficulty-2 .cell{font-size:.7rem}}.game-2048{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:600px;margin:0 auto}.game-2048 .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.game-2048 .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-2048 .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s;white-space:nowrap}.game-2048 .game-header button:hover{background-color:var(--accent-hover)}.game-2048 .score-info{display:flex;gap:1rem;align-items:center}.game-2048 .score-item{display:flex;flex-direction:column;align-items:center;background-color:var(--tile-board-bg);padding:.5rem 1rem;border-radius:6px;min-width:70px}.game-2048 .score-label{font-size:.75rem;color:var(--tile-beige);text-transform:uppercase;font-weight:700}.game-2048 .score-value{font-size:1.25rem;color:var(--text-on-accent);font-weight:700;margin-top:.25rem}.game-2048 .score-player{font-size:.65rem;color:var(--tile-beige);margin-top:.15rem;font-weight:400}.game-2048 .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;max-width:500px}.game-2048 .grid-container{position:relative;background-color:var(--tile-board-bg);border-radius:6px;padding:10px;width:100%;max-width:500px;aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none}.game-2048 .grid-background{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:10px;width:100%;height:100%}.game-2048 .grid-cell{background-color:var(--tile-beige-alpha-35);border-radius:3px}.game-2048 .tile-container{position:absolute;inset:10px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:10px;pointer-events:none}.game-2048 .tile{position:absolute;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;border-radius:3px;transition:all .15s ease-in-out;pointer-events:none}.game-2048 .tile-position-0-0{top:calc(0*(25% + 2.5px));left:calc(0*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-0-1{top:calc(0*(25% + 2.5px));left:calc(1*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-0-2{top:calc(0*(25% + 2.5px));left:calc(2*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-0-3{top:calc(0*(25% + 2.5px));left:calc(3*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-1-0{top:calc(1*(25% + 2.5px));left:calc(0*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-1-1{top:calc(1*(25% + 2.5px));left:calc(1*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-1-2{top:calc(1*(25% + 2.5px));left:calc(2*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-1-3{top:calc(1*(25% + 2.5px));left:calc(3*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-2-0{top:calc(2*(25% + 2.5px));left:calc(0*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-2-1{top:calc(2*(25% + 2.5px));left:calc(1*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-2-2{top:calc(2*(25% + 2.5px));left:calc(2*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-2-3{top:calc(2*(25% + 2.5px));left:calc(3*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-3-0{top:calc(3*(25% + 2.5px));left:calc(0*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-3-1{top:calc(3*(25% + 2.5px));left:calc(1*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-3-2{top:calc(3*(25% + 2.5px));left:calc(2*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-position-3-3{top:calc(3*(25% + 2.5px));left:calc(3*(25% + 2.5px));width:calc(25% - 7.5px);height:calc(25% - 7.5px)}.game-2048 .tile-new{animation:appear .2s ease-in-out}@keyframes appear{0%{transform:scale(0)}to{transform:scale(1)}}.game-2048 .tile-merged{animation:pop .2s ease-in-out}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.game-2048 .game-message{position:fixed;inset:0;background-color:var(--tile-beige-alpha-90);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}.game-2048 .game-message.game-over{background-color:var(--tile-beige-alpha-73)}.game-2048 .message-content{text-align:center;color:var(--tile-text-dark)}.game-2048 .message-content h2{font-size:3rem;font-weight:700;margin:0 0 1rem}.game-2048 .message-content p{font-size:1.2rem;margin:0 0 2rem}.game-2048 .message-buttons{display:flex;gap:1rem;justify-content:center}.game-2048 .keep-playing-button,.game-2048 .try-again-button,.game-2048 .exit-button{padding:.75rem 1.5rem;background-color:var(--tile-brown-dim);color:var(--tile-text-cream);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.game-2048 .keep-playing-button:hover,.game-2048 .try-again-button:hover,.game-2048 .exit-button:hover{background-color:var(--tile-brown-dimmer)}@media(max-width:600px){.game-2048{padding:0rem}.game-2048 .game-header{flex-wrap:wrap}.game-2048 .score-info{order:3;width:100%;justify-content:center}.game-2048 .tile{font-size:1.5rem}.game-2048 .message-content h2{font-size:2rem}.game-2048 .message-content p{font-size:1rem}}.tetris-game{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:800px;margin:0 auto}.tetris-game .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.tetris-game .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.tetris-game .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.tetris-game .game-header button:hover{background-color:var(--accent-hover)}.tetris-game .game-container{display:flex;gap:1.5rem;align-items:flex-start}.tetris-game .game-info-left,.tetris-game .game-info-right{display:flex;flex-direction:column;gap:1rem}.tetris-game .info-box{background-color:var(--bg-secondary);padding:.75rem;border-radius:6px;border:2px solid var(--border-primary);min-width:120px;text-align:center}.tetris-game .info-label{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700;margin-bottom:.25rem}.tetris-game .info-value{font-size:1.5rem;color:var(--text-primary);font-weight:700}.tetris-game .score-player{font-size:.7rem;color:var(--text-secondary);margin-top:.25rem;font-weight:400}.tetris-game .game-board{background-color:var(--arcade-black);border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md);display:flex;flex-direction:column;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.tetris-game .board-row{display:flex}.tetris-game .board-cell{width:24px;height:24px;border:1px solid var(--overlay-white-subtle);box-sizing:border-box}.tetris-game .board-cell.filled{border:1px solid var(--overlay-white-medium)}.tetris-game .next-piece-container{background-color:var(--bg-secondary);padding:.75rem;border-radius:6px;border:2px solid var(--border-primary);text-align:center}.tetris-game .next-piece-preview{margin-top:.5rem;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--arcade-black);padding:.5rem;border-radius:4px;min-width:100px;min-height:80px}.tetris-game .next-piece-row{display:flex}.tetris-game .next-piece-cell{width:20px;height:20px;border:1px solid var(--overlay-white-subtle);box-sizing:border-box}.tetris-game .next-piece-cell.filled{border:1px solid var(--overlay-white-medium)}.tetris-game .game-controls{color:var(--text-secondary);font-size:.85rem;text-align:center}.tetris-game .game-controls p{margin:.25rem 0}.tetris-game .game-controls .mobile-hint{display:none;color:var(--text-tertiary);font-size:.8rem}@media(max-width:768px){.tetris-game .game-controls .mobile-hint{display:block}}.tetris-game .game-overlay{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}.tetris-game .overlay-content{background-color:var(--bg-primary);padding:2rem;border-radius:12px;text-align:center;border:2px solid var(--border-primary);box-shadow:0 8px 16px var(--shadow-md)}.tetris-game .overlay-content h2{font-size:2.5rem;margin:0 0 1rem;color:var(--text-primary)}.tetris-game .overlay-content p{font-size:1.2rem;margin:.5rem 0;color:var(--text-secondary)}.tetris-game .overlay-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.tetris-game .play-again-button,.tetris-game .exit-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.tetris-game .play-again-button:hover,.tetris-game .exit-button:hover{background-color:var(--accent-hover)}@media(max-width:768px){.tetris-game .game-container{flex-direction:column;align-items:center}.tetris-game .game-info-left,.tetris-game .game-info-right{flex-direction:row;justify-content:center}.tetris-game .board-cell{width:20px;height:20px}.tetris-game .overlay-content h2{font-size:2rem}.tetris-game .overlay-content p{font-size:1rem}}@media(max-width:480px){.tetris-game{padding:.5rem}.tetris-game .board-cell,.tetris-game .next-piece-cell{width:16px;height:16px}.tetris-game .info-value{font-size:1.2rem}}.yahtzee-app{width:100%;height:100%;display:flex;flex-direction:column}.yahtzee-menu{width:100%;max-width:900px;margin:0 auto;padding:20px}.yahtzee-menu .menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:2px solid var(--border-primary)}.yahtzee-menu .menu-header h1{margin:0;color:var(--text-primary);font-size:2rem}.yahtzee-menu .back-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary);padding:8px 16px;cursor:pointer;transition:all .2s}.yahtzee-menu .back-button:hover{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.yahtzee-menu .menu-content{display:flex;flex-direction:column;gap:30px}.yahtzee-menu .loading-text,.yahtzee-menu .error-text{text-align:center;padding:20px;color:var(--text-primary);font-size:1.1rem}.yahtzee-menu .error-text{color:var(--danger-text);background-color:var(--danger-light);border-radius:8px}.yahtzee-menu .active-games-section{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:20px}.yahtzee-menu .active-games-section h2{margin-top:0;margin-bottom:15px;color:var(--text-primary);font-size:1.5rem}.yahtzee-menu .games-list{display:flex;flex-direction:column;gap:10px}.yahtzee-menu .game-item{background-color:var(--cell-bg);border:1px solid var(--border-secondary);border-radius:8px;padding:15px;cursor:pointer;transition:all .2s}.yahtzee-menu .game-item:hover{border-color:var(--accent-primary);transform:translate(4px);box-shadow:0 2px 8px var(--shadow-sm)}.yahtzee-menu .game-info-row{display:flex;justify-content:space-between;align-items:center;gap:15px;min-width:0}.yahtzee-menu .opponent-name{color:var(--text-primary);font-weight:500;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.yahtzee-menu .turn-indicator{color:var(--text-secondary);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;max-width:60%}.yahtzee-menu .new-game-section{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:20px}.yahtzee-menu .new-game-section h2{margin-top:0;margin-bottom:15px;color:var(--text-primary);font-size:1.5rem}.yahtzee-menu .player-count-info{margin-bottom:15px;color:var(--text-secondary);font-size:.9rem;font-style:italic}.yahtzee-menu .no-players{color:var(--text-secondary);text-align:center;padding:20px}.yahtzee-menu .player-selection{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;max-height:300px;overflow-y:auto;border:1px solid var(--border-secondary);border-radius:8px;padding:10px}.yahtzee-menu .player-checkbox{display:flex;align-items:center;padding:10px;border-radius:4px;cursor:pointer;transition:background-color .2s}.yahtzee-menu .player-checkbox:hover{background-color:var(--cell-hover)}.yahtzee-menu .player-checkbox.selected{background-color:var(--accent-light);border:1px solid var(--accent-primary)}.yahtzee-menu .player-checkbox input[type=checkbox]{margin-right:12px;width:20px;height:20px;cursor:pointer}.yahtzee-menu .player-checkbox span{color:var(--text-primary);font-size:1rem}.yahtzee-menu .start-button{width:100%;background-color:var(--accent-primary);color:var(--text-on-accent);padding:12px 24px;border-radius:8px;border:none;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.yahtzee-menu .start-button:hover:not(:disabled){background-color:var(--accent-hover);transform:scale(1.02)}.yahtzee-menu .start-button:disabled{background-color:var(--gray-400);cursor:not-allowed;opacity:.5}.yahtzee-menu .game-rules{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:20px}.yahtzee-menu .game-rules h3{margin-top:0;margin-bottom:15px;color:var(--text-primary);font-size:1.3rem}.yahtzee-menu .game-rules ul{margin:0;padding-left:20px;color:var(--text-primary)}.yahtzee-menu .game-rules li{margin-bottom:10px;line-height:1.5}.yahtzee-menu .game-rules strong{color:var(--accent-primary)}@media(max-width:768px){.yahtzee-menu{padding:clamp(.5rem,2vw,1rem)}.yahtzee-menu .menu-header{flex-direction:column;gap:1rem;text-align:center}.yahtzee-menu .menu-header h1{font-size:1.5rem}.yahtzee-menu .menu-content{gap:1rem}.yahtzee-menu .active-games-section,.yahtzee-menu .new-game-section,.yahtzee-menu .game-rules{padding:1rem}.yahtzee-menu .game-info-row{flex-direction:column;align-items:flex-start;gap:.5rem}.yahtzee-menu .opponent-name,.yahtzee-menu .turn-indicator{white-space:normal;max-width:100%}}@media(max-width:480px){.yahtzee-menu .menu-header h1{font-size:1.25rem}.yahtzee-menu .active-games-section h2,.yahtzee-menu .new-game-section h2,.yahtzee-menu .game-rules h3{font-size:1.1rem}}.yahtzee-game{width:100%;max-width:1200px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:20px}.yahtzee-game .game-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px;border-bottom:2px solid var(--border-primary)}.yahtzee-game .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.yahtzee-game .game-header button:hover{background-color:var(--accent-hover)}.yahtzee-game .game-header h2{margin:0;color:var(--text-primary);font-size:1.8rem}.yahtzee-game .current-player-indicator{background-color:var(--accent-light);border-left:4px solid var(--accent-primary);padding:12px 16px;border-radius:4px;color:var(--text-primary);font-size:1.1rem;font-weight:500}.yahtzee-game .waiting-indicator{background-color:var(--bg-secondary);border-left:4px solid var(--text-secondary);padding:12px 16px;border-radius:4px;color:var(--text-secondary);font-size:1rem}.yahtzee-game .scorecards-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px;margin-bottom:20px}.yahtzee-game .scorecard{background-color:var(--bg-secondary);border:2px solid var(--border-secondary);border-radius:8px;padding:15px;transition:all .2s}.yahtzee-game .scorecard.my-scorecard{border-color:var(--accent-primary);box-shadow:0 0 10px var(--accent-light)}.yahtzee-game .scorecard.pending-turn{border-color:var(--accent-primary);background-color:var(--accent-light)}.yahtzee-game .scorecard.completed{opacity:.8}.yahtzee-game .scorecard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid var(--border-secondary)}.yahtzee-game .scorecard-header h3{margin:0;color:var(--text-primary);font-size:1.2rem}.yahtzee-game .turn-status{font-size:1.2rem}.yahtzee-game .scorecard-section{margin-bottom:15px}.yahtzee-game .scorecard-section h4{margin:0 0 10px;color:var(--accent-primary);font-size:1rem;font-weight:600}.yahtzee-game .scorecard-row{display:flex;justify-content:space-between;padding:6px 8px;border-bottom:1px solid var(--border-secondary);color:var(--text-primary)}.yahtzee-game .scorecard-row .category-name{font-size:.9rem}.yahtzee-game .scorecard-row .category-score{font-weight:600;min-width:30px;text-align:right}.yahtzee-game .scorecard-row.total-row{background-color:var(--gray-200);font-weight:600;margin-top:5px}.yahtzee-game .scorecard-row.bonus-row{background-color:var(--success-light);color:var(--success);font-weight:600}.yahtzee-game .scorecard-total{margin-top:15px;padding:12px;background-color:var(--accent-primary);color:var(--text-on-accent);text-align:center;font-size:1.2rem;font-weight:700;border-radius:4px}.yahtzee-game .dice-container{display:flex;gap:15px;justify-content:center;padding:30px 20px;background-color:var(--bg-secondary);border-radius:8px;border:2px solid var(--border-primary)}.yahtzee-game .dice{width:70px;height:70px;background-color:var(--cell-bg);border:3px solid var(--border-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;padding:10px}.yahtzee-game .dice-icon{width:100%;height:100%}:root .yahtzee-game .dice-icon{filter:brightness(0) saturate(100%)}[data-theme=dark] .yahtzee-game .dice-icon{filter:brightness(0) invert(1)}.yahtzee-game .dice.empty{cursor:default}.yahtzee-game .dice.empty .dice-icon{opacity:.3}.yahtzee-game .dice.held{background-color:var(--highlight-light);border-color:var(--highlight-primary);border-width:4px;transform:translateY(-8px);box-shadow:0 4px 12px var(--shadow-md)}.yahtzee-game .dice.rolling{animation:yahtzee-roll .5s ease-out}@keyframes yahtzee-roll{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.1) rotate(90deg)}50%{transform:scale(.9) rotate(180deg)}75%{transform:scale(1.1) rotate(270deg)}}.yahtzee-game .dice:hover:not(.held):not(.empty){border-color:var(--accent-primary);transform:scale(1.05)}.yahtzee-game .dice.held:hover{border-color:var(--highlight-primary);transform:translateY(-10px) scale(1.05)}.yahtzee-game .controls{display:flex;justify-content:center;gap:15px;margin-bottom:20px}.yahtzee-game .roll-button{background-color:var(--success);color:var(--text-on-accent);padding:15px 40px;font-size:1.2rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px var(--shadow-sm)}.yahtzee-game .roll-button:hover:not(:disabled){background-color:var(--success-hover);transform:scale(1.05);box-shadow:0 4px 12px var(--shadow-md)}.yahtzee-game .roll-button:disabled{background-color:var(--gray-400);cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}.yahtzee-game .scoring-section{background-color:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;padding:20px}.yahtzee-game .scoring-section h3{margin-top:0;margin-bottom:15px;color:var(--text-primary);font-size:1.3rem}.yahtzee-game .category-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.yahtzee-game .category-button{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--cell-bg);border:2px solid var(--border-secondary);border-radius:8px;cursor:pointer;transition:all .2s}.yahtzee-game .category-button:hover:not(.disabled){background-color:var(--cell-hover);border-color:var(--accent-primary);transform:translate(4px)}.yahtzee-game .category-button.disabled{background-color:var(--gray-200);border-color:var(--gray-400);cursor:not-allowed;opacity:.6}.yahtzee-game .category-button .category-name{color:var(--text-primary);font-weight:500;font-size:.95rem}.yahtzee-game .category-button .category-score{color:var(--accent-primary);font-weight:700;font-size:1.1rem;min-width:30px;text-align:right}.yahtzee-game .category-button.disabled .category-score{color:var(--success)}.yahtzee-game .game-over{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--modal-overlay);padding:40px 60px;border-radius:12px;box-shadow:0 8px 32px var(--shadow-modal);z-index:1000}.yahtzee-game .game-over h2{margin:0;color:var(--text-on-accent);font-size:2.5rem;text-align:center}.yahtzee-game .game-info{text-align:center;color:var(--text-secondary);padding:15px;background-color:var(--bg-secondary);border-radius:8px;font-size:1rem}.yahtzee-game .game-info p{margin:0}@media(max-width:768px){.yahtzee-game{padding:10px}.yahtzee-game .scorecards-container{grid-template-columns:1fr}.yahtzee-game .dice-container{gap:10px;padding:20px 10px}.yahtzee-game .dice{width:55px;height:55px;font-size:2rem}.yahtzee-game .category-buttons{grid-template-columns:1fr}}.starboard-app{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-primary);color:var(--text-primary)}.starboard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.starboard-header h1{margin:0;font-size:1.5rem;color:var(--text-primary)}.starboard-content{flex:1;overflow-y:auto;padding:1rem}.back-button{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.back-button:hover{background:var(--bg-hover)}.squad-list{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.squad-list .squad-list-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.squad-list .squad-list-header h1{margin:0;font-size:2rem;color:var(--text-primary)}.squad-list .header-buttons{display:flex;gap:.5rem}.squad-list .back-button{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:5px;cursor:pointer;font-size:.9rem;transition:all .2s}.squad-list .back-button:hover{background:var(--bg-tertiary)}.squad-list .squad-list-content{flex:1;overflow-y:auto;padding:2rem}.squad-list .loading-text,.squad-list .error-text{text-align:center;padding:2rem;font-size:1.1rem}.squad-list .error-text{color:var(--danger-text)}.squad-list .active-games-section{margin-bottom:3rem}.squad-list .active-games-section h2{color:var(--accent-primary);margin-bottom:1rem;font-size:1.5rem}.squad-list .games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.squad-list .game-card{background:var(--accent-light);border:2px solid var(--border-color);border-radius:10px;padding:1.5rem;cursor:pointer;transition:all .2s}.squad-list .game-card:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);transform:translateY(-2px)}.squad-list .game-opponent{font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.squad-list .game-status{font-size:.9rem;color:var(--text-secondary)}.squad-list .squads-section{margin-bottom:2rem}.squad-list .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.squad-list .section-header h2{color:var(--accent-primary);margin:0;font-size:1.5rem}.squad-list .add-button{padding:.5rem 1.5rem;background:var(--accent-primary);border:none;color:var(--text-on-accent);border-radius:5px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .2s}.squad-list .add-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.squad-list .empty-state{text-align:center;padding:3rem;background:var(--bg-secondary);border-radius:10px;border:2px dashed var(--border-color)}.squad-list .empty-state p{font-size:1.1rem;color:var(--text-secondary);margin-bottom:1.5rem}.squad-list .create-first-button{padding:.75rem 2rem;background:var(--accent-primary);border:none;color:var(--text-on-accent);border-radius:5px;cursor:pointer;font-size:1.1rem;font-weight:700;transition:all .2s}.squad-list .create-first-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.squad-list .squads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.squad-list .squad-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;padding:1rem;transition:all .2s;cursor:pointer}.squad-list .squad-card:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);transform:translateY(-2px)}.squad-list .squad-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.squad-list .faction-icon{width:40px;height:40px;opacity:.8}.squad-list .delete-button{background:var(--danger-light);border:1px solid var(--border-color);color:var(--danger-text);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;transition:all .2s}.squad-list .delete-button:hover{background:var(--danger-primary);color:var(--text-on-accent)}.squad-list .squad-name{font-size:1.2rem;font-weight:700;margin-bottom:.5rem;word-wrap:break-word}.squad-list .squad-points{font-size:.9rem;color:var(--text-secondary);margin-bottom:.75rem}.squad-list .squad-stats{font-size:1rem;color:var(--accent-primary);font-weight:700}.squad-list .no-games{color:var(--text-secondary);font-style:italic;font-weight:400}.squad-list .play-section{text-align:center;padding-top:2rem;border-top:2px solid var(--border-color)}.squad-list .play-game-button{padding:1rem 3rem;background:var(--accent-primary);border:none;color:var(--text-on-accent);border-radius:8px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:all .2s}.squad-list .play-game-button:hover{background:var(--accent-hover);transform:translateY(-2px)}.faction-selector{display:flex;flex-direction:column;height:100%;padding:1.5rem;background:var(--bg-color);color:var(--text-color)}.faction-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.faction-selector-header h1{font-size:2rem;font-weight:600;margin:0;color:var(--text-color)}.header-buttons{display:flex;gap:1rem;align-items:center}.faction-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:2rem;max-width:1200px;margin:0 auto;width:100%}.faction-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;background:var(--card-bg);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease;min-height:300px}.faction-card:hover{border-color:var(--primary-color);background:var(--hover-bg);transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow-md)}.faction-card:active{transform:translateY(-2px)}.faction-icon{width:150px;height:150px;margin-bottom:1.5rem;filter:var(--icon-filter, none);opacity:.9;transition:opacity .2s ease}.faction-card:hover .faction-icon{opacity:1}.faction-name{font-size:1.5rem;font-weight:600;margin:0;text-align:center;color:var(--text-color)}.faction-selector .back-button,.faction-selector .play-button{padding:.75rem 1.5rem;background:var(--button-bg);color:var(--button-text);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s ease}.faction-selector .play-button{background:var(--primary-color);color:var(--text-on-accent);border-color:var(--primary-color)}.faction-selector .back-button:hover,.faction-selector .play-button:hover{background:var(--button-hover-bg);border-color:var(--primary-color)}.faction-selector .play-button:hover{background:var(--accent-hover)}.faction-selector .back-button:active,.faction-selector .play-button:active{transform:translateY(1px)}@media(max-width:768px){.faction-selector{padding:1rem}.faction-selector-header h1{font-size:1.5rem}.faction-grid{grid-template-columns:1fr;gap:1rem}.faction-card{padding:2rem 1.5rem;min-height:250px}.faction-icon{width:120px;height:120px}.faction-name{font-size:1.25rem}.back-button,.play-button{padding:.5rem 1rem;font-size:.9rem}}[data-theme=dark] .faction-icon{filter:brightness(.95)}[data-theme=light] .faction-icon{filter:brightness(.8) contrast(1.1)}.card-image-modal-overlay{position:fixed;inset:0;background:var(--overlay-black-deep);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.card-image-modal-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:1rem}.card-image-full{max-width:100%;max-height:70vh;border-radius:8px;box-shadow:0 4px 20px var(--shadow-lg)}.modal-close-btn{position:absolute;top:-40px;right:0;background:var(--overlay-white-light);border:none;color:var(--text-on-accent);font-size:2rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.modal-close-btn:hover{background:var(--overlay-white-medium)}.modal-actions{display:flex;gap:.5rem;margin-top:1rem}.modal-delete-btn{padding:.75rem 1.5rem;background:var(--danger-primary);color:var(--text-on-accent);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.modal-delete-btn:hover{background:var(--danger-hover)}.card-image-error{color:var(--text-on-accent);padding:2rem;text-align:center;font-size:1.1rem}.maneuver-display{background:var(--bg-secondary);padding:1rem;border-radius:8px;max-width:600px}.maneuver-display h3{margin:0 0 1rem;color:var(--text-primary);text-align:center;font-size:1.1rem}.detonation-info{background:var(--bg-secondary);padding:1rem;border-radius:8px;max-width:600px;border:2px solid var(--danger-primary)}.detonation-info h3{margin:0 0 .75rem;color:var(--danger-primary);text-align:center;font-size:1.1rem;font-weight:700;text-transform:uppercase}.detonation-info p{margin:0;color:var(--text-primary);line-height:1.5;text-align:center}.maneuver-dial{width:100%;border-collapse:separate;border-spacing:2px}.maneuver-dial .speed-label{width:40px;text-align:center;font-weight:700;font-size:1.1rem;color:var(--text-primary);background:var(--bg-tertiary);border-radius:4px;padding:8px 4px}.maneuver-cell{width:50px;height:50px;text-align:center;padding:4px;border-radius:4px;position:relative}.maneuver-cell.empty{background:transparent}.maneuver-cell.green{background:var(--success-alpha-30);border:2px solid var(--success)}.maneuver-cell.white{background:var(--shadow-sm);border:2px solid var(--gray-400)}.maneuver-cell.red{background:var(--danger-alpha-30);border:2px solid var(--danger-primary)}.maneuver-cell:not(.empty):not(.view-only){cursor:pointer;transition:transform .2s,box-shadow .2s}.maneuver-cell:not(.empty):not(.view-only):hover{transform:scale(1.1);box-shadow:0 2px 8px var(--shadow-md)}.maneuver-cell.view-only{cursor:default}.maneuver-cell.selected{box-shadow:0 0 0 3px var(--accent-primary);transform:scale(1.05)}.maneuver-icon{width:100%;height:100%;object-fit:contain;filter:var(--icon-filter, brightness(0) saturate(100%))}.maneuver-grid h3{margin:0 0 1rem;color:var(--text-primary);text-align:center}.maneuver-table{border-collapse:collapse;width:100%;color:var(--text-primary)}.maneuver-table th,.maneuver-table td{padding:.5rem;text-align:center;border:1px solid var(--border-color)}.maneuver-table th{background:var(--bg-tertiary);font-weight:600;font-size:.85rem}.speed-cell{font-weight:600;background:var(--bg-tertiary)}.maneuver-cell{font-size:1.2rem}.maneuver-cell.green{color:var(--success)}.maneuver-cell.white{color:var(--text-on-dark)}.maneuver-cell.red{color:var(--danger-primary)}.maneuver-cell.none{color:transparent}@media(max-width:768px){.card-image-modal-content{max-width:95vw}.card-image-full{max-height:60vh}.maneuver-display{padding:.75rem}.maneuver-dial .speed-label{width:30px;font-size:.9rem;padding:6px 2px}.maneuver-cell{width:36px;height:36px;padding:2px}.detonation-info{padding:.75rem;max-width:95%}.detonation-info h3{font-size:1rem}.detonation-info p{font-size:.9rem}.maneuver-table th,.maneuver-table td{padding:.3rem;font-size:.8rem}}.upgrade-slot-picker-overlay{position:fixed;inset:0;background:var(--shadow-lg);z-index:900;display:flex;align-items:flex-end}.upgrade-slot-picker{background:var(--bg-primary);width:100%;max-height:80vh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;box-shadow:0 -4px 20px var(--shadow-md);animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.picker-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:2px solid var(--border-color)}.picker-header h3{margin:0;color:var(--text-primary);font-size:1.2rem}.picker-close-btn{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.picker-search{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.picker-search input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem}.picker-search input:focus{outline:none;border-color:var(--accent-primary)}.picker-card-grid{flex:1;overflow-y:auto;padding:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.5rem 1rem;align-content:start;grid-auto-rows:max-content}.picker-empty{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.picker-card-item{position:relative;aspect-ratio:2.5 / 3.5;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;align-items:center;justify-content:center}.picker-card-item:hover{transform:translateY(-4px);box-shadow:0 6px 16px var(--shadow-md);border-color:var(--accent-primary)}.picker-card-item:active{transform:translateY(-2px)}.picker-card-image{width:100%;height:100%;object-fit:contain;display:block}.picker-card-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;text-align:center;width:100%;height:100%}.fallback-name{color:var(--text-primary);font-size:.85rem;font-weight:600;margin-bottom:.5rem;line-height:1.2}.fallback-points{color:var(--text-secondary);font-size:.75rem;font-weight:600}.picker-card-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--overlay-black-deep),transparent);padding:.5rem .25rem .25rem;display:flex;justify-content:center;pointer-events:none}.picker-card-points{color:var(--text-on-accent);font-weight:700;font-size:.9rem;text-shadow:0 1px 3px var(--overlay-black-strong)}@media(min-width:768px){.picker-card-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.5rem 1rem}}.pilot-drawer-overlay{position:fixed;inset:0;background:var(--shadow-lg);z-index:800}.pilot-drawer{position:fixed;left:0;top:0;bottom:0;width:85%;max-width:400px;background:var(--bg-primary);box-shadow:4px 0 20px var(--shadow-md);display:flex;flex-direction:column;animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid var(--border-color);background:var(--bg-secondary)}.drawer-header h2{margin:0;color:var(--text-primary);font-size:1.3rem}.drawer-close-btn{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.drawer-content{flex:1;overflow-y:auto;padding:1rem}.ship-group{margin-bottom:.5rem}.ship-group-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:background .2s;color:var(--text-primary);font-size:1rem;font-weight:600}.ship-group-header:hover{background:var(--bg-hover)}.ship-icon-small{width:32px;height:32px;object-fit:contain;filter:var(--icon-filter, brightness(0) saturate(100%))}.ship-name{flex:1;text-align:left}.ship-expand-icon{color:var(--text-secondary);font-size:.8rem}.pilot-list{margin-top:.5rem;margin-left:1rem;display:flex;flex-direction:column;gap:.25rem}.pilot-list-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:background .2s,transform .1s}.pilot-list-item:hover{background:var(--bg-hover);transform:translate(4px)}.pilot-skill-inline{color:var(--warning-text);font-weight:700;margin-right:.5rem}.pilot-name-small{flex:1;color:var(--text-primary);font-weight:500;display:flex;align-items:center}.pilot-points-small{color:var(--text-secondary);font-size:.9rem}.pilot-add-overlay{position:fixed;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(to top,var(--bg-primary) 70%,transparent);z-index:1001;display:flex;justify-content:center}.pilot-add-btn{padding:1rem 2rem;background:var(--success);color:var(--text-on-accent);border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px var(--success-alpha-30);transition:background .2s,transform .1s}.pilot-add-btn:hover{background:var(--success-hover);transform:translateY(-2px)}.pilot-add-btn:active{transform:translateY(0)}.squad-viewer{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);width:100%;overflow:hidden;box-sizing:border-box}.squad-viewer-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color);flex-shrink:0;width:100%;box-sizing:border-box;overflow:hidden}.hamburger-button{background:none;border:none;color:var(--text-primary);font-size:1.5rem;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px}.squad-back-button{background:none;border:none;color:var(--text-primary);font-size:1.5rem;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:transform .2s}.squad-back-button:hover{transform:translate(-2px)}.header-faction{display:flex;align-items:center}.faction-icon-small{width:32px;height:32px;object-fit:contain}.squad-name{flex:1;margin:0;font-size:1.1rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.squad-name-edit{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem;min-width:0;width:100%}.points-badge{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:6px;font-weight:600;color:var(--text-primary);white-space:nowrap;flex-shrink:0}.points-badge.over-limit{border-color:var(--danger-primary);color:var(--danger-primary)}.max-points-input{width:60px;padding:.25rem;border:none;background:transparent;color:var(--text-primary);font-weight:600;text-align:left}.max-points-input:focus{outline:none;background:var(--bg-hover);border-radius:4px}.header-actions{display:flex;gap:.5rem;flex-shrink:0}.action-btn{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;white-space:nowrap}.action-btn:hover{background:var(--bg-hover)}.action-btn:active{transform:scale(.95)}.play-btn{background:var(--success);color:var(--text-on-accent);border-color:var(--success-hover)}.play-btn:hover{background:var(--success-hover)}.edit-btn{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-hover)}.edit-btn:hover{background:var(--accent-hover)}.save-btn{background:var(--success);color:var(--text-on-accent);border-color:var(--success-hover)}.save-btn:hover{background:var(--success-hover)}.squad-content{flex:1;overflow-y:auto;padding:1rem;width:100%;box-sizing:border-box}.empty-squad{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-squad p{margin-bottom:1.5rem;font-size:1.1rem}.add-pilot-prompt{padding:1rem 2rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.add-pilot-prompt:hover{background:var(--accent-hover)}.pilot-card-container{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;padding:1rem;margin-bottom:1rem}.pilot-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.pilot-name-section{flex:1;cursor:pointer;transition:transform .1s}.pilot-name-section:active{transform:scale(.98)}.pilot-skill-number{color:var(--warning-text);font-weight:700;margin-right:.5rem}.pilot-name{margin:.25rem 0;font-size:1.2rem;color:var(--text-primary);font-weight:600;display:flex;align-items:center}.pilot-ship{color:var(--text-secondary);font-size:.9rem;font-style:italic}.pilot-points{font-weight:600;color:var(--text-primary);font-size:1.1rem;white-space:nowrap}.upgrades-list{display:flex;flex-direction:column;gap:.5rem}.upgrade-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:background .2s,transform .1s}.upgrade-item:hover{background:var(--bg-hover)}.upgrade-item:active{transform:scale(.98)}.upgrade-item.empty-slot{border-style:dashed;opacity:.7}.upgrade-item.empty-slot:hover{opacity:1;border-style:solid}.upgrade-slot-icon{width:28px;height:28px;object-fit:contain;flex-shrink:0;filter:var(--icon-filter, brightness(0) saturate(100%))}.upgrade-name{flex:1;color:var(--text-primary);font-weight:500}.upgrade-name.empty{color:var(--text-secondary);font-style:italic}.upgrade-points{color:var(--text-secondary);font-size:.9rem;font-weight:600}@media(max-width:768px){.squad-viewer-header{padding:.75rem;gap:.5rem}.hamburger-button{width:36px;height:36px;padding:.25rem}.faction-icon-small{width:24px;height:24px}.squad-name{font-size:.95rem}.squad-name-edit{font-size:.9rem;padding:.4rem}.points-badge{padding:.4rem .5rem;font-size:.85rem}.max-points-input{width:50px;font-size:.85rem}.action-btn{padding:.5rem .75rem;font-size:.85rem}.pilot-card-container{padding:.75rem}.pilot-name{font-size:1.1rem}}@media(max-width:480px){.squad-viewer-header{gap:.4rem;padding:.5rem}.hamburger-button{width:32px;height:32px;font-size:1.2rem}.faction-icon-small{width:24px;height:24px}.squad-name{font-size:.85rem}.squad-name-edit{font-size:.85rem;padding:.35rem}.points-badge{padding:.35rem .45rem;font-size:.8rem}.max-points-input{width:45px;font-size:.8rem}.action-btn{padding:.4rem .5rem;font-size:.75rem}.pilot-name{font-size:1rem}.upgrade-slot-icon{width:24px;height:24px}}.builder-interface{display:flex;flex-direction:column;height:100vh;background:var(--bg-color);color:var(--text-color)}.builder-header-placeholder{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.builder-header-placeholder h2{margin:0;font-size:1.25rem}.builder-header-placeholder input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-color);color:var(--text-color)}.builder-header-placeholder button{padding:.5rem 1rem;background:var(--button-bg);color:var(--button-text);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s ease}.builder-header-placeholder button:hover{background:var(--button-hover-bg)}.builder-main{display:flex;flex:1;overflow:hidden}.builder-sidebar{width:320px;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:2px solid var(--border-color);overflow-y:auto}.builder-interface .builder-content{flex:1;overflow-y:auto;padding:1.5rem}.builder-interface .builder-content-header{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-bottom:1rem}.builder-interface .filter-hamburger-button{display:none;padding:.5rem .75rem;background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-color);border-radius:5px;cursor:pointer;font-size:1.5rem;line-height:1;transition:all .2s}.builder-interface .filter-hamburger-button:hover{background:var(--accent-primary);color:var(--text-on-accent);transform:translateY(-1px)}.builder-interface .import-squad-button{padding:.5rem 1rem;background:var(--accent-primary);border:none;color:var(--text-on-accent);border-radius:5px;cursor:pointer;font-size:.9rem;font-weight:700;transition:all .2s}.builder-interface .import-squad-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.builder-interface .import-dialog-overlay{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.builder-interface .import-dialog{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:10px;padding:2rem;max-width:600px;width:90%;color:var(--text-primary)}.builder-interface .import-dialog h2{margin:0 0 1rem;color:var(--accent-primary)}.builder-interface .import-dialog p{margin-bottom:1rem;color:var(--text-secondary)}.builder-interface .import-textarea{width:100%;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:5px;color:var(--text-primary);font-family:monospace;font-size:.9rem;resize:vertical;margin-bottom:1rem}.builder-interface .import-textarea::placeholder{color:var(--text-secondary)}.builder-interface .import-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.builder-interface .import-confirm-button,.builder-interface .import-cancel-button{padding:.5rem 1.5rem;border:none;border-radius:5px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .2s}.builder-interface .import-confirm-button{background:var(--accent-primary);color:var(--text-on-accent)}.builder-interface .import-confirm-button:hover{background:var(--accent-hover);transform:translateY(-1px)}.builder-interface .import-cancel-button{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.builder-interface .import-cancel-button:hover{background:var(--bg-tertiary)}.ship-filter-placeholder,.squad-list-placeholder,.pilot-browser-placeholder{padding:1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin:1rem}.ship-filter-placeholder h3,.squad-list-placeholder h3,.pilot-browser-placeholder h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text-color)}.squad-list-placeholder>div{display:flex;justify-content:space-between;align-items:center;padding:.5rem;margin-bottom:.5rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:4px}.squad-list-placeholder button{background:var(--danger-primary);color:var(--text-on-accent);border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}.squad-list-placeholder button:hover{background:var(--danger-hover)}@media(max-width:1024px){.builder-sidebar{width:280px}}@media(max-width:768px){.builder-main{flex-direction:column}.builder-sidebar-desktop{display:none}.builder-interface .filter-hamburger-button{display:block}.builder-header-placeholder{flex-wrap:wrap;gap:.5rem}.builder-header-placeholder h2{width:100%;font-size:1rem}.builder-interface .builder-content{padding:1rem}.fab-button{display:flex}}@media(max-width:640px){.builder-interface .builder-content{padding:.75rem}.fab-button{bottom:calc(70px + var(--safe-area-inset-bottom));right:calc(12px + var(--safe-area-inset-right))}}@media(max-width:480px){.builder-interface .builder-content{padding:.5rem}.fab-button{height:48px;padding:0 1rem;font-size:.9rem}.fab-button.minimized{width:48px}}.fab-button{position:fixed;bottom:calc(80px + var(--safe-area-inset-bottom));right:calc(16px + var(--safe-area-inset-right));z-index:998;display:none;align-items:center;gap:.5rem;padding:0 1.25rem;height:56px;background:var(--fab-bg);color:var(--text-on-accent);border:none;border-radius:28px;box-shadow:var(--fab-shadow);font-size:.95rem;font-weight:600;cursor:pointer;transition:all var(--transition-speed) var(--transition-ease);white-space:nowrap}.fab-button:hover{background:var(--fab-hover-bg);transform:translateY(-2px);box-shadow:0 6px 16px var(--shadow-md)}.fab-button:active{transform:translateY(0) scale(.95)}.fab-icon{font-size:1.25rem;line-height:1;transition:transform var(--transition-speed) ease}.fab-text{transition:opacity var(--transition-speed) ease,width var(--transition-speed) ease}.fab-button.minimized{padding:0;width:56px;justify-content:center}.fab-button.minimized .fab-text{opacity:0;width:0;overflow:hidden}.fab-button.minimized .fab-icon{transform:scale(1.2)}.squad-builder{display:flex;flex-direction:column;height:100%}.squad-builder-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.squad-builder-header h1{margin:0;font-size:1.5rem;color:var(--text-primary)}.header-actions{display:flex;gap:.75rem;align-items:center}.squad-builder .back-button,.squad-builder .change-faction-button{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.squad-builder .back-button:hover,.squad-builder .change-faction-button:hover{background:var(--bg-hover)}.squad-builder-content{flex:1;overflow-y:auto;padding:2rem}.coming-soon-box{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:2rem;text-align:center;margin-bottom:2rem}.coming-soon-box h2{font-size:2rem;margin-bottom:1rem;color:var(--text-primary)}.coming-soon-box p{font-size:1.1rem;color:var(--text-secondary);margin-bottom:1rem}.play-mode-button{padding:.75rem 1.5rem;font-size:1rem;background:var(--success);color:var(--text-on-accent);border:1px solid var(--success-hover);border-radius:4px;cursor:pointer;transition:background .2s;margin-top:1rem}.play-mode-button:hover{background:var(--success-hover)}.saved-squads-section{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:2rem}.saved-squads-section h2{margin:0 0 1rem;font-size:1.3rem;color:var(--text-primary)}.empty-state{text-align:center;color:var(--text-secondary);padding:2rem;font-style:italic}.game-selector{display:flex;flex-direction:column;height:100%}.game-selector-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.game-selector-header h1{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-selector-content{flex:1;overflow-y:auto;padding:2rem;max-width:800px;margin:0 auto;width:100%}.game-selector .loading-text,.game-selector .error-text{text-align:center;padding:2rem;font-size:1.1rem}.game-selector .error-text{color:var(--danger-primary)}.active-games-section{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.active-games-section h2{margin:0 0 1rem;font-size:1.3rem;color:var(--text-primary)}.games-list{display:flex;flex-direction:column;gap:.75rem}.game-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;padding:1rem;cursor:pointer;transition:all .2s}.game-item:hover{background:var(--bg-hover);transform:translateY(-2px)}.game-item .game-info-row .game-info{display:flex;justify-content:space-between;align-items:center}.opponent-name{font-weight:700;color:var(--text-primary)}.game-status{font-size:.9rem;color:var(--text-secondary)}.import-squad-section{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.game-selector h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text-primary)}.import-section{margin-bottom:2rem}.import-section label{display:block;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.import-section textarea{width:100%;min-height:200px;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-family:monospace;font-size:.9rem;resize:vertical}.import-section textarea::placeholder{color:var(--text-secondary)}.opponent-section{margin-bottom:2rem}.opponent-section label{display:block;font-weight:700;margin-bottom:.5rem;color:var(--text-primary)}.opponent-section select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem}.game-selector-actions{display:flex;gap:1rem;justify-content:flex-end}.game-selector button{padding:.75rem 1.5rem;font-size:1rem;border-radius:4px;cursor:pointer;transition:background .2s;border:1px solid var(--border-color)}.create-button{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-hover)}.create-button:hover:not(:disabled){background:var(--accent-hover)}.create-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{background:var(--bg-tertiary);color:var(--text-primary)}.cancel-button:hover{background:var(--bg-hover)}.error-message{color:var(--danger-primary);margin-top:.5rem;font-size:.9rem}.import-squad-section h2{margin:0 0 .5rem;font-size:1.3rem;color:var(--text-primary)}.import-squad-section h3{margin:1rem 0 .5rem;font-size:1.1rem;color:var(--text-primary)}.saved-squads-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.saved-squad-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.saved-squad-item:hover{background:var(--bg-hover)}.saved-squad-item.selected{border-color:var(--accent-primary);background:var(--brand-alpha-20)}.squad-item-info{display:flex;flex-direction:column;gap:.25rem}.squad-item-name{font-weight:700;color:var(--text-primary)}.squad-item-faction{font-size:.85rem;color:var(--text-secondary)}.squad-item-points{font-size:.9rem;color:var(--text-secondary);font-weight:700}.section-divider{display:flex;align-items:center;margin:1.5rem 0;text-align:center;color:var(--text-secondary)}.section-divider:before,.section-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.section-divider span{padding:0 1rem;font-weight:700;font-size:.9rem}.instructions{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}.squad-name-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem;margin-bottom:.75rem}.squad-text-input{width:100%;min-height:150px;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-tertiary);color:var(--text-primary);font-family:monospace;font-size:.9rem;resize:vertical;margin-bottom:.75rem}.squad-text-input::placeholder,.squad-name-input::placeholder{color:var(--text-secondary)}.import-button{padding:.75rem 1.5rem;background:var(--accent-primary);color:var(--text-on-accent);border:1px solid var(--accent-hover);border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.import-button:hover:not(:disabled){background:var(--accent-hover)}.import-button:disabled{opacity:.5;cursor:not-allowed}.game-selector .success-text{color:var(--success);margin-top:.5rem;font-weight:700}.opponent-selection-section{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:1.5rem}.opponent-selection-section h2{margin:0 0 1rem;font-size:1.3rem;color:var(--text-primary)}.player-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}.player-item{padding:1rem;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:4px;text-align:center;cursor:pointer;transition:all .2s}.player-item:hover{background:var(--bg-hover)}.player-item.selected{border-color:var(--accent-primary);background:var(--brand-alpha-20);font-weight:700}.create-game-button{padding:.75rem 1.5rem;background:var(--success);color:var(--text-on-accent);border:1px solid var(--success-hover);border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.create-game-button:hover:not(:disabled){background:var(--success-hover)}.create-game-button:disabled{opacity:.5;cursor:not-allowed}.game-selector .back-button{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.game-selector .back-button:hover{background:var(--bg-hover)}.game-item.needs-action{border:2px solid var(--warning-primary);background:var(--warning-light)}.game-info-row{display:flex;justify-content:space-between;align-items:center;width:100%}.join-button,.view-button{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s;border:1px solid var(--border-color)}.join-button{background:var(--warning-primary);color:var(--text-on-accent);border-color:var(--warning-hover)}.join-button:hover{background:var(--warning-hover)}.view-button{background:var(--bg-tertiary);color:var(--text-primary)}.view-button:hover{background:var(--bg-hover)}.squad-selection-dropdown{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:4px;border:1px solid var(--border-color)}.squad-selection-dropdown h4{margin:0 0 .75rem;font-size:.95rem;color:var(--text-primary)}.no-squads-text{color:var(--text-secondary);font-style:italic;margin:.5rem 0}.squad-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.squad-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.squad-item:hover{background:var(--bg-hover)}.squad-item.selected{border-color:var(--accent-primary);background:var(--brand-alpha-20)}.squad-name{font-weight:700;color:var(--text-primary)}.squad-points{font-size:.9rem;color:var(--text-secondary)}.squad-selection-actions{display:flex;gap:.5rem;justify-content:flex-end}.confirm-button{padding:.5rem 1rem;background:var(--success);color:var(--text-on-accent);border:1px solid var(--success-hover);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.confirm-button:hover:not(:disabled){background:var(--success-hover)}.squad-selector{display:flex;flex-direction:column;height:100%;padding:1rem;background:var(--bg-primary);color:var(--text-primary)}.squad-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.squad-selector-header h1{margin:0;font-size:1.5rem}.squad-selector-content{flex:1;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.squads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.squad-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:.5rem}.squad-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.squad-card.selected{border-color:var(--accent-primary);background:var(--accent-primary-alpha);box-shadow:0 0 0 2px var(--accent-primary-alpha)}.squad-card-header{display:flex;justify-content:center;align-items:center;margin-bottom:.5rem}.faction-icon{width:48px;height:48px;object-fit:contain}.squad-name{font-weight:600;font-size:1.1rem;text-align:center;color:var(--text-primary)}.squad-faction{font-size:.9rem;color:var(--text-secondary);text-align:center}.squad-points{font-size:.9rem;color:var(--accent-primary);font-weight:500;text-align:center}.action-buttons{display:flex;gap:1rem;justify-content:center;padding-top:1rem;border-top:1px solid var(--border-color)}.confirm-button,.cancel-button,.back-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.confirm-button{background:var(--accent-primary);color:var(--text-on-accent)}.confirm-button:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px)}.confirm-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button,.back-button{background:var(--bg-tertiary);color:var(--text-primary)}.cancel-button:hover:not(:disabled),.back-button:hover{background:var(--bg-hover)}.loading-text,.error-text{text-align:center;padding:2rem;font-size:1.1rem}.error-text{color:var(--error-color)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;text-align:center}.empty-state p{font-size:1.1rem;color:var(--text-secondary)}.starboard-game{display:flex;flex-direction:column;height:100%}.starboard-game.loading,.starboard-game.error{justify-content:center;align-items:center;padding:2rem;text-align:center}.starboard-game.error button{margin-top:1rem;padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.starboard-game .game-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.starboard-game .game-header .game-info{display:flex;gap:2rem;align-items:center}.phase-indicator{font-size:1.1rem;font-weight:700;color:var(--accent-primary)}.round-indicator{font-size:1rem;color:var(--text-secondary)}.game-result{font-size:1.2rem;font-weight:700;padding:.5rem 1rem;border-radius:4px;animation:pulse 2s infinite}.game-result.victory{background:var(--success-alpha-20);color:var(--success);border:2px solid var(--success)}.game-result.defeat{background:var(--danger-alpha-20);color:var(--danger-primary);border:2px solid var(--danger-primary)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.game-controls{display:flex;gap:.5rem}.advance-phase-button{padding:.5rem 1rem;background:var(--success);color:var(--text-on-accent);border:1px solid var(--success-hover);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.advance-phase-button:hover:not(:disabled){background:var(--success-hover)}.advance-phase-button:disabled{background:var(--gray-500);border-color:var(--gray-600);cursor:not-allowed;opacity:.6}.exit-button{padding:.5rem 1rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.exit-button:hover{background:var(--bg-hover)}.error-message{padding:1rem;background:var(--danger-alpha-10);border:1px solid var(--danger-primary);border-radius:4px;color:var(--danger-primary);margin:1rem;text-align:center}.maneuver-status-message{padding:.75rem;background:var(--brand-alpha-10);border:1px solid var(--accent-primary);border-radius:4px;color:var(--accent-primary);margin:1rem;text-align:center;font-size:.95rem}.locked-indicator{color:var(--success);font-weight:700;margin-left:1rem}.waiting-indicator{color:var(--warning-primary);font-style:italic;margin-left:1rem}.lock-in-section{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;margin:0 1rem 1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px}.lock-in-button{padding:.75rem 2rem;background:var(--accent-primary);color:var(--text-on-accent);border:2px solid var(--accent-hover);border-radius:6px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .3s;box-shadow:0 2px 4px var(--shadow-sm)}.lock-in-button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-md)}.lock-in-button:disabled{background:var(--gray-500);border-color:var(--gray-600);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.lock-in-button:disabled:hover{transform:none}.all-locked-message{color:var(--success);font-weight:700;font-size:.95rem;animation:pulse 2s infinite}.game-over-banner{padding:1.5rem;margin:1rem;border-radius:8px;text-align:center;font-size:1.3rem;font-weight:700;animation:slideDown .5s ease}.game-over-banner.victory{background:linear-gradient(135deg,var(--success-alpha-20),var(--success-alpha-30));color:var(--success);border:3px solid var(--success);box-shadow:0 0 20px var(--success-alpha-40)}.game-over-banner.defeat{background:linear-gradient(135deg,var(--danger-alpha-20),var(--danger-alpha-30));color:var(--danger-primary);border:3px solid var(--danger-primary);box-shadow:0 0 20px var(--danger-alpha-40)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pilots-grid{flex:1;overflow-y:auto;padding:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(350px,100%),1fr));gap:1rem}@media(min-width:1200px){.pilots-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.pilots-grid{grid-template-columns:1fr}}.pilot-card{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.pilot-card.disabled{opacity:.5;filter:grayscale(.5)}.pilot-card.my-pilot{border-color:var(--accent-primary);box-shadow:0 0 8px var(--brand-alpha-30)}.pilot-card-header{display:flex;gap:.75rem;align-items:center}.ship-icon{width:40px;height:40px;object-fit:contain}[data-theme=dark] .ship-icon{filter:brightness(0) invert(1)}.pilot-info{flex:1}.pilot-name{margin:0 0 .25rem;font-size:1.1rem;color:var(--text-primary)}.pilot-owner{font-size:.9rem;color:var(--text-secondary)}.pilot-skill{font-size:1.2rem;font-weight:700;color:var(--warning-primary);background:var(--bg-tertiary);padding:.25rem .75rem;border-radius:4px}.pilot-card-image{width:100%;display:flex;justify-content:center;margin:.5rem 0}.pilot-card-image .card-image{max-width:100%;height:auto;border-radius:6px;box-shadow:0 2px 8px var(--shadow-md);border:1px solid var(--border-color)}.pilot-stats{display:flex;gap:1rem;align-items:center;padding:.5rem;background:var(--bg-tertiary);border-radius:4px;justify-content:space-around}.pilot-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.pilot-stats .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.pilot-status{display:flex;gap:.5rem;flex-wrap:wrap}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase}.status-badge.ionized{background:var(--accent-primary);color:var(--text-on-accent)}.status-badge.disabled{background:var(--gray-500);color:var(--text-on-accent)}.status-badge.stressed{background:var(--danger-primary);color:var(--text-on-accent)}.pilot-tokens{display:flex;gap:1rem;flex-wrap:wrap}.pilot-damage{display:flex;gap:1rem;align-items:center}.damage-control{display:flex;align-items:center;gap:.5rem}.damage-control label{font-size:.9rem;color:var(--text-secondary)}.damage-buttons{display:flex;gap:.25rem}.damage-buttons button{padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:3px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;font-size:.85rem;transition:background .2s}.damage-buttons button:hover{background:var(--bg-hover)}.damage-value{min-width:2rem;text-align:center;font-weight:700;color:var(--text-primary)}.pilot-maneuver{padding-top:.75rem;border-top:1px solid var(--border-color)}.pilot-maneuver h4{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary);text-transform:uppercase}.pilot-upgrades h4{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary);text-transform:uppercase}.pilot-stats{display:flex;gap:1rem;align-items:center;padding:.5rem;background:var(--bg-tertiary);border-radius:4px}.pilot-tokens{display:flex;gap:1rem;flex-wrap:wrap;padding:.5rem;background:var(--bg-tertiary);border-radius:4px}.token-display{display:flex;align-items:center;gap:.5rem}.token-icon{width:28px;height:28px;object-fit:contain}.token-button{width:24px;height:24px;padding:0;border:1px solid var(--border-color);border-radius:3px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:.85rem;transition:background .2s;display:flex;align-items:center;justify-content:center}.token-button:hover:not(:disabled){background:var(--bg-hover)}.token-button:disabled{opacity:.4;cursor:not-allowed}.token-count{min-width:1.5rem;text-align:center;font-weight:700;color:var(--text-primary);font-size:.95rem}.maneuver-section{padding:.75rem;background:var(--bg-tertiary);border-radius:4px;display:flex;flex-direction:column;gap:.5rem}.select-maneuver-button,.cancel-button{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:.9rem;transition:background .2s}.select-maneuver-button:hover,.cancel-button:hover{background:var(--bg-hover)}.selected-maneuver{padding:.5rem;background:var(--brand-alpha-20);border:1px solid var(--accent-primary);border-radius:4px;text-align:center;font-size:.9rem;color:var(--text-primary);font-weight:700}.selected-maneuver.maneuver-green{background:var(--success-alpha-20);border-color:var(--success);border-width:2px}.selected-maneuver.maneuver-red{background:var(--danger-alpha-20);border-color:var(--danger-primary);border-width:2px}.selected-maneuver.maneuver-white{background:var(--brand-alpha-20);border-color:var(--accent-primary)}.selected-maneuver-display{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1rem;border-radius:4px}.maneuver-icon{width:32px;height:32px;object-fit:contain}.maneuver-speed{font-size:1rem;font-weight:700;color:var(--text-primary)}.pilot-upgrades{display:flex;flex-direction:column;gap:.5rem}.pilot-upgrades h4{margin:0 0 .5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase}.upgrade-card{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;transition:all .2s}.upgrade-card:hover{background:var(--bg-hover);border-color:var(--accent-primary);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow-sm)}.upgrade-card.disabled{opacity:.5;filter:grayscale(1);text-decoration:line-through}.upgrade-card .slot-icon{width:20px;height:20px;object-fit:contain}[data-theme=dark] .upgrade-card .slot-icon{filter:brightness(0) invert(1)}.upgrade-card .upgrade-name{flex:1;font-size:.85rem;color:var(--text-primary)}.upgrade-card .weapon-stats{display:flex;gap:.5rem;align-items:center;font-size:.85rem;font-weight:700;margin-left:auto;margin-right:.5rem}.upgrade-card .attack-value{color:var(--danger-primary)}.upgrade-card .range-value{color:var(--text-primary)}.upgrade-card .upgrade-status{font-size:.9rem;font-weight:700}.upgrade-card.enabled .upgrade-status{color:var(--success)}.upgrade-card.disabled .upgrade-status{color:var(--danger-primary)}.upgrade-image-modal{position:fixed;inset:0;background:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer;animation:fadeIn .2s ease}.upgrade-image-container{position:relative;max-width:90vw;max-height:90vh;cursor:default;display:flex;flex-direction:column;align-items:center;gap:1rem}.upgrade-card-image{max-width:100%;max-height:70vh;border-radius:8px;box-shadow:0 4px 20px var(--shadow-lg)}.upgrade-image-error{padding:2rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);text-align:center}.upgrade-detonation-info{background:var(--bg-secondary);padding:1rem;border-radius:8px;max-width:600px;border:2px solid var(--danger-primary)}.upgrade-detonation-info h3{margin:0 0 .75rem;color:var(--danger-primary);text-align:center;font-size:1.1rem;font-weight:700;text-transform:uppercase}.upgrade-detonation-info p{margin:0;color:var(--text-primary);line-height:1.5;text-align:center}.close-modal-button{position:absolute;top:-10px;right:-10px;width:32px;height:32px;border-radius:50%;background:var(--danger-primary);color:var(--text-on-accent);border:2px solid white;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:background .2s;box-shadow:0 2px 8px var(--shadow-md)}.close-modal-button:hover{background:var(--danger-primary);transform:scale(1.1)}.damage-controls{display:flex;flex-wrap:wrap;gap:1rem;padding:.5rem;background:var(--bg-tertiary);border-radius:4px}.damage-control{display:flex;align-items:center;gap:.5rem;flex:1;min-width:120px}.damage-control label{font-size:.9rem;color:var(--text-secondary);font-weight:700}.damage-control button{padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:3px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:.9rem;transition:background .2s;min-width:2rem}.damage-control button:hover{background:var(--bg-hover)}.damage-control span{font-weight:700;color:var(--text-primary);min-width:3rem;text-align:center}.maneuver-hidden{color:var(--text-secondary);font-style:italic}.selected-maneuver .maneuver-hidden:before{content:"🔒 "}.view-maneuvers-section{display:flex;justify-content:center;padding-top:.5rem;border-top:1px solid var(--border-color)}.view-maneuvers-button{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:.85rem;transition:all .2s}.view-maneuvers-button:hover{background:var(--bg-hover);border-color:var(--accent-primary);transform:translateY(-1px)}.maneuver-dial-modal{position:fixed;inset:0;background:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer;animation:fadeIn .2s ease}.maneuver-dial-container{position:relative;background:var(--bg-secondary);padding:1.5rem;border-radius:8px;border:2px solid var(--border-color);max-width:90vw;max-height:90vh;overflow-y:auto;overflow-x:hidden;cursor:default}.maneuver-dial-container h3{margin:0 0 1rem;color:var(--text-primary);text-align:center;font-size:1.1rem}.maneuver-selector{display:flex;flex-direction:column;gap:.5rem}.maneuver-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem}.maneuver-button{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;font-size:.85rem;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.25rem}.maneuver-button:hover:not(:disabled){background:var(--bg-hover);transform:translateY(-2px)}.maneuver-button:disabled{opacity:.3;cursor:not-allowed}.maneuver-button.selected{border-color:var(--accent-primary);background:var(--brand-alpha-20);font-weight:700}.maneuver-button.green{border-color:var(--success)}.maneuver-button.white{border-color:var(--gray-500)}.maneuver-button.red{border-color:var(--danger-primary)}.maneuver-direction{font-size:1.2rem}.maneuver-speed{font-size:.75rem;color:var(--text-secondary)}.selected-maneuver{padding:.5rem;background:var(--bg-tertiary);border-radius:4px;text-align:center;font-size:.9rem;color:var(--text-primary)}.selected-maneuver.none{color:var(--text-secondary);font-style:italic}.pacman-game{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:800px;margin:0 auto}.pacman-game .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.pacman-game .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.pacman-game .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.pacman-game .game-header button:hover{background-color:var(--accent-hover)}.pacman-game .game-info{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;width:100%}.pacman-game .info-item{display:flex;flex-direction:column;align-items:center;background-color:var(--bg-secondary);padding:.5rem 1rem;border-radius:6px;border:2px solid var(--border-primary);min-width:80px}.pacman-game .info-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700}.pacman-game .info-value{font-size:1.25rem;color:var(--text-primary);font-weight:700;margin-top:.25rem}.pacman-game .score-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.pacman-game .game-canvas{border:3px solid var(--border-primary);background-color:var(--arcade-black);box-shadow:0 4px 6px var(--shadow-md);touch-action:none;user-select:none;-webkit-user-select:none;max-width:100%;display:block}.pacman-game .game-controls{color:var(--text-secondary);font-size:.85rem;text-align:center}.pacman-game .game-controls p{margin:.25rem 0}.pacman-game .game-controls .mobile-hint{display:none;color:var(--text-secondary);font-size:.8rem}@media(max-width:768px){.pacman-game .game-controls .mobile-hint{display:block}}.pacman-game .game-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}.pacman-game .overlay-content{background-color:var(--bg-primary);padding:2rem;border-radius:12px;text-align:center;border:2px solid var(--border-primary);box-shadow:0 8px 16px var(--shadow-lg)}.pacman-game .overlay-content h2{font-size:2.5rem;margin:0 0 1rem;color:var(--text-primary)}.pacman-game .overlay-content p{font-size:1.2rem;margin:.5rem 0;color:var(--text-secondary)}.pacman-game .overlay-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.pacman-game .play-again-button,.pacman-game .exit-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.pacman-game .play-again-button:hover,.pacman-game .exit-button:hover{background-color:var(--accent-hover)}@media(max-width:768px){.pacman-game{padding:.5rem}.pacman-game .game-info{gap:1rem}.pacman-game .info-item{min-width:70px;padding:.4rem .8rem}.pacman-game .overlay-content h2{font-size:2rem}.pacman-game .overlay-content p{font-size:1rem}}@media(max-width:480px){.pacman-game .game-header{flex-wrap:wrap}.pacman-game .game-header h2{order:-1;width:100%;text-align:center;margin-bottom:.5rem}.pacman-game .info-value{font-size:1rem}}.game-snake{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:800px;margin:0 auto}.game-snake .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between;flex-wrap:wrap}.game-snake .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-snake .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s;white-space:nowrap}.game-snake .game-header button:hover{background-color:var(--accent-hover)}.game-snake .score-info{display:flex;gap:1rem;align-items:center}.game-snake .score-item{display:flex;flex-direction:column;align-items:center;background-color:var(--bg-secondary);padding:.5rem 1rem;border-radius:6px;min-width:70px;border:2px solid var(--border-color)}.game-snake .score-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700}.game-snake .score-value{font-size:1.25rem;color:var(--text-primary);font-weight:700;margin-top:.25rem}.game-snake .score-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.game-snake .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;max-width:600px}.game-snake .grid-container{position:relative;background-color:var(--bg-secondary);border-radius:6px;padding:4px;width:100%;max-width:600px;aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;border:2px solid var(--border-color)}.game-snake .grid-background{display:grid;grid-template-columns:repeat(20,1fr);grid-template-rows:repeat(20,1fr);gap:1px;width:100%;height:100%;background-color:var(--bg-primary)}.game-snake .snake-cell{background-color:var(--bg-secondary);border-radius:2px;transition:background-color .1s ease}.game-snake .snake-head{background-color:var(--success);box-shadow:inset 0 0 4px var(--shadow-md)}.game-snake .snake-body{background-color:var(--success-bright);box-shadow:inset 0 0 2px var(--shadow-sm)}.game-snake .snake-food{background-color:var(--danger-primary);border-radius:50%;box-shadow:0 0 8px var(--danger-alpha-60);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.85);opacity:.8}}.game-snake .game-message{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}.game-snake .message-content{text-align:center;color:var(--text-primary);background-color:var(--bg-primary);padding:2rem;border-radius:12px;box-shadow:0 4px 20px var(--shadow-lg);border:2px solid var(--border-color)}.game-snake .message-content h2{font-size:3rem;font-weight:700;margin:0 0 1rem;color:var(--text-primary)}.game-snake .message-content p{font-size:1.2rem;margin:0 0 1rem;color:var(--text-secondary)}.game-snake .message-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.game-snake .resume-button,.game-snake .try-again-button,.game-snake .exit-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.game-snake .resume-button:hover,.game-snake .try-again-button:hover,.game-snake .exit-button:hover{background-color:var(--accent-hover)}@media(max-width:600px){.game-snake{padding:.5rem}.game-snake .game-header{flex-wrap:wrap;justify-content:center}.game-snake .game-header button{padding:.4rem .8rem;font-size:.9rem}.game-snake .score-info{width:100%;justify-content:center}.game-snake .message-content h2{font-size:2rem}.game-snake .message-content p{font-size:1rem}.game-snake .message-buttons{flex-direction:column}.game-snake .message-buttons button{width:100%}}@media(max-width:400px){.game-snake .grid-background{gap:0}.game-snake .snake-cell{border-radius:1px}}.snake-app{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--bg-primary)}.game-breakout{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:700px;margin:0 auto}.game-breakout .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between;flex-wrap:wrap}.game-breakout .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-breakout .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s;white-space:nowrap}.game-breakout .game-header button:hover{background-color:var(--accent-hover)}.game-breakout .score-info{display:flex;gap:1rem;align-items:center}.game-breakout .score-item{display:flex;flex-direction:column;align-items:center;background-color:var(--card-bg);padding:.5rem 1rem;border-radius:6px;min-width:70px;border:1px solid var(--border-color)}.game-breakout .score-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700}.game-breakout .score-value{font-size:1.25rem;color:var(--text-primary);font-weight:700;margin-top:.25rem}.game-breakout .score-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.game-breakout .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;max-width:600px}.game-breakout .canvas-container{position:relative;border:2px solid var(--border-color);border-radius:8px;overflow:hidden;box-shadow:0 4px 6px var(--shadow-xs)}.game-breakout .game-canvas{display:block;cursor:crosshair;background-color:var(--arcade-near-black)}.game-breakout .game-controls{display:flex;gap:1rem;justify-content:center}.game-breakout .game-controls button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.game-breakout .game-controls button:hover:not(:disabled){background-color:var(--accent-hover)}.game-breakout .game-controls button:disabled{opacity:.5;cursor:not-allowed}.game-breakout .game-message{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}.game-breakout .message-content{text-align:center;color:var(--text-primary);background-color:var(--card-bg);padding:3rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-md)}.game-breakout .message-content h2{font-size:3rem;font-weight:700;margin:0 0 1rem;color:var(--text-primary)}.game-breakout .game-won .message-content h2{color:var(--success)}.game-breakout .game-over .message-content h2{color:var(--danger-text)}.game-breakout .message-content p{font-size:1.2rem;margin:0 0 2rem;color:var(--text-secondary)}.game-breakout .message-buttons{display:flex;gap:1rem;justify-content:center}.game-breakout .try-again-button,.game-breakout .exit-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.game-breakout .try-again-button:hover,.game-breakout .exit-button:hover{background-color:var(--accent-hover)}@media(max-width:700px){.game-breakout{padding:.5rem}.game-breakout .game-header{flex-direction:column;gap:.5rem}.game-breakout .score-info{order:-1;width:100%;justify-content:center}.game-breakout .canvas-container{width:100%}.game-breakout .game-canvas{width:100%;height:auto}.game-breakout .message-content{padding:2rem}.game-breakout .message-content h2{font-size:2rem}.game-breakout .message-content p{font-size:1rem}}.solitaire-app{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.solitaire-game{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;box-sizing:border-box;gap:1rem}.solitaire-game .game-header{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:900px;margin-bottom:.5rem;position:relative}.solitaire-game .game-header h2{margin:0;color:var(--text-primary);position:absolute;left:50%;transform:translate(-50%);font-size:1.5rem}.solitaire-game .exit-button,.solitaire-game .settings-button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem}.solitaire-game .exit-button:hover,.solitaire-game .settings-button:hover{background-color:var(--accent-hover)}.solitaire-game .score-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px;flex-wrap:wrap;gap:1rem;width:100%;max-width:900px;box-shadow:0 2px 4px var(--shadow-xs)}.solitaire-game .stats{display:flex;gap:1.5rem;font-size:.95rem;font-weight:500;color:var(--text-primary)}.solitaire-game .controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.solitaire-game .undo-button,.solitaire-game .auto-complete-button{padding:.5rem .75rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s}.solitaire-game .undo-button:hover:not(:disabled),.solitaire-game .auto-complete-button:hover:not(:disabled){background:var(--accent-hover)}.solitaire-game .undo-button:disabled{background:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed;opacity:.5}.solitaire-game .draw-mode-select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:500}.solitaire-game .game-board{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:900px;align-items:center}.solitaire-game .top-row{display:flex;justify-content:space-between;align-items:flex-start;width:100%;max-width:700px}.solitaire-game .stock-area{display:flex;gap:.75rem}.solitaire-game .pile{width:80px;height:112px;position:relative;flex-shrink:0}.solitaire-game .stock-pile,.solitaire-game .waste-pile{cursor:pointer}.solitaire-game .recycle-indicator{width:80px;height:112px;border:2px dashed var(--border-color);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text-secondary);transition:all .2s;opacity:.6}.solitaire-game .recycle-indicator:hover{border-color:var(--text-secondary);background:var(--bg-secondary);opacity:.8}.solitaire-game .foundations-section{display:flex;gap:.75rem}.solitaire-game .foundation-pile{cursor:pointer}.solitaire-game .foundation-placeholder{width:80px;height:112px;border:2px dashed var(--border-color);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--text-secondary);transition:all .2s;opacity:.4}.solitaire-game .foundation-pile:hover .foundation-placeholder{border-color:var(--text-secondary);background:var(--bg-secondary);opacity:.6}.solitaire-game .tableau-section{display:flex;gap:.75rem;justify-content:center;width:100%;max-width:700px}.solitaire-game .tableau-pile{position:relative;min-height:400px;width:80px;cursor:pointer;flex-shrink:0}.solitaire-game .settings-content{display:flex;flex-direction:column;gap:1.5rem;padding:1rem 0}.solitaire-game .setting-group{display:flex;flex-direction:column;gap:.5rem}.solitaire-game .setting-group label{font-weight:500;color:var(--text-primary)}.solitaire-game .setting-group select{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.solitaire-game .new-game-button,.solitaire-game .play-again-button{padding:.75rem 1.5rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.solitaire-game .new-game-button:hover,.solitaire-game .play-again-button:hover{background:var(--accent-hover)}.solitaire-game .win-content{display:flex;flex-direction:column;gap:1.5rem;padding:1rem 0;text-align:center}.solitaire-game .win-stats{display:flex;flex-direction:column;gap:.75rem;font-size:1.1rem;color:var(--text-primary)}.solitaire-game .win-stats p{margin:0}@media(max-width:900px){.solitaire-game .game-header h2{position:static;transform:none;font-size:1.2rem}.solitaire-game .score-bar{flex-direction:column;align-items:stretch;padding:.5rem}.solitaire-game .stats{justify-content:space-around;gap:1rem;font-size:.85rem}.solitaire-game .controls{justify-content:center}.solitaire-game .undo-button,.solitaire-game .auto-complete-button,.solitaire-game .draw-mode-select{padding:.4rem .6rem;font-size:.85rem}.solitaire-game .top-row{flex-direction:row;gap:1rem;align-items:center;padding-left:1rem;padding-right:1rem}.solitaire-game .tableau-section{gap:.4rem;overflow-x:auto;padding:0 .5rem}.solitaire-game .tableau-pile{min-height:300px}.solitaire-game .foundations-section,.solitaire-game .stock-area{gap:.5rem}}@media(max-width:600px){.solitaire-game .pile,.solitaire-game .solitaire-card,.solitaire-game .recycle-indicator,.solitaire-game .foundation-placeholder{width:60px;height:84px}.solitaire-game .tableau-pile{width:60px;min-height:250px}.solitaire-game .tableau-section{gap:.3rem}.solitaire-game .card-rank-top .rank,.solitaire-game .card-rank-bottom .rank{font-size:14px}.solitaire-game .card-rank-top .suit,.solitaire-game .card-rank-bottom .suit{font-size:12px}.solitaire-game .card-suit-center{font-size:24px}}.solitaire-game .solitaire-card{position:absolute;width:80px;height:112px;border-radius:6px;border:2px solid var(--border-color);background:var(--text-on-accent);display:flex;flex-direction:column;justify-content:space-between;padding:6px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;-webkit-user-select:none;user-select:none;box-shadow:0 2px 4px var(--shadow-md);left:0}.solitaire-game .tableau-pile .solitaire-card{transition:top .3s cubic-bezier(.4,0,.2,1)}@keyframes cardMove{0%{transform:scale(1);box-shadow:0 2px 4px var(--shadow-md)}30%{transform:scale(1.15) translateY(-20px);box-shadow:0 12px 24px var(--shadow-md)}70%{transform:scale(1.15) translateY(-20px);box-shadow:0 12px 24px var(--shadow-md)}to{transform:scale(1);box-shadow:0 2px 4px var(--shadow-md)}}.solitaire-game .solitaire-card.card-moving{animation:cardMove .6s cubic-bezier(.34,1.56,.64,1);z-index:200!important}.solitaire-game .tableau-pile .solitaire-card{pointer-events:auto}.solitaire-game .solitaire-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-md);z-index:100!important}.solitaire-game .solitaire-card.selected{border:3px solid var(--accent-primary);box-shadow:0 0 0 3px var(--brand-alpha-30);transform:translateY(-8px);z-index:150!important}.solitaire-game .solitaire-card.empty{background:transparent;border:2px dashed var(--border-color);box-shadow:none;opacity:.5}.solitaire-game .solitaire-card.empty:hover{border-color:var(--text-secondary);transform:none;opacity:.7}.solitaire-game .solitaire-card.face-down{background:var(--solitaire-card-back-gradient);border-color:var(--solitaire-drop-hint);justify-content:center;align-items:center}.solitaire-game .solitaire-card.face-down:hover{transform:none;box-shadow:0 2px 4px var(--shadow-md)}@media(max-width:600px){.solitaire-game .solitaire-card{width:60px;height:84px;padding:4px}}.solitaire-game .solitaire-card.red{color:var(--solitaire-red-suit)}.solitaire-game .solitaire-card.black{color:var(--solitaire-black-suit)}.solitaire-game .card-rank-top{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.solitaire-game .card-rank-bottom{display:flex;flex-direction:column;align-items:flex-end;line-height:1;transform:rotate(180deg)}.solitaire-game .card-rank-top .rank,.solitaire-game .card-rank-bottom .rank{font-size:18px;font-weight:700}.solitaire-game .card-rank-top .suit,.solitaire-game .card-rank-bottom .suit{font-size:16px}.solitaire-game .card-suit-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:36px;opacity:.15;pointer-events:none}.solitaire-game .card-back{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.solitaire-game .card-back-pattern{width:90%;height:90%;background-image:repeating-linear-gradient(45deg,var(--overlay-white-subtle) 0px,var(--overlay-white-subtle) 10px,transparent 10px,transparent 20px),repeating-linear-gradient(-45deg,var(--overlay-white-subtle) 0px,var(--overlay-white-subtle) 10px,transparent 10px,transparent 20px);border-radius:4px;border:2px solid var(--overlay-white-light)}[data-theme=dark] .solitaire-game .solitaire-card.face-up{background:var(--solitaire-black-suit);border-color:var(--solitaire-card-back-border)}[data-theme=dark] .solitaire-game .solitaire-card.red{color:var(--solitaire-card-back-red-text)}[data-theme=dark] .solitaire-game .solitaire-card.black{color:var(--solitaire-card-back-text)}[data-theme=dark] .solitaire-game .solitaire-card.empty{border-color:var(--shadow-sm)}.game-asteroids{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:900px;margin:0 auto}.game-asteroids .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between;flex-wrap:wrap}.game-asteroids .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-asteroids .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s;white-space:nowrap}.game-asteroids .game-header button:hover{background-color:var(--accent-hover)}.game-asteroids .score-info{display:flex;gap:1rem;align-items:center}.game-asteroids .score-item{display:flex;flex-direction:column;align-items:center;background-color:var(--card-bg);padding:.5rem 1rem;border-radius:6px;min-width:70px;border:1px solid var(--border-color)}.game-asteroids .score-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700}.game-asteroids .score-value{font-size:1.25rem;color:var(--text-primary);font-weight:700;margin-top:.25rem}.game-asteroids .score-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.game-asteroids .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;max-width:700px}.game-asteroids .canvas-container{position:relative;border:2px solid var(--border-color);border-radius:8px;overflow:hidden;box-shadow:0 4px 6px var(--shadow-xs)}.game-asteroids .game-canvas{display:block;cursor:crosshair;background-color:var(--arcade-black)}.game-asteroids .game-controls{display:flex;gap:1rem;justify-content:center}.game-asteroids .game-controls button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.game-asteroids .game-controls button:hover:not(:disabled){background-color:var(--accent-hover)}.game-asteroids .game-controls button:disabled{opacity:.5;cursor:not-allowed}.game-asteroids .game-message{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-asteroids .message-content{text-align:center;color:var(--text-primary);background-color:var(--card-bg);padding:3rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-md)}.game-asteroids .message-content h2{font-size:3rem;font-weight:700;margin:0 0 1rem;color:var(--text-primary)}.game-asteroids .game-over .message-content h2{color:var(--danger-text)}.game-asteroids .message-content p{font-size:1.2rem;margin:0 0 2rem;color:var(--text-secondary)}.game-asteroids .message-buttons{display:flex;gap:1rem;justify-content:center}.game-asteroids .try-again-button,.game-asteroids .exit-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.game-asteroids .try-again-button:hover,.game-asteroids .exit-button:hover{background-color:var(--accent-hover)}@media(max-width:850px){.game-asteroids{padding:.5rem}.game-asteroids .game-header{flex-direction:column;gap:.5rem}.game-asteroids .score-info{order:-1;width:100%;justify-content:center}.game-asteroids .canvas-container{width:100%}.game-asteroids .game-canvas{width:100%;height:auto}.game-asteroids .message-content{padding:2rem}.game-asteroids .message-content h2{font-size:2rem}.game-asteroids .message-content p{font-size:1rem}}.game-spaceinvaders{display:flex;flex-direction:column;align-items:center;padding:1rem;gap:1.5rem;max-width:900px;margin:0 auto}.game-spaceinvaders .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between;flex-wrap:wrap}.game-spaceinvaders .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.game-spaceinvaders .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s;white-space:nowrap}.game-spaceinvaders .game-header button:hover{background-color:var(--accent-hover)}.game-spaceinvaders .score-info{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.game-spaceinvaders .score-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.game-spaceinvaders .score-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.game-spaceinvaders .score-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.game-spaceinvaders .score-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.game-spaceinvaders .canvas-container{position:relative;border:2px solid var(--border-primary);border-radius:8px;overflow:hidden;background-color:var(--arcade-black);box-shadow:0 4px 6px var(--shadow-xs)}.game-spaceinvaders canvas{display:block;max-width:100%;height:auto}.game-spaceinvaders .game-controls{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.game-spaceinvaders .game-controls button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.game-spaceinvaders .game-controls button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.game-spaceinvaders .game-controls button:active{transform:translateY(0)}.game-spaceinvaders .game-instructions{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;padding:1rem;background-color:var(--surface-secondary);border-radius:8px;color:var(--text-secondary);font-size:.875rem}.game-spaceinvaders .instruction{display:flex;gap:.5rem;align-items:center}.game-spaceinvaders .instruction strong{color:var(--text-primary)}.game-spaceinvaders .game-over-modal{position:fixed;inset:0;background-color:var(--overlay-black-strong);display:flex;align-items:center;justify-content:center;z-index:1000}.game-spaceinvaders .modal-content{background-color:var(--surface-primary);padding:2rem;border-radius:12px;max-width:400px;width:90%;box-shadow:0 8px 32px var(--shadow-md)}.game-spaceinvaders .modal-content h2{margin:0 0 1.5rem;font-size:2rem;color:var(--text-primary);text-align:center}.game-spaceinvaders .final-stats{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.game-spaceinvaders .stat{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:var(--surface-secondary);border-radius:6px}.game-spaceinvaders .stat-label{color:var(--text-secondary);font-size:.875rem}.game-spaceinvaders .stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:700}.game-spaceinvaders .modal-buttons{display:flex;gap:1rem;justify-content:center}.game-spaceinvaders .modal-buttons button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--arcade-text);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.game-spaceinvaders .modal-buttons button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.game-spaceinvaders .modal-buttons button:last-child{background-color:var(--surface-tertiary);color:var(--text-primary)}.game-spaceinvaders .modal-buttons button:last-child:hover{background-color:var(--border-primary)}.game-spaceinvaders .paused-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:999}.game-spaceinvaders .paused-overlay h2{margin:0;font-size:3rem;color:var(--arcade-text);text-shadow:0 0 20px var(--overlay-white-half)}.game-spaceinvaders .paused-overlay p{margin:0;font-size:1.25rem;color:var(--text-secondary)}@media(max-width:768px){.game-spaceinvaders{padding:.5rem;gap:1rem}.game-spaceinvaders .game-header{flex-direction:column;align-items:stretch}.game-spaceinvaders .game-header h2{text-align:center}.game-spaceinvaders .score-info{justify-content:center}.game-spaceinvaders .game-instructions{flex-direction:column;gap:.5rem}.game-spaceinvaders .modal-buttons{flex-direction:column}.game-spaceinvaders .modal-buttons button{width:100%}}.ttr-menu{width:100%;max-width:500px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;min-height:100%;box-sizing:border-box}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.menu-header h1{margin:0;color:var(--text-primary);font-size:1.75rem}.back-button{padding:.5rem 1rem;background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.back-button:hover{background:var(--surface-tertiary)}.menu-content{display:flex;flex-direction:column;gap:1.5rem}.loading-text,.error-text{text-align:center;padding:1rem}.error-text{color:var(--danger-primary);background:var(--danger-bg, rgba(239, 68, 68, .1));border-radius:6px}.selected-players-section{background:var(--surface-secondary);border-radius:8px;padding:1rem}.selected-players-section h2{margin:0 0 .75rem;font-size:1.1rem;color:var(--text-primary)}.no-players-selected{color:var(--text-secondary);font-style:italic;text-align:center;padding:.5rem}.selected-players-list{display:flex;flex-direction:column;gap:.5rem}.selected-player-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--surface-primary);border-radius:6px;border:1px solid var(--border-primary)}.player-name{display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.guest-badge{font-size:.7rem;padding:.15rem .4rem;background:var(--accent-secondary);color:var(--text-on-accent);border-radius:4px;text-transform:uppercase}.you-badge{font-size:.7rem;padding:.15rem .4rem;background:var(--success);color:var(--text-on-accent);border-radius:4px;text-transform:uppercase}.remove-player-btn{width:28px;height:28px;padding:0;background:var(--danger-primary);color:var(--text-on-accent);border:none;border-radius:50%;cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.remove-player-btn:hover{background:var(--danger-hover)}.add-guest-section{background:var(--surface-secondary);border-radius:8px;padding:1rem}.add-guest-section h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.guest-input-row{display:flex;gap:.5rem}.guest-name-input{flex:1;padding:.6rem .75rem;border:1px solid var(--border-primary);border-radius:6px;background:var(--surface-primary);color:var(--text-primary);font-size:1rem}.add-guest-btn{padding:.6rem 1rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.system-players-section{background:var(--surface-secondary);border-radius:8px;padding:1rem}.system-players-section h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.player-selection{display:flex;flex-wrap:wrap;gap:.5rem}.player-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s;color:var(--text-primary)}.player-checkbox.selected{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.player-checkbox input{display:none}.start-button{padding:1rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:background-color .2s}.start-button:hover:not(:disabled){background:var(--accent-hover)}.start-button:disabled{opacity:.5;cursor:not-allowed}.menu-content .game-info{background:var(--surface-secondary);border-radius:8px;padding:1rem}.menu-content .game-info h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.scoring-table{display:grid;grid-template-columns:repeat(2,1fr);gap:.25rem}.score-row{display:flex;justify-content:space-between;padding:.35rem .5rem;background:var(--surface-primary);border-radius:4px;color:var(--text-secondary);font-size:.85rem}.score-row span:last-child{font-weight:600;color:var(--text-primary)}@media(max-width:480px){.ttr-menu{padding:.75rem}.menu-header h1{font-size:1.4rem}.selected-player-item{padding:.4rem .6rem}.start-button{padding:.875rem;font-size:1rem}}.ttr-game{width:100%;max-width:900px;margin:0 auto;padding:0rem;display:flex;flex-direction:column;min-height:100%;gap:.75rem;box-sizing:border-box}.game-header{display:flex;justify-content:space-between;align-items:center}.game-header h1{margin:0;color:var(--text-primary);font-size:1.25rem}.exit-btn,.end-game-btn{padding:.5rem .75rem;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background-color .2s}.exit-btn{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border-primary)}.exit-btn:hover{background:var(--surface-tertiary)}.end-game-btn{background:var(--accent-primary);color:var(--text-on-accent)}.end-game-btn:hover{background:var(--accent-hover)}.player-tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}.player-tab{flex:1;min-width:70px;padding:.5rem .4rem;background:var(--surface-secondary);border:2px solid var(--border-primary);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem;transition:all .2s}.player-tab.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.tab-name{font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tab-score{font-size:1rem;font-weight:700}.active-player-display{background:var(--surface-secondary);border-radius:12px;padding:1rem}.player-score-large{display:flex;flex-direction:column;align-items:center;gap:.15rem}.player-name-large{font-size:1rem;color:var(--text-secondary)}.score-value{font-size:3rem;font-weight:700;color:var(--text-primary);line-height:1}.score-label{font-size:.85rem;color:var(--text-secondary)}.mode-toggle{display:flex;gap:.5rem;background:var(--surface-secondary);padding:.25rem;border-radius:8px}.mode-btn{flex:1;padding:.5rem;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:all .2s}.mode-btn.active{background:var(--surface-primary);color:var(--text-primary);box-shadow:0 1px 3px var(--shadow-xs)}.subtract-toggle{display:flex;justify-content:center}.subtract-btn{padding:.5rem 1.25rem;background:var(--success);color:var(--text-on-accent);border:none;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s}.subtract-btn.active{background:var(--danger-primary)}.trains-input{flex:1;display:flex;flex-direction:column}.train-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.train-btn{padding:.75rem .25rem;background:var(--surface-secondary);border:2px solid var(--accent-primary);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem;transition:all .15s}.train-btn:hover{background:var(--accent-primary);color:var(--text-on-accent)}.train-btn:active{transform:scale(.95)}.train-btn.subtracting{border-color:var(--danger-primary)}.train-btn.subtracting:hover{background:var(--danger-primary)}.train-length{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.train-btn:hover .train-length{color:var(--text-on-accent)}.train-points{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.train-btn:hover .train-points{color:var(--overlay-white-strong)}.numpad-input{flex:1;display:flex;flex-direction:column;gap:.5rem}.numpad-display{background:var(--surface-secondary);border-radius:8px;padding:.75rem;text-align:right}.numpad-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);font-family:monospace}.numpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.numpad-btn{padding:.75rem;background:var(--surface-secondary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;color:var(--text-primary);transition:all .15s}.numpad-btn:hover{background:var(--surface-tertiary)}.numpad-btn:active{transform:scale(.95)}.numpad-btn.clear-btn{color:var(--danger-primary)}.numpad-confirm{padding:.75rem;background:var(--success);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.numpad-confirm:hover:not(:disabled){background:var(--success-hover)}.numpad-confirm:disabled{opacity:.5;cursor:not-allowed}.numpad-confirm.subtracting{background:var(--danger-primary)}.numpad-confirm.subtracting:hover:not(:disabled){background:var(--danger-hover)}.final-results{display:flex;flex-direction:column;gap:1.5rem;padding:1rem 0}.winner-announcement{text-align:center;padding:1.5rem;background:var(--surface-secondary);border-radius:12px}.trophy{font-size:3rem;display:block;margin-bottom:.5rem}.winner-announcement h2{margin:0 0 .25rem;color:var(--text-primary);font-size:1.75rem}.winning-score{margin:0;color:var(--accent-primary);font-size:1.25rem;font-weight:600}.final-standings{background:var(--surface-secondary);border-radius:12px;padding:1rem}.final-standings h3{margin:0 0 .75rem;color:var(--text-primary);font-size:1.1rem}.standings-list{display:flex;flex-direction:column;gap:.5rem}.standing-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--surface-primary);border-radius:8px;border:2px solid transparent}.standing-item.winner{border-color:var(--accent-primary);background:var(--accent-bg, var(--brand-alpha-10))}.standing-rank{font-size:.9rem;font-weight:700;color:var(--text-secondary);min-width:2rem}.standing-item.winner .standing-rank{color:var(--accent-primary)}.standing-name{flex:1;display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:500}.standing-score{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.guest-badge{font-size:.65rem;padding:.1rem .3rem;background:var(--accent-secondary);color:var(--text-on-accent);border-radius:4px;text-transform:uppercase}.new-game-btn{padding:1rem;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:background-color .2s}.new-game-btn:hover{background:var(--accent-hover)}.ticket-to-ride-game .modal-content{padding:1rem 0}.ticket-to-ride-game .modal-content p{margin:0 0 .5rem;color:var(--text-primary)}.modal-subtext{color:var(--text-secondary)!important;font-size:.9rem}.modal-buttons{display:flex;gap:.75rem;margin-top:1.5rem}.modal-btn{flex:1;padding:.75rem;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .2s}.modal-btn.cancel{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border-primary)}.modal-btn.cancel:hover{background:var(--surface-tertiary)}.modal-btn.confirm{background:var(--accent-primary);color:var(--text-on-accent)}.modal-btn.confirm:hover{background:var(--accent-hover)}.modal-btn.confirm.danger{background:var(--danger-primary)}.modal-btn.confirm.danger:hover{background:var(--danger-hover)}.modal-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:400px){.ttr-game{padding:.5rem;gap:.5rem}.game-header h1{font-size:1rem}.exit-btn,.end-game-btn{padding:.4rem .5rem;font-size:.75rem}.player-tab{min-width:55px;padding:.4rem .3rem}.tab-name{font-size:.65rem}.tab-score{font-size:.9rem}.active-player-display{padding:.75rem}.score-value{font-size:2.5rem}.train-buttons{gap:.35rem}.train-btn{padding:.6rem .2rem}.train-length{font-size:1rem}.train-points{font-size:.65rem}.numpad-btn{padding:.6rem;font-size:1rem}.numpad-value{font-size:1.5rem}}@media(max-height:600px){.ttr-game{gap:.4rem}.active-player-display{padding:.5rem}.player-score-large{flex-direction:row;justify-content:center;gap:.75rem}.score-value{font-size:2rem}.score-label{display:none}.train-btn{padding:.5rem .2rem}.mode-toggle,.subtract-toggle{margin:0}}.7w-menu{max-width:800px;margin:0 auto}.selected-players-section{background:var(--bg-secondary);border-radius:12px;padding:20px;margin-bottom:20px}.selected-players-section h2{margin:0 0 15px;color:var(--text-primary);font-size:1.3rem}.no-players-selected{color:var(--text-secondary);font-style:italic;text-align:center;padding:20px}.selected-players-list{display:flex;flex-direction:column;gap:10px}.selected-player-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-primary);padding:12px 15px;border-radius:8px;border:2px solid var(--accent-primary)}.player-name{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.guest-badge,.you-badge{font-size:.75rem;padding:2px 8px;border-radius:12px;font-weight:600}.guest-badge{background:var(--accent-secondary);color:var(--text-on-accent)}.you-badge{background:var(--success);color:var(--text-on-accent)}.remove-player-btn{background:var(--danger);color:var(--text-on-accent);border:none;width:28px;height:28px;border-radius:50%;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.remove-player-btn:hover{transform:scale(1.1)}.add-guest-section,.system-players-section{background:var(--bg-secondary);border-radius:12px;padding:20px;margin-bottom:20px}.add-guest-section h3,.system-players-section h3{margin:0 0 15px;color:var(--text-primary);font-size:1.1rem}.guest-input-row{display:flex;gap:10px}.guest-name-input{flex:1;padding:12px;border:2px solid var(--border-primary);border-radius:8px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary)}.guest-name-input:focus{outline:none;border-color:var(--accent-primary)}.add-guest-btn{padding:12px 24px;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.add-guest-btn:hover:not(:disabled){background:var(--accent-hover)}.add-guest-btn:disabled{opacity:.5;cursor:not-allowed}.player-selection{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.player-checkbox{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-primary);border-radius:8px;cursor:pointer;border:2px solid var(--border-primary);transition:all .2s}.player-checkbox:hover{border-color:var(--accent-primary)}.player-checkbox.selected{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-on-accent)}.player-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.start-button{width:100%;padding:16px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));color:var(--text-on-accent);border:none;border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-bottom:20px}.start-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-md)}.start-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.game-info{background:var(--bg-secondary);border-radius:12px;padding:20px}.game-info h3{margin:0 0 15px;color:var(--text-primary);font-size:1.1rem}.scoring-table{display:flex;flex-direction:column;gap:8px}.score-row{display:flex;justify-content:space-between;padding:10px 15px;background:var(--bg-primary);border-radius:8px;font-size:.95rem}.score-row span:first-child{font-weight:600;color:var(--text-primary)}.score-row span:last-child{color:var(--text-secondary)}.score-calculator{display:flex;flex-direction:column;gap:20px}.player-selector{display:flex;gap:8px;flex-wrap:wrap}.player-tab{display:flex;flex-direction:column;align-items:center;padding:10px 16px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s;min-width:100px}.player-tab:hover{border-color:var(--accent-primary)}.player-tab.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-on-accent)}.tab-name{font-weight:600;font-size:.9rem;margin-bottom:4px}.tab-score{font-size:1.2rem;font-weight:700}.calculator-content{background:var(--bg-secondary);border-radius:12px;padding:24px}.player-title{margin:0 0 24px;color:var(--text-primary);font-size:1.5rem;text-align:center}.score-sections{display:flex;flex-direction:column;gap:16px}.score-section{background:var(--bg-primary);border-radius:10px;padding:16px;border-left:4px solid var(--accent-primary)}.military-section{border-left-color:var(--danger-primary)}.treasury-section{border-left-color:var(--warning-primary)}.wonder-section{border-left-color:var(--accent-secondary)}.civic-section{border-left-color:var(--accent-primary)}.commercial-section{border-left-color:var(--highlight-primary)}.scientific-section{border-left-color:var(--success)}.guilds-section{border-left-color:var(--accent-secondary)}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.section-icon{font-size:1.5rem}.section-header h3{flex:1;margin:0;font-size:1.1rem;color:var(--text-primary)}.section-points{font-weight:700;font-size:1.2rem;color:var(--accent-primary)}.military-ages{display:flex;flex-direction:column;gap:12px}.age-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.age-label{min-width:60px;font-weight:600;color:var(--text-secondary)}.military-counter{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);padding:8px 12px;border-radius:8px}.counter-label{font-size:.9rem;color:var(--text-secondary);font-weight:600}.counter-value{min-width:24px;text-align:center;font-weight:700;font-size:1.1rem;color:var(--text-primary)}.military-counter button{width:28px;height:28px;border:none;border-radius:6px;background:var(--accent-primary);color:var(--text-on-accent);font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}.military-counter button:hover{background:var(--accent-hover)}.input-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.input-row label{font-weight:600;color:var(--text-primary);min-width:150px}.counter-input{display:flex;align-items:center;gap:8px}.counter-input button{width:36px;height:36px;border:none;border-radius:8px;background:var(--accent-primary);color:var(--text-on-accent);font-size:1.2rem;font-weight:700;cursor:pointer;transition:background .2s}.counter-input button:hover{background:var(--accent-hover)}.counter-input input{width:80px;padding:8px;text-align:center;border:2px solid var(--border-primary);border-radius:8px;font-size:1rem;background:var(--bg-secondary);color:var(--text-primary)}.counter-input input:focus{outline:none;border-color:var(--accent-primary)}.points-preview{color:var(--text-secondary);font-size:.9rem}.science-inputs{display:flex;flex-direction:column;gap:12px}.science-row{display:flex;align-items:center;gap:16px}.science-label{min-width:120px;font-weight:600;color:var(--text-primary)}.science-breakdown{margin-top:8px;padding:12px;background:var(--bg-secondary);border-radius:8px;display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--text-secondary)}.total-display{display:flex;justify-content:space-between;align-items:center;padding:20px;margin-top:24px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));border-radius:12px;color:var(--text-on-accent)}.total-label{font-size:1.3rem;font-weight:600}.total-value{font-size:2.5rem;font-weight:700}.navigation-buttons{display:flex;justify-content:space-between;gap:16px;margin-top:20px}.nav-btn,.next-btn,.finish-btn{padding:14px 28px;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s}.nav-btn,.next-btn{background:var(--bg-primary);color:var(--text-primary);border:2px solid var(--border-primary)}.nav-btn:hover:not(:disabled),.next-btn:hover{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-on-accent)}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.finish-btn{background:linear-gradient(135deg,var(--success),#2e7d32);color:var(--text-on-accent);flex:1}.finish-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-md)}.results-container{display:flex;flex-direction:column;gap:24px;padding:20px}.winner-section{text-align:center;padding:40px 20px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));border-radius:16px;color:var(--text-on-accent)}.trophy{font-size:4rem;display:block;margin-bottom:16px}.winner-section h2{margin:0 0 12px;font-size:2rem;font-weight:700}.winning-score{margin:0;font-size:1.3rem;opacity:.9}.standings-section,.breakdown-section{background:var(--bg-secondary);border-radius:12px;padding:20px}.standings-section h3,.breakdown-section h3{margin:0 0 16px;color:var(--text-primary);font-size:1.3rem}.standings-list{display:flex;flex-direction:column;gap:10px}.standing-item{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--bg-primary);border-radius:10px;border:2px solid var(--border-primary)}.standing-item.winner{border-color:var(--accent-primary);background:linear-gradient(135deg,var(--brand-alpha-10),var(--brand-alpha-10))}.standing-rank{font-weight:700;font-size:1.2rem;color:var(--text-secondary);min-width:30px}.standing-name{flex:1;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.standing-score{font-weight:700;font-size:1.3rem;color:var(--accent-primary)}.player-breakdown{background:var(--bg-primary);border-radius:10px;padding:16px;margin-bottom:12px}.player-breakdown:last-child{margin-bottom:0}.player-breakdown h4{margin:0 0 12px;color:var(--text-primary);font-size:1.1rem}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.breakdown-item{display:flex;flex-direction:column;align-items:center;padding:12px;background:var(--bg-secondary);border-radius:8px;gap:6px}.breakdown-item.total{background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));color:var(--text-on-accent)}.breakdown-icon{font-size:1.5rem}.breakdown-label{font-size:.85rem;color:var(--text-secondary);text-align:center}.breakdown-item.total .breakdown-label{color:var(--text-on-accent);font-weight:600}.breakdown-value{font-weight:700;font-size:1.1rem;color:var(--text-primary)}.breakdown-item.total .breakdown-value{color:var(--text-on-accent);font-size:1.3rem}.results-actions{display:flex;gap:16px;padding:0 20px 20px}.action-btn{flex:1;padding:16px;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s}.action-btn.primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));color:var(--text-on-accent)}.action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-md)}.action-btn.secondary{background:var(--bg-primary);color:var(--text-primary);border:2px solid var(--border-primary)}.action-btn.secondary:hover{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-on-accent)}.7w-game{display:flex;flex-direction:column;height:100%;max-width:900px;margin:0 auto}.7w-app{height:100%;width:100%}.monopoly-app .monopoly-menu{display:flex;flex-direction:column;width:100%;max-width:800px;margin:0 auto;padding:1rem;color:var(--text-primary)}.monopoly-app .menu-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.monopoly-app .menu-header h1{margin:0;font-size:1.75rem;color:var(--text-primary)}.monopoly-app .back-button{padding:.5rem 1rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.monopoly-app .back-button:hover{background-color:var(--bg-tertiary)}.monopoly-app .menu-content{display:flex;flex-direction:column;gap:1.5rem}.monopoly-app .loading-text,.monopoly-app .error-text{text-align:center;padding:1rem}.monopoly-app .error-text{color:var(--danger-primary)}.monopoly-app .active-games-section h2,.monopoly-app .new-game-section h2{margin:0 0 1rem;font-size:1.2rem;color:var(--text-primary)}.monopoly-app .games-list{display:flex;flex-direction:column;gap:.5rem}.monopoly-app .game-item{padding:1rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s}.monopoly-app .game-item:hover{background-color:var(--bg-tertiary);border-color:var(--accent-primary)}.monopoly-app .game-info-row{display:flex;flex-direction:column;gap:.25rem}.monopoly-app .player-names{font-weight:600;color:var(--text-primary)}.monopoly-app .game-meta{font-size:.85rem;color:var(--text-secondary)}.monopoly-app .game-date{font-size:.8rem;color:var(--text-tertiary)}.monopoly-app .new-game-section{background-color:var(--bg-secondary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-primary)}.monopoly-app .no-players{color:var(--text-secondary);font-style:italic}.monopoly-app .player-count-info{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.monopoly-app .player-selection{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.monopoly-app .player-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s}.monopoly-app .player-checkbox:hover{border-color:var(--accent-primary)}.monopoly-app .player-checkbox.selected{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.monopoly-app .player-checkbox input{display:none}.monopoly-app .start-button{width:100%;padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:background-color .2s}.monopoly-app .start-button:hover:not(:disabled){background-color:var(--accent-hover)}.monopoly-app .start-button:disabled{opacity:.5;cursor:not-allowed}.monopoly-app .game-info{background-color:var(--bg-secondary);padding:1.25rem;border-radius:8px;border:1px solid var(--border-primary)}.monopoly-app .game-info h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.monopoly-app .game-info p{margin:0 0 .75rem;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.monopoly-app .game-info ul{margin:0 0 .75rem;padding-left:1.25rem;color:var(--text-secondary);font-size:.9rem}.monopoly-app .game-info li{margin-bottom:.25rem}.monopoly-app .game-info .note{font-style:italic;color:var(--text-tertiary);margin-bottom:0}.monopoly-app .monopoly-board-view{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem;overflow-x:auto}.monopoly-app .board-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.monopoly-app .legend-item{display:flex;align-items:center;gap:.5rem}.monopoly-app .legend-color{width:16px;height:16px;border-radius:4px}.monopoly-app .legend-name{font-size:.85rem;color:var(--text-primary)}.monopoly-app .legend-name.bankrupt{text-decoration:line-through;color:var(--text-tertiary)}.monopoly-app .board-grid{display:flex;flex-direction:column;min-width:600px}.monopoly-app .board-row{display:flex}.monopoly-app .board-row.top,.monopoly-app .board-row.bottom{flex-direction:row}.monopoly-app .board-middle{display:flex}.monopoly-app .board-column{display:flex;flex-direction:column}.monopoly-app .board-column.left,.monopoly-app .board-column.right{width:60px}.monopoly-app .board-center{flex:1;display:flex;align-items:center;justify-content:center;min-height:180px;background-color:var(--bg-primary)}.monopoly-app .center-logo{font-size:1.5rem;font-weight:700;color:var(--text-tertiary);letter-spacing:.25rem}.monopoly-app .board-space{width:60px;height:50px;background-color:var(--bg-primary);border:1px solid var(--border-primary);display:flex;flex-direction:column;position:relative;overflow:hidden}.monopoly-app .board-row .board-space{flex-shrink:0}.monopoly-app .board-space.property .color-bar{height:10px;width:100%;flex-shrink:0}.monopoly-app .board-space .space-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;text-align:center}.monopoly-app .board-space .space-content.corner{font-weight:700}.monopoly-app .board-space .space-name{font-size:.55rem;line-height:1.1;color:var(--text-primary);word-break:break-word}.monopoly-app .board-space .space-price{font-size:.5rem;color:var(--text-secondary);font-family:monospace}.monopoly-app .board-space.owned{border-width:2px}.monopoly-app .board-space.mortgaged{opacity:.6}.monopoly-app .board-space .owner-marker{position:absolute;bottom:2px;right:2px;width:8px;height:8px;border-radius:50%;border:1px solid var(--bg-primary)}.monopoly-app .board-space.corner,.monopoly-app .board-space.tax,.monopoly-app .board-space.chance,.monopoly-app .board-space.community-chest{background-color:var(--bg-tertiary)}.monopoly-app .color-sets{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-primary)}.monopoly-app .color-set{display:flex;gap:.5rem;justify-content:center}.monopoly-app .set-color{width:20px;height:12px;border-radius:2px}@media(max-width:700px){.monopoly-app .board-grid{min-width:500px}.monopoly-app .board-space{width:50px;height:45px}.monopoly-app .board-column.left,.monopoly-app .board-column.right{width:50px}.monopoly-app .board-space .space-name{font-size:.5rem}.monopoly-app .board-space .space-price{font-size:.45rem}}.monopoly-app .monopoly-game{display:flex;flex-direction:column;gap:1rem;padding:0rem;max-width:800px;margin:0 auto;color:var(--text-primary)}.monopoly-app .game-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid var(--border-primary)}.monopoly-app .game-header h2{margin:0;font-size:1.5rem}.monopoly-app .exit-button{padding:.5rem 1rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s}.monopoly-app .exit-button:hover{background-color:var(--bg-tertiary)}.monopoly-app .header-spacer{width:60px}.monopoly-app .loading,.monopoly-app .error{text-align:center;padding:2rem;color:var(--text-secondary)}.monopoly-app .error{color:var(--danger-primary)}.monopoly-app .game-over-banner{background-color:var(--success);color:var(--text-on-accent);padding:1rem;border-radius:8px;text-align:center}.monopoly-app .game-over-banner h3{margin:0 0 .5rem}.monopoly-app .game-over-banner p{margin:0}.monopoly-app .free-parking-section{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.monopoly-app .free-parking-display{display:flex;align-items:center;gap:1rem}.monopoly-app .free-parking-display .label{font-weight:600;color:var(--text-secondary)}.monopoly-app .free-parking-display .amount{font-size:1.5rem;font-weight:700;color:var(--success)}.monopoly-app .free-parking-actions{display:flex;gap:.5rem;flex-wrap:wrap}.monopoly-app .add-to-parking{display:flex;gap:.25rem}.monopoly-app .add-to-parking input{width:80px;padding:.5rem;border:1px solid var(--border-primary);border-radius:4px;background-color:var(--bg-primary);color:var(--text-primary)}.monopoly-app .add-to-parking button,.monopoly-app .collect-btn{padding:.5rem .75rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.monopoly-app .add-to-parking button:hover,.monopoly-app .collect-btn:hover{background-color:var(--accent-hover)}.monopoly-app .add-to-parking button:disabled{opacity:.5;cursor:not-allowed}.monopoly-app .collect-btn{background-color:var(--success)}.monopoly-app .players-section h3{margin:0 0 .75rem;color:var(--text-primary)}.monopoly-app .players-list{display:flex;flex-direction:column;gap:.75rem}.monopoly-app .player-card{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem}.monopoly-app .player-card.current{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.monopoly-app .player-card.bankrupt{opacity:.6;background-color:var(--bg-tertiary)}.monopoly-app .player-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.monopoly-app .player-name{font-weight:600;font-size:1.1rem}.monopoly-app .bankrupt-badge{background-color:var(--danger-primary);color:var(--text-on-accent);padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.monopoly-app .player-finances{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.monopoly-app .finance-row{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary)}.monopoly-app .finance-row.total{font-weight:600;color:var(--text-primary);border-top:1px solid var(--border-primary);padding-top:.25rem;margin-top:.25rem}.monopoly-app .money{font-family:monospace;color:var(--success)}.monopoly-app .player-properties{border-top:1px solid var(--border-primary);padding-top:.75rem}.monopoly-app .properties-label{font-size:.85rem;color:var(--text-secondary);display:block;margin-bottom:.5rem}.monopoly-app .properties-list{display:flex;flex-direction:column;gap:.5rem}.monopoly-app .property-tag{display:flex;align-items:center;justify-content:space-between;padding:.5rem;background-color:var(--bg-primary);border:1px solid var(--border-primary);border-left-width:4px;border-radius:4px;font-size:.85rem}.monopoly-app .property-tag.mortgaged{opacity:.7;background-color:var(--bg-tertiary)}.monopoly-app .property-tag.mortgaged .property-name:after{content:" (M)";color:var(--danger-primary);font-weight:600}.monopoly-app .mortgage-btn{padding:.25rem .5rem;font-size:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:4px;cursor:pointer;color:var(--text-primary)}.monopoly-app .mortgage-btn:hover{background-color:var(--bg-tertiary)}.monopoly-app .board-section h3,.monopoly-app .actions-section h3{margin:0 0 .75rem}.monopoly-app .action-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.monopoly-app .action-buttons button{padding:.75rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.monopoly-app .action-buttons button:hover{background-color:var(--accent-hover)}.monopoly-app .action-buttons button.danger{background-color:var(--danger-primary)}.monopoly-app .action-buttons button.danger:hover{background-color:var(--danger-hover)}.monopoly-app .action-buttons button.secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary)}.monopoly-app .action-buttons button.secondary:hover{background-color:var(--bg-tertiary)}.monopoly-app .modal-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.monopoly-app .modal{background-color:var(--bg-primary);border-radius:12px;padding:1.5rem;max-width:500px;width:100%;max-height:80vh;overflow-y:auto}.monopoly-app .modal h3{margin:0 0 1rem;color:var(--text-primary)}.monopoly-app .modal p{color:var(--text-secondary);margin:0 0 1rem}.monopoly-app .form-group{margin-bottom:1rem}.monopoly-app .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary)}.monopoly-app .form-group input{width:100%;padding:.75rem;border:1px solid var(--border-primary);border-radius:6px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:1rem}.monopoly-app .player-select{display:flex;flex-wrap:wrap;gap:.5rem}.monopoly-app .player-option{padding:.5rem 1rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;color:var(--text-primary);transition:all .2s}.monopoly-app .player-option:hover{border-color:var(--accent-primary)}.monopoly-app .player-option.selected{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.monopoly-app .property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;margin-bottom:1rem}.monopoly-app .property-buy-btn{display:flex;flex-direction:column;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-left-width:4px;border-radius:6px;cursor:pointer;text-align:left;transition:all .2s}.monopoly-app .property-buy-btn:hover:not(:disabled){border-color:var(--accent-primary)}.monopoly-app .property-buy-btn:disabled{opacity:.5;cursor:not-allowed}.monopoly-app .property-buy-btn .name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.monopoly-app .property-buy-btn .price{font-size:.8rem;color:var(--success);font-family:monospace}.monopoly-app .property-buy-btn .mortgaged-label{font-size:.7rem;color:var(--danger-primary)}.monopoly-app .modal-actions{display:flex;gap:.5rem;margin-top:1rem}.monopoly-app .modal-actions button{flex:1;padding:.75rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s}.monopoly-app .modal-actions button:first-child{background-color:var(--accent-primary);color:var(--text-on-accent)}.monopoly-app .modal-actions button:first-child:hover:not(:disabled){background-color:var(--accent-hover)}.monopoly-app .modal-actions button:first-child:disabled{opacity:.5;cursor:not-allowed}.monopoly-app .modal-actions button.secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary)}.monopoly-app .modal-actions button.danger{background-color:var(--danger-primary);color:var(--text-on-accent)}.monopoly-app .close-btn{width:100%;padding:.75rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;font-size:1rem}.monopoly-app .close-btn:hover{background-color:var(--bg-tertiary)}.monopoly-app .end-game-preview{background-color:var(--bg-secondary);border-radius:8px;padding:1rem;margin-bottom:1rem}.monopoly-app .preview-player{display:flex;justify-content:space-between;padding:.5rem;border-radius:4px}.monopoly-app .preview-player.leader{background-color:var(--success);color:var(--text-on-accent);font-weight:600}.monopoly-app .transactions-section{background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem}.monopoly-app .transactions-section h3{margin:0 0 .75rem;font-size:1rem}.monopoly-app .transactions-list{display:flex;flex-direction:column;gap:.5rem}.monopoly-app .transaction{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background-color:var(--bg-primary);border-radius:4px;font-size:.85rem}.monopoly-app .tx-description{color:var(--text-primary)}.monopoly-app .tx-time{color:var(--text-tertiary);font-size:.75rem}.monopoly-app .fab-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:100}.monopoly-app .fab-backdrop{position:fixed;inset:0;background-color:var(--shadow-md);z-index:99}.monopoly-app .fab-button{width:56px;height:56px;border-radius:50%;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px var(--shadow-md);transition:all .2s ease;position:relative;left:0;top:0;z-index:102}.monopoly-app .fab-button:hover{background-color:var(--accent-hover);transform:scale(1.05)}.monopoly-app .fab-button.open{background-color:var(--text-secondary)}.monopoly-app .fab-main-icon{font-size:1.5rem;font-weight:700;line-height:1;transition:transform .2s ease}.monopoly-app .fab-button.open .fab-main-icon{transform:rotate(45deg)}.monopoly-app .fab-menu{position:absolute;bottom:0;right:70px;display:flex;flex-direction:column;gap:.5rem;z-index:101;animation:fab-slide-in .2s ease}@keyframes fab-slide-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes fab-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.monopoly-app .fab-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:28px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px var(--shadow-xs);transition:all .2s ease;margin-left:auto}.monopoly-app .fab-item:hover{background-color:var(--bg-secondary);transform:scale(1.02)}.monopoly-app .fab-item.danger{color:var(--danger-primary)}.monopoly-app .fab-item.danger:hover{background-color:var(--danger-primary);color:var(--text-on-accent)}.monopoly-app .fab-item.secondary{color:var(--text-secondary)}.monopoly-app .fab-icon{font-size:1.1rem}.monopoly-app .fab-label{font-size:.9rem;font-weight:500;color:inherit}.monopoly-app .modal-description{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}.monopoly-app .quick-amounts{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.monopoly-app .quick-label{font-size:.85rem;color:var(--text-secondary)}.monopoly-app .quick-amount-btn{padding:.4rem .75rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--text-primary);transition:all .2s}.monopoly-app .quick-amount-btn:hover{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}@media(max-width:600px){.monopoly-app .fab-container{bottom:1rem;right:1rem}.monopoly-app .fab-button{width:50px;height:50px}.monopoly-app .fab-item{padding:.6rem .875rem}}.monopoly-app{width:100%;max-width:100%;min-height:100%;display:flex;flex-direction:column}.memory-app{width:100%;min-height:100%;display:flex;flex-direction:column}.memory-menu{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:1.5rem;max-width:500px;margin:0 auto}.memory-menu h1{margin:0;font-size:2rem;color:var(--text-primary);text-align:center}.memory-menu .menu-description{margin:0;color:var(--text-secondary);text-align:center;font-size:1rem}.memory-menu .difficulty-selection{width:100%;text-align:center}.memory-menu .difficulty-selection h2{margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary)}.memory-menu .difficulty-buttons{display:flex;flex-direction:column;gap:.75rem}.memory-menu .difficulty-button{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;background-color:var(--bg-secondary);border:2px solid var(--border-secondary);border-radius:8px;cursor:pointer;transition:all var(--transition-speed) var(--transition-ease)}.memory-menu .difficulty-button:hover{border-color:var(--accent-primary);background-color:var(--accent-light)}.memory-menu .difficulty-label{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.memory-menu .difficulty-info{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem}.memory-menu .back-button{padding:.75rem 1.5rem;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-secondary);border-radius:6px;cursor:pointer;font-size:1rem;transition:all var(--transition-speed) var(--transition-ease);margin-top:1rem}.memory-menu .back-button:hover{background-color:var(--bg-secondary);color:var(--text-primary)}@media(max-width:480px){.memory-menu{padding:1rem}.memory-menu h1{font-size:1.5rem}.memory-menu .difficulty-button{padding:.75rem 1rem}}.memory-game{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:900px;margin:0 auto;min-height:100%}.memory-game .game-header{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.memory-game .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.memory-game .game-header button{padding:.5rem 1rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color var(--transition-speed) var(--transition-ease);white-space:nowrap}.memory-game .game-header button:hover{background-color:var(--accent-hover)}.memory-game .game-stats{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;width:100%}.memory-game .stat-item{display:flex;flex-direction:column;align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-secondary);padding:.5rem 1rem;border-radius:6px;min-width:70px}.memory-game .stat-item.best-score{background-color:var(--highlight-light);border-color:var(--highlight-primary)}.memory-game .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700}.memory-game .stat-value{font-size:1.25rem;color:var(--text-primary);font-weight:700;margin-top:.25rem}.memory-game .stat-player{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-weight:400}.memory-game .game-instructions{color:var(--text-secondary);font-size:.9rem;text-align:center;max-width:500px}.memory-game .card-grid{display:grid;gap:8px;width:100%;max-width:600px;padding:10px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-secondary)}.memory-game .card{aspect-ratio:1;perspective:1000px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.memory-game .card-inner{position:relative;width:100%;height:100%;transition:transform .5s var(--transition-ease);transform-style:preserve-3d}.memory-game .card.flipped .card-inner{transform:rotateY(180deg)}.memory-game .card-front,.memory-game .card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px var(--shadow-sm)}.memory-game .card-front{background-color:var(--cell-bg);border:2px solid var(--border-secondary);transform:rotateY(180deg)}.memory-game .card-back{background:linear-gradient(135deg,var(--accent-primary),var(--accent-hover));border:2px solid var(--accent-primary)}.memory-game .card:not(.flipped):not(.matched):hover .card-back{background:linear-gradient(135deg,var(--accent-hover),var(--accent-primary));box-shadow:0 4px 8px var(--shadow-md)}.memory-game .card.matched .card-front{background-color:var(--success-light);border-color:var(--success)}.memory-game .card.matched .card-inner{animation:match-pulse .4s ease}@keyframes match-pulse{0%,to{transform:rotateY(180deg) scale(1)}50%{transform:rotateY(180deg) scale(1.1)}}.memory-game .card-emoji{font-size:clamp(1.5rem,5vw,2.5rem);line-height:1}.memory-game .card-pattern{font-size:clamp(1.5rem,5vw,2rem);color:var(--text-on-accent);font-weight:700;opacity:.8}.memory-game .game-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:100}.memory-game .overlay-content{background-color:var(--bg-primary);border-radius:12px;padding:2rem;text-align:center;box-shadow:0 4px 20px var(--shadow-modal);max-width:90%;width:300px}.memory-game .overlay-content h2{margin:0 0 1rem;color:var(--success);font-size:1.75rem}.memory-game .overlay-content p{margin:.5rem 0;color:var(--text-primary);font-size:1.1rem}.memory-game .overlay-buttons{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.memory-game .primary-button{padding:.75rem 1.5rem;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:700;transition:background-color var(--transition-speed) var(--transition-ease)}.memory-game .primary-button:hover{background-color:var(--accent-hover)}.memory-game .secondary-button{padding:.75rem 1.5rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color var(--transition-speed) var(--transition-ease)}.memory-game .secondary-button:hover{background-color:var(--cell-hover)}@media(max-width:480px){.memory-game{padding:.5rem}.memory-game .game-header{flex-wrap:wrap;gap:.5rem}.memory-game .game-header h2{font-size:1.25rem;order:-1;width:100%;text-align:center}.memory-game .game-header button{flex:1;padding:.5rem;font-size:.9rem}.memory-game .game-stats{gap:.5rem}.memory-game .stat-item{padding:.4rem .6rem;min-width:60px}.memory-game .stat-value{font-size:1rem}.memory-game .card-grid{gap:4px;padding:6px}}.wordsearch-grid{display:inline-grid;grid-template-columns:repeat(15,1fr);gap:2px;padding:8px;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--shadow-xs);-webkit-user-select:none;user-select:none;touch-action:none;width:min(90vw,550px);height:min(90vw,550px);box-sizing:border-box;position:relative;z-index:1}.wordsearch-grid-row{display:contents}.wordsearch-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-size:clamp(10px,2.5vw,16px);font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.wordsearch-cell:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.wordsearch-cell.selected{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.wordsearch-cell.found{background:var(--success);color:var(--text-on-accent);border-color:var(--success);animation:none}.wordsearch-cell.found.selected{opacity:1}.theme-selector-list{max-height:70vh;overflow-y:auto;padding:8px 0}.theme-selector-category-group{margin-bottom:24px}.theme-selector-category-group:last-child{margin-bottom:0}.theme-selector-category-header{font-size:14px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.5px;padding:8px 16px;margin:0 0 8px;background:var(--surface-1);border-radius:8px;position:sticky;top:0}.theme-selector-items{display:flex;flex-direction:column;gap:4px}.theme-selector-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface-1);border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all .15s ease;text-align:left;font-size:17px;font-weight:500;color:var(--text-primary);min-height:56px}.theme-selector-item:hover{background:var(--surface-2);border-color:var(--primary);transform:translate(4px)}.theme-selector-item.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}.theme-selector-item:active{transform:scale(.98);background:var(--surface-3)}@media(max-width:768px){.theme-selector-list{max-height:75vh}.theme-selector-category-header{font-size:13px;padding:10px 16px}.theme-selector-item{padding:18px 16px;font-size:16px;min-height:60px}}.wordsearch-app{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0;background:var(--bg-primary);color:var(--text-primary)}.wordsearch-app .game-header-right{justify-content:flex-end}.wordsearch-content{display:flex;flex-direction:column;align-items:center;gap:15px;width:100%;max-width:600px;margin-top:10px}.wordsearch-theme-info{text-align:center;padding:10px 20px;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--shadow-xs)}.wordsearch-theme-category{font-size:clamp(1rem,4vw,1.5rem);font-weight:700;color:var(--accent-primary);text-transform:uppercase;letter-spacing:2px}.wordsearch-found-words{width:100%;max-width:600px;padding:15px 20px;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--shadow-xs)}.wordsearch-found-words h3{margin:0 0 10px;font-size:1.2rem;color:var(--accent-primary);text-align:center}.wordsearch-found-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:40px}.wordsearch-found-item{padding:6px 12px;background:var(--success);color:var(--text-on-accent);border-radius:4px;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;animation:foundPop .3s ease-out;display:inline-flex;align-items:center;justify-content:center;line-height:1}@keyframes foundPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.wordsearch-found-empty{color:var(--text-secondary);font-style:italic;margin:0}.wordsearch-hint-button{margin-top:1rem;padding:.75rem 1.5rem;background:var(--accent-secondary);color:var(--text-on-accent);border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%;max-width:300px;display:block;margin-left:auto;margin-right:auto}.wordsearch-hint-button:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-xs)}.wordsearch-hint-list{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:8px;border:2px dashed var(--accent-secondary);overflow:visible;max-height:none}.wordsearch-hint-list h4{margin:0 0 .75rem;font-size:1rem;color:var(--accent-secondary);text-align:center;font-weight:600}.wordsearch-hint-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.wordsearch-hint-item{padding:6px 12px;background:var(--accent-secondary);color:var(--text-on-accent);border-radius:4px;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;animation:hintPop .3s ease-out;display:inline-flex;align-items:center;justify-content:center;line-height:1;opacity:.85}@keyframes hintPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:.85}}.wordsearch-app .modal-content{padding:1rem}.wordsearch-app .modal-content p{margin:0 0 .5rem;color:var(--text-primary)}.wordsearch-app .modal-subtext{color:var(--text-secondary);font-size:.9rem}.wordsearch-app .modal-buttons{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.wordsearch-app .modal-btn{padding:.5rem 1.25rem;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.wordsearch-app .modal-btn.cancel{background:var(--bg-secondary);color:var(--text-primary)}.wordsearch-app .modal-btn.cancel:hover{background:var(--bg-tertiary)}.wordsearch-app .modal-btn.confirm{background:var(--accent-primary);color:var(--text-on-accent)}.wordsearch-app .modal-btn.confirm:hover{background:var(--accent-hover)}@media(max-width:768px){.wordsearch-app{padding:10px}.wordsearch-content{gap:15px}.wordsearch-theme-info{padding:10px 20px}.wordsearch-theme-category{font-size:1.2rem}.wordsearch-found-words{padding:10px 15px}.wordsearch-found-words h3{font-size:1rem}}@media(max-width:480px){.wordsearch-theme-category{font-size:1rem}.wordsearch-found-words{padding:8px 12px}.wordsearch-found-words h3{font-size:.9rem}.wordsearch-found-item{padding:4px 8px;font-size:.8rem}}.wordsearch-game-app{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:var(--bg-primary)}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.app .game-container{width:100%;padding:2rem;box-sizing:border-box}@media(max-width:768px){.app .game-container{padding:0}}
