@import"https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap";.username-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#121212;color:#e0e0e0}.username-card{background-color:#1e1e1e;border-radius:8px;padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 4px 6px #0000004d;text-align:center}.username-card h1{font-size:1.8rem;margin-bottom:.5rem}.username-subtitle{color:#aaa;margin-bottom:1.5rem;font-size:.95rem}.username-form{display:flex;flex-direction:column;gap:.75rem}.username-input{padding:.75rem 1rem;border-radius:4px;border:1px solid #333;background-color:#2c2c2c;color:#fff;font-size:1rem;text-align:center;outline:none;transition:border-color .2s}.username-input:focus{border-color:#03dac6}.username-input.input-error{border-color:#cf6679}.username-error{color:#cf6679;font-size:.8rem;margin:0}.home-page{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;background-color:#121212;color:#e0e0e0;padding:2rem 1rem}.home-layout{display:flex;gap:2rem;width:100%;max-width:960px;align-items:flex-start}.home-container{display:flex;flex-direction:column;gap:1.5rem;padding:2rem;background-color:#1e1e1e;border-radius:8px;box-shadow:0 4px 6px #0000004d;flex:0 0 320px}.home-header{display:flex;flex-direction:column;align-items:center;gap:.5rem}.home-container h1{display:flex;align-items:center;gap:1rem;margin:0;font-size:1.6rem}.home-icon{width:28px;height:28px;filter:invert(1)}.username-display{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#aaa}.username-display span{color:#03dac6;font-weight:600}.btn-link{background:none;border:none;color:#aaa;cursor:pointer;font-size:.8rem;text-decoration:underline;padding:0}.btn-link:hover{color:#e0e0e0}.actions{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;width:100%}.btn-primary{padding:.75rem 1.5rem;background-color:#03dac6;color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:700;font-size:1rem;transition:background-color .2s;width:100%}.btn-primary:hover:not(:disabled){background-color:#018786}.btn-primary:disabled{background-color:#555;cursor:not-allowed}.btn-secondary{padding:.75rem 1.5rem;background-color:transparent;color:#bb86fc;border:1px solid #bb86fc;border-radius:4px;cursor:pointer;font-weight:700;font-size:1rem;transition:background-color .2s,color .2s;width:100%}.btn-secondary:hover:not(:disabled){background-color:#bb86fc;color:#000}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.separator{text-align:center;color:#aaa;font-size:.9rem}.join-form{display:flex;gap:.5rem;width:100%}.join-form input{flex:1;padding:.5rem;border:1px solid #333;border-radius:4px;background-color:#2c2c2c;color:#fff;text-transform:uppercase;text-align:center;font-family:monospace}.join-form button{padding:.5rem 1rem;background-color:#bb86fc;color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:700}.join-form button:disabled{background-color:#555;cursor:not-allowed}.connecting-msg{color:#aaa;font-size:.85rem;text-align:center;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.error-message{color:#cf6679;font-size:.9rem;text-align:center}.leaderboard-panel{flex:1;background-color:#1e1e1e;border-radius:8px;box-shadow:0 4px 6px #0000004d;padding:1.5rem}.leaderboard-panel h2{margin:0 0 1rem;font-size:1.2rem;color:#03dac6}.lb-empty{color:#666;font-size:.9rem}.lb-table{width:100%;border-collapse:collapse;font-size:.9rem}.lb-table th,.lb-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #2c2c2c}.lb-table th{color:#888;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.lb-table tr:last-child td{border-bottom:none}.lb-table tr.lb-self td{color:#03dac6;font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100}.modal-card{background:#1e1e1e;border-radius:8px;padding:2rem;width:100%;max-width:360px;box-shadow:0 8px 32px #00000080}.modal-card h3{margin:0 0 1.25rem;font-size:1.2rem}.modal-checkbox-label{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.95rem}.modal-checkbox-label input{width:16px;height:16px;cursor:pointer;accent-color:#03dac6}.modal-hint{font-size:.8rem;color:#888;margin:.5rem 0 1.25rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.modal-actions .btn-secondary{width:auto;padding:.5rem 1rem}.modal-actions .btn-primary{width:auto;padding:.5rem 1.25rem}@media (max-width: 700px){.home-layout{flex-direction:column}.home-container{flex:none;width:100%}}.public-rooms-page{display:flex;align-items:flex-start;justify-content:center;min-height:100vh;background-color:#121212;color:#e0e0e0;padding:2rem 1rem}.public-rooms-container{background-color:#1e1e1e;border-radius:8px;padding:2rem;width:100%;max-width:700px;box-shadow:0 4px 6px #0000004d}.public-rooms-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.public-rooms-header h2{font-size:1.4rem;margin:0}.btn-back{background:none;border:1px solid #444;color:#ccc;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-back:hover{background-color:#2c2c2c}.btn-refresh{background:none;border:1px solid #03dac6;color:#03dac6;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s,color .2s}.btn-refresh:hover{background-color:#03dac6;color:#000}.no-rooms{text-align:center;padding:2rem 0;color:#aaa}.no-rooms-hint{font-size:.85rem;color:#666}.rooms-table{width:100%;border-collapse:collapse}.rooms-table th,.rooms-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #2c2c2c}.rooms-table th{color:#aaa;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.rooms-table tr:last-child td{border-bottom:none}.room-status{padding:.2rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600}.room-status.waiting{background-color:#1a3a2a;color:#4caf89}.room-status.playing{background-color:#3a2a00;color:#ffb74d}.btn-join-room{background-color:#03dac6;color:#000;border:none;padding:.4rem .9rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:700;transition:background-color .2s}.btn-join-room:hover{background-color:#018786}.lobby-page{display:flex;justify-content:center;align-items:center;height:100vh;background-color:#121212;color:#fff}.lobby-container{display:flex;flex-direction:column;align-items:center;padding:2rem;background-color:#1e1e1e;border-radius:8px;box-shadow:0 4px 6px #0000004d;width:400px;max-width:calc(100vw - 2rem)}.room-code{font-size:1.2rem;margin-bottom:2rem}.players-list{width:100%;margin-bottom:2rem}.player-entry{display:flex;justify-content:space-between;padding:.5rem;border-bottom:1px solid #333}.waiting{color:#aaa;font-style:italic}.actions{display:flex;flex-direction:column;gap:1rem;width:100%}.btn-start{padding:.75rem 1.5rem;background-color:#03dac6;color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:700;font-size:1rem;transition:background-color .2s}.btn-start:hover{background-color:#018786}.btn-exit{padding:.5rem 1rem;background-color:#cf6679;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-exit:hover{background-color:#b00020}.cell{width:24px;height:24px;box-sizing:border-box;background-color:#bdbdbd;border:2px solid #fff;border-right-color:#7b7b7b;border-bottom-color:#7b7b7b;display:flex;align-items:center;justify-content:center;font-family:Roboto Mono,monospace;font-weight:700;-webkit-user-select:none;user-select:none;cursor:pointer}@media (max-width: 700px){.cell{width:18px;height:18px}.cell-icon{width:11px;height:11px}.number,.question-mark{font-size:11px}}.cell.revealed{background-color:#e0e0e0;border:1px solid #999}.cell.exploded{background-color:red}.cell.questioned{background-color:#bdbdbd}.question-mark{font-size:16px;font-weight:700;color:#7b00b4}.cell.hidden:hover{background-color:#d1d1d1}.cell-icon{width:16px;height:16px}.number{font-size:16px}.n1{color:#00f}.n2{color:green}.n3{color:red}.n4{color:navy}.n5{color:maroon}.n6{color:teal}.n7{color:#000}.n8{color:gray}.board{display:flex;flex-direction:column;background-color:#bdbdbd;border:4px solid #7b7b7b;width:fit-content}.board-row{display:flex}.player-info{display:flex;flex-direction:column;align-items:center;padding:10px;background-color:#333;color:#fff;border-radius:4px;width:100%}.player-info.game-over{background-color:#555;color:#aaa}.player-icon{width:48px;height:48px;margin-bottom:.5rem;background-color:#444;border-radius:50%;padding:4px}@media (max-width: 700px){.player-icon{width:32px;height:32px}.player-name{font-size:1rem}.player-score{font-size:.9rem}}.player-name{font-weight:700;font-size:1.2rem}.player-score{font-size:1.1rem}.game-over-text{color:red;font-weight:700}.game-page{display:flex;flex-direction:column;min-height:100vh;background-color:#121212;color:#fff;padding:1rem}.game-header{display:flex;justify-content:center;align-items:center;margin-bottom:1rem}.game-info{display:flex;gap:2rem;font-size:1.2rem}.game-container{display:flex;justify-content:space-between;align-items:flex-start;flex-grow:1}.player-section{display:flex;flex-direction:column;align-items:center;width:45%}.board-wrapper{margin-top:1rem}.separator{align-self:center;font-size:2rem;font-weight:700;color:#03dac6}.waiting-opponent{color:#aaa;font-style:italic}.game-result-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:100}.result-box{background-color:#1e1e1e;padding:2rem;border-radius:8px;text-align:center;box-shadow:0 4px 6px #0000004d}.result-box h2{font-size:2rem;margin-bottom:1rem}.winner{color:#03dac6;font-size:1.5rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.loser{color:#cf6679;font-size:1.5rem;margin-bottom:1rem}.draw{color:#aaa;font-size:1.5rem;margin-bottom:1rem}.result-box button{padding:.75rem 1.5rem;background-color:#03dac6;color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:700;font-size:1rem}.result-box button:hover{background-color:#018786}@media (max-width: 700px){.game-page{padding:.5rem}.game-info{gap:1rem;font-size:1rem}.game-container{flex-direction:column;align-items:center;gap:1.5rem}.player-section{width:100%;align-items:center}.separator{display:none}.my-section:before{content:"Vous";font-size:.8rem;color:#03dac6;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}.opponent-section:before{content:"Adversaire";font-size:.8rem;color:#aaa;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}}body{margin:0;font-family:Roboto Mono,monospace;background-color:#121212;color:#fff}.app-root{min-height:100vh}button{font-family:Roboto Mono,monospace}
