*{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-secondary: #f8f9fa;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--border-primary: #2c3e50;--border-secondary: #95a5a6;--accent-primary: #3498db;--accent-hover: #2980b9;--accent-secondary: #9b59b6;--accent-secondary-hover: #8e44ad;--accent-light: rgba(52, 152, 219, .2);--border-color: var(--border-secondary);--success: #4caf50;--success-hover: #45a049;--success-light: rgba(76, 175, 80, .3);--danger-primary: #e74c3c;--danger-hover: #c0392b;--danger-text: #ff6b6b;--danger-light: rgba(231, 76, 60, .2);--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;--highlight-primary: #ffcc00;--highlight-light: rgba(255, 204, 0, .2);--highlight-medium: rgba(255, 204, 0, .5);--highlight-strong: rgba(255, 204, 0, .8);--board-square-light: #f0d9b5;--board-square-dark: #b58863;--board-square-dark-hover: #a07855;--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-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-strong: rgba(255, 255, 255, .8);--cell-bg: #ffffff;--cell-locked: #d5dbdb;--cell-hover: #ecf0f1;--cell-selected: #a8d5ff;--cell-highlight: #f8e5a0;--control-bg: #95a5a6;--control-hover: #7f8c8d;--number-pad-bg: #ecf0f1;--number-pad-border: #bdc3c7;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-secondary: #2d2d2d;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--border-primary: #404040;--border-secondary: #505050;--accent-primary: #4a9eff;--accent-hover: #3a8eef;--accent-secondary: #9b59b6;--accent-secondary-hover: #8e44ad;--accent-light: rgba(74, 158, 255, .2);--border-color: var(--border-secondary);--success: #4caf50;--success-hover: #45a049;--success-light: rgba(76, 175, 80, .3);--danger-primary: #e74c3c;--danger-hover: #c0392b;--danger-text: #ff6b6b;--danger-light: rgba(231, 76, 60, .2);--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;--highlight-primary: #ffcc00;--highlight-light: rgba(255, 204, 0, .2);--highlight-medium: rgba(255, 204, 0, .5);--highlight-strong: rgba(255, 204, 0, .8);--board-square-light: #f0d9b5;--board-square-dark: #b58863;--board-square-dark-hover: #a07855;--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-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-strong: rgba(255, 255, 255, .8);--cell-bg: #2d2d2d;--cell-locked: #3a3a3a;--cell-hover: #404040;--cell-selected: #2d5f8a;--cell-highlight: #5a4a20;--control-bg: #404040;--control-hover: #505050;--number-pad-bg: #353535;--number-pad-border: #505050}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%}button{border-radius:8px;border:none;font-family:inherit;cursor:pointer;transition:all .2s}button:focus,button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.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%;max-width:600px;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)}.user-info{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px var(--shadow-sm)}.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:#fff;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:flex;flex-direction:column;gap:1rem;width:100%;max-width:500px}.game-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.play-game-button{flex:1;min-width:200px;padding:1rem;font-size:1.1rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s;position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem}.play-game-button:hover{background-color:var(--accent-hover)}.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{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:#fff;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)}}.stats-button{width:100%;max-width:500px;padding:1rem;font-size:1.1rem;background-color:var(--accent-secondary);color:#fff;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)}@media(max-width:600px){.menu h1{font-size:2rem}.game-row{flex-direction:column}.play-game-button{width:100%}}.auth-container{display:flex;align-items:center;justify-content:center;min-height:90vh;padding:1rem;background:var(--bg-primary)}.auth-box{background:var(--bg-secondary);padding:2rem;border-radius:12px;box-shadow:0 8px 16px var(--shadow-md);width:100%;max-width:400px}.auth-box h1{text-align:center;margin:0 0 .5rem;font-size:2.5rem;color:var(--text-primary)}.auth-box h2{text-align:center;margin:0 0 1.5rem;font-size:1.5rem;color:var(--text-secondary);font-weight:400}.auth-error{background-color:var(--danger-primary);color:#fff;padding:.75rem;border-radius:6px;margin-bottom:1rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:500}.form-group input{width:100%;padding:.75rem;border:2px solid var(--border-secondary);border-radius:6px;background-color:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--accent-primary)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.auth-button{width:100%;padding:.875rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.auth-button:hover:not(:disabled){background-color:var(--accent-hover)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:1.5rem;color:var(--text-secondary)}.toggle-button{background:none;border:none;color:var(--accent-primary);cursor:pointer;font-size:1rem;text-decoration:underline;padding:0}.toggle-button:hover:not(:disabled){color:var(--accent-hover)}.toggle-button:disabled{opacity:.6;cursor:not-allowed}.stats-app .stats-container{padding:2rem;max-width:1200px;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:#fff;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-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}.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(200px,1fr));gap:1rem}.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-color:var(--bg-secondary)}.stats-app .no-data{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.stats-app .matchups-table-wrapper{overflow-x:auto}.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)}.stats-app .wins{color:var(--success)}.stats-app .losses{color:var(--danger-text)}.stats-app .no-games{color:var(--text-secondary);font-style:italic}@media(max-width:768px){.stats-app .stats-container{padding:1rem}.stats-app .stats-header{flex-direction:column;gap:1rem;text-align:center}.stats-app .stats-header h1{font-size:2rem}.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 .matchups-table{font-size:.85rem}.stats-app .matchups-table th,.stats-app .matchups-table td{padding:.5rem}.stats-app .matchups-table th:first-child{min-width:100px}.stats-app .matchups-table th:not(:first-child){min-width:80px}}.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}.sudoku-app .back-button{padding:.5rem 1rem;font-size:1rem;background-color:var(--control-bg);color:#fff;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 .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:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s}.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:#fff;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:#fff;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 .difficulty-row{flex-direction:column}.sudoku-app .play-button,.sudoku-app .scores-button{width:100%}}.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}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--bg-primary);color:var(--text-primary);padding:2rem;border-radius:12px;max-width:500px;width:90%;box-shadow:0 8px 32px var(--shadow-modal);animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{margin:0 0 1.5rem;font-size:1.5rem;text-align:center}.modal-body{margin-bottom:1.5rem;line-height:1.6}.modal-close{width:100%;padding:.75rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s}.modal-close:hover{background-color:var(--accent-hover)}.modal-close: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:#fff;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:#e74c3cf2;border:1px solid var(--danger-text)}.toast-error:hover{background-color:#c0392bf2}.sudoku-app .game{display:flex;flex-direction:column;align-items:center;padding:1rem;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:#fff;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-primary);padding:6px;border:3px solid var(--border-primary);box-shadow:0 4px 6px var(--shadow-md)}.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(--cell-bg);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;font-weight:700;position:relative;min-width:40px;min-height:40px;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(--cell-selected)!important;color:#fff}.sudoku-app .cell.highlighted{background-color:var(--cell-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,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px;gap:1px}.sudoku-app .option{font-size:clamp(.5rem,1.5vw,.7rem);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.sudoku-app .option-empty{display:block}.sudoku-app .controls{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:600px}.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:#fff;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 .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:#fff}.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:500px;height:500px}.sudoku-app .cell{min-width:50px;min-height:50px}}@media(max-width:600px){.sudoku-app .game-header{flex-wrap:wrap;justify-content:center}.sudoku-app .game-header h2{width:100%;text-align:center}}.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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;filter:drop-shadow(0 0 1px black)}.chess-app .piece.black{color:#000;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:#fff;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:#fff;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 .game-header{flex-direction:column;justify-content:center;gap:.5rem}.chess-app .game-header h2{position:static;transform:none;width:100%;text-align:center}}.checkers-app{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:gold;box-shadow:0 2px 4px var(--shadow-md);position:relative}.checkers-game .piece.red{background:radial-gradient(circle at 30% 30%,#ff6b6b,#c92a2a);border:2px solid #8b0000}.checkers-game .piece.black{background:radial-gradient(circle at 30% 30%,#4a4a4a,#1a1a1a);border:2px solid #000000}.checkers-game .piece.king{box-shadow:0 0 10px #ffd700cc,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:#fff;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 .game-header{flex-direction:column;gap:.5rem}.checkers-game .game-header h2{position:static;transform:none;font-size:1.2rem}.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:#fff;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:#fff;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:#f44;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1rem}.stratego-app .exit-button:hover{background-color:#c00}.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:#f44;color:#fff}.stratego-app .player-color.blue{background-color:#44f;color:#fff}.stratego-app .placement-container{display:flex;gap:20px;flex-wrap:wrap}.stratego-app .placement-board-section{flex:1;min-width:500px;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:#8b7355;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:#a0826d;transform:scale(1.05)}.stratego-app .placement-board .board-cell.occupied{background-color:#5b4835}.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 #ff4444}.stratego-app .placement-board .piece.blue{border:2px solid #4444ff}.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:#fff}.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:#fff;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 .available-pieces-section{flex:1;min-width:300px;max-width:400px;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:#900;border-color:#f44}.stratego-app .available-piece.blue{color:#009;border-color:#44f}.stratego-app .available-piece:hover{background-color:#fff;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 .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;margin-bottom:2rem}.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-color:#2c3e50;cursor:not-allowed}.stratego-app .board-cell.lake:hover{background-color:#2c3e50}.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:#fff}.stratego-app .piece.blue{background-color:var(--accent-primary);color:#fff}.stratego-app .piece.hidden{background:linear-gradient(135deg,#34495e 25%,#2c3e50 25% 50%,#34495e 50% 75%,#2c3e50 75%,#2c3e50);background-size:10px 10px;color:#ecf0f1;font-size:1.5rem}.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%}.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);cursor:help;transition:all .2s;text-align:center}.stratego-app .legend-item:hover{background-color:var(--surface-hover);transform:translateY(-2px);box-shadow:0 2px 8px var(--shadow-sm)}@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(3,1fr)}.stratego-app .legend-item{font-size:.75rem;padding:.3rem}}.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;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:#c00;border:1px solid #ff4444}.stratego-app .captured-piece.blue{color:#00c;border:1px solid #4444ff}.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:#fff;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:#fff;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)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.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:#fff;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:#fff;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%,rgba(231,76,60,.4) 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:#00f}.minesweeper-app .cell-number-2{color:green}.minesweeper-app .cell-number-3{color:red}.minesweeper-app .cell-number-4{color:navy}.minesweeper-app .cell-number-5{color:maroon}.minesweeper-app .cell-number-6{color:teal}.minesweeper-app .cell-number-7{color:#000}.minesweeper-app .cell-number-8{color:gray}[data-theme=dark] .minesweeper-app .cell-number-1{color:#4d9fff}[data-theme=dark] .minesweeper-app .cell-number-2{color:#4caf50}[data-theme=dark] .minesweeper-app .cell-number-3{color:#ff6b6b}[data-theme=dark] .minesweeper-app .cell-number-4{color:#5e9ed6}[data-theme=dark] .minesweeper-app .cell-number-5{color:#ff8a80}[data-theme=dark] .minesweeper-app .cell-number-6{color:#4dd0e1}[data-theme=dark] .minesweeper-app .cell-number-7{color:#e0e0e0}[data-theme=dark] .minesweeper-app .cell-number-8{color:#bdbdbd}.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,660px);height:min(50vh,352px)}.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}}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}
