*{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;--success: #27ae60;--success-hover: #229954;--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;--success: #2ecc71;--success-hover: #27ae60;--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 rgba(0,0,0,.3)}.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 #0003;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 #0003}.username{color:var(--text-primary);font-size:1.1rem;font-weight:500;flex:1}.logout-button{padding:.5rem 1rem;background-color:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.logout-button:hover{background-color:#c0392b}.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}.play-game-button:hover{background-color:var(--accent-hover)}.play-game-button.dev-only{background-color:#9b59b6;display:flex;align-items:center;justify-content:center;gap:.5rem}.play-game-button.dev-only:hover{background-color:#8e44ad}.dev-badge{background-color:#fff3;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700}@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 #0000004d;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:#e74c3c;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}.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:#000000b3;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-color, #1e1e1e);color:var(--text-color, #ffffff);padding:2rem;border-radius:12px;max-width:500px;width:90%;box-shadow:0 8px 32px #0006;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:#4a9eff;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s}.modal-close:hover{background-color:#357abd}.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:#1e1e1ef2;color:#fff;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 4px 16px #0000004d;font-size:.95rem;max-width:400px;word-wrap:break-word;animation:toastSlideIn .3s ease-out;pointer-events:auto;cursor:pointer;border:1px solid rgba(255,255,255,.1)}@keyframes toastSlideIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.toast:hover{background-color:#282828f2}.toast-error{background-color:#dc2626f2;border:1px solid rgba(239,68,68,.5)}.toast-error:hover{background-color:#b91c1cf2}.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 #0000004d}.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:#fffc}@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 rgba(0,0,0,.3)}.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:#0003;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:#4ade80;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:#0003;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:#ff6b6b}.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 #0000004d}.chess-app .start-button:hover:not(:disabled){background-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 8px #0006}.chess-app .start-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000004d}.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}.chess-app .game-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.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 #0000004d;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:#b58863}.chess-app .cell.white{background-color:#f0d9b5}.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:#0000004d;border-radius:50%;pointer-events:none}.chess-app .cell.valid-move:has(.piece):after{width:90%;height:90%;border:3px solid rgba(0,0,0,.3);background-color:transparent;border-radius:0}.chess-app .cell.last-move{background-color:#ff06!important}.chess-app .cell.last-move.black{background-color:#b58863b3!important;box-shadow:inset 0 0 0 3px #ffff0080}.chess-app .cell.last-move.white{background-color:#f0d9b5b3!important;box-shadow:inset 0 0 0 3px #ffff0080}.chess-app .piece{-webkit-user-select:none;user-select:none;pointer-events:none;text-shadow:0 2px 4px rgba(0,0,0,.3);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:#e74c3c;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 #00000080;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:#000000b3;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 #00000080;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-wrap:wrap;justify-content:center}.chess-app .game-header h2{width:100%;text-align:center}}.stratego-app{background:linear-gradient(135deg,#1a1a2e,#16213e)}.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 rgba(0,0,0,.3)}.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:#e74c3c}.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:#ffffff1a;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:#333;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:#ffffffe6;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:#666;color:#fff}.stratego-app .placement-actions button:not(.submit-button):hover:not(:disabled){background-color:#888}.stratego-app .placement-actions .submit-button{background-color:#4a4;color:#fff;font-weight:700}.stratego-app .placement-actions .submit-button:hover:not(:disabled){background-color:#6c6;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.stratego-app .placement-actions button:disabled{background-color:#444;color:#888;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:#ffffff0d;border-radius:8px}.stratego-app .piece-group{background-color:#ffffff1a;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 rgba(255,255,255,.2)}.stratego-app .piece-name{font-weight:700;font-size:.9rem}.stratego-app .piece-count{color:#aaa;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:#ffffffd9;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 #0000004d}.stratego-app .available-piece.selected{border-color:#fc0;background-color:#ffc;transform:scale(1.15);box-shadow:0 0 15px #fc0c}@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:#e74c3c33;border-color:#e74c3c}.stratego-app .player-card.blue{background-color:#3498db33;border-color:#3498db}.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:#e74c3c}.stratego-app .turn-dot.blue{background-color:#3498db}.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:#2ecc714d;cursor:pointer}.stratego-app .board-cell.valid-move:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background-color:#2ecc71}.stratego-app .board-cell.last-move-from{box-shadow:inset 0 0 0 3px #ffd70099;background-color:#ffd70033}.stratego-app .board-cell.last-move-to{box-shadow:inset 0 0 0 3px #ffd700cc;background-color:#ffd7004d}.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:#e74c3c;color:#fff}.stratego-app .piece.blue{background-color:#3498db;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 #0003}@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:#0000004d;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 rgba(255,255,255,.2)}.stratego-app .graveyard-bottom{margin-top:10px;border:2px solid rgba(255,255,255,.3)}.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:#fffc;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}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem}
