*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #6366f1;--primary-dark: #4f46e5;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg: #0f172a;--bg-secondary: #1e293b;--text: #f1f5f9;--text-secondary: #cbd5e1;--border: #334155;--green: #22c55e;--yellow: #eab308;--gray: #6b7280;--header-height: clamp(60px, 8vh, 80px);--container-padding: clamp(8px, 2vh, 24px);--gap-small: clamp(4px, .5vw, 8px);--gap-medium: clamp(8px, 1vw, 16px);--gap-large: clamp(16px, 2vw, 32px);--tile-size: clamp(50px, min(13vw, 11vh), 75px);--tile-gap: clamp(6px, 1.5vw, 12px);--tile-font-size: clamp(1.5rem, 4vw, 2.2rem);--key-min-width: clamp(45px, 8vw, 70px);--key-max-width: clamp(50px, 9vw, 75px);--key-height: clamp(45px, 8vh, 70px);--key-action-width: clamp(80px, 15vw, 120px);--key-font-size: clamp(.9rem, 2vw, 1.3rem);--key-gap: clamp(5px, 1vw, 8px);--keyboard-max-width: 99vw;--boards-max-width: 65vw;--status-max-width: 85vw;--opponent-cell-size: clamp(18px, 2.8vw, 26px);--opponent-gap: clamp(3px, .4vw, 5px)}html{overflow:hidden;height:100vh}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,var(--bg) 0%,var(--bg-secondary) 100%);color:var(--text);height:100vh;overflow:hidden}.app{width:100%;height:100vh;display:flex;flex-direction:column}.screen{width:100%;height:100vh;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.register-screen{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.register-container{background:#0f172af2;border:1px solid var(--border);border-radius:1rem;padding:2rem;width:100%;max-width:400px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-title{font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:1rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{text-align:center;color:#e2e8f0;margin-bottom:2rem;font-size:1.1rem;font-weight:500}.register-form{display:flex;flex-direction:column;gap:1rem}.input-field{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);padding:.75rem 1rem;border-radius:.5rem;font-size:1rem;transition:all .3s}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.input-field:disabled{opacity:.5;cursor:not-allowed}.btn{padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #6366f14d}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-large{width:100%;padding:1.2rem 1.5rem;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-weight:600;letter-spacing:.5px;border-radius:.75rem}.btn-icon{font-size:1.5rem}.btn-single{background:linear-gradient(135deg,#475569,#334155);color:#fff;border:2px solid #64748b;transition:all .3s ease}.btn-single:hover{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 8px 24px #94a3b84d;transform:translateY(-3px)}.btn-multiplayer{background:linear-gradient(135deg,#475569,#334155);color:#fff;border:2px solid #64748b;transition:all .3s ease}.btn-multiplayer:hover{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 8px 24px #94a3b84d;transform:translateY(-3px)}.btn-leaderboard{background:linear-gradient(135deg,#475569,#334155);color:#fff;border:2px solid #64748b;transition:all .3s ease}.btn-leaderboard:hover{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 8px 24px #94a3b84d;transform:translateY(-3px)}.btn-logout{background:linear-gradient(135deg,#475569,#334155);color:#fff;border:2px solid #64748b;transition:all .3s ease}.btn-logout:hover{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 8px 24px #94a3b84d;transform:translateY(-3px)}.btn-slate{background:linear-gradient(135deg,#475569,#334155);color:#fff;border:2px solid #64748b;transition:all .3s ease;font-weight:600;letter-spacing:.5px}.btn-slate:hover{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 8px 24px #94a3b84d;transform:translateY(-3px)}.btn-slate:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-back{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-size:.9rem}.btn-reload{padding:.5rem .75rem;background:var(--success);color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-size:1.2rem;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-reload:hover{background:#0ea472;transform:scale(1.1)}.btn-reload:active{transform:scale(.95)}.menu-screen{background:linear-gradient(135deg,#0f172a,#1e293b);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.menu-container{text-align:center;max-width:500px;width:100%}.welcome-text{color:#e2e8f0;margin:1.5rem 0 2.5rem;font-size:1.3rem;font-weight:500;letter-spacing:.3px}.menu-buttons{display:flex;flex-direction:column;gap:1rem}.game-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-bottom:2rem}.game-header{padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);user-select:none;-webkit-user-select:none;min-height:60px}.header-right{display:flex;align-items:center;gap:1rem}.difficulty-badge{background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:2rem;font-size:.85rem;font-weight:600;display:inline-block}.btn-debug{background:#f59e0b;color:#fff;border:none;padding:.3rem .6rem;border-radius:.3rem;cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s;margin:0 .5rem}.btn-debug:hover{background:#d97706;transform:scale(1.05)}.btn-debug:active{transform:scale(.95)}.game-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:.5rem;overflow-y:auto;padding:.25rem 1rem 1rem;min-height:0;margin:0}.game-board{display:flex;flex-direction:column;gap:var(--tile-gap);align-items:center;user-select:none;-webkit-user-select:none}.game-row{display:flex;gap:var(--tile-gap);justify-content:center}.game-cell{width:var(--tile-size);height:var(--tile-size);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--tile-font-size);border:2px solid var(--border);border-radius:.5rem;background:var(--bg-secondary);transition:all .3s ease;aspect-ratio:1}.game-cell-green{background:var(--green);border-color:var(--green);color:#fff}.game-cell-yellow{background:var(--yellow);border-color:var(--yellow);color:#000}.game-cell-gray{background:var(--gray);border-color:var(--gray);color:#fff}.game-cell-empty{background:var(--bg-secondary);border-color:var(--border)}.cursor-active{border-color:var(--primary)!important;box-shadow:0 0 8px #6366f199!important}.keyboard{width:100%;max-width:var(--keyboard-max-width);margin:0 auto;display:flex;flex-direction:column;gap:var(--key-gap);background:linear-gradient(135deg,var(--bg) 0%,var(--bg-secondary) 100%);padding:var(--container-padding);box-shadow:0 -2px 10px #00000080}.keyboard-row{display:flex;gap:var(--key-gap);justify-content:center}.key{min-width:var(--key-min-width);max-width:var(--key-max-width);height:var(--key-height);padding:0;background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);border-radius:.25rem;cursor:pointer;font-weight:600;transition:all .2s;font-size:var(--key-font-size);display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none}.key:hover:not(:disabled){background:var(--primary);border-color:var(--primary)}.key:disabled{opacity:.5;cursor:not-allowed}.key-green{background:var(--green);border-color:var(--green);color:#fff}.key-yellow{background:var(--yellow);border-color:var(--yellow);color:#000}.key-gray{background:var(--gray);border-color:var(--gray);color:#fff;opacity:.5}.key-action{min-width:var(--key-action-width);max-width:calc(var(--key-action-width) + 20px);background:var(--primary)}.key-submit{background:var(--success)}.keyboard-actions{justify-content:center;gap:.5rem}.game-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;gap:clamp(.5rem,1vh,1rem);padding:clamp(.25rem,1vh,.5rem) 0 2rem 0}.error-message-container{min-height:clamp(2rem,3vh,3rem);max-height:clamp(2rem,3vh,3rem);display:flex;align-items:center;justify-content:center;padding:0;margin:0;flex-shrink:0}.error-message{color:var(--danger);background:#ef44441a;padding:clamp(.5rem,1.5vh,.75rem) clamp(.75rem,2vw,1rem);border-radius:.5rem;border:1px solid var(--danger);margin:0 auto;max-width:var(--boards-max-width);width:100%;text-align:center;animation:slideIn .3s ease-out;font-size:clamp(.85rem,2vw,1rem)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.info-text{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-top:2rem}.leaderboard-screen{padding-top:2rem}.leaderboard-container{width:100%;max-width:800px}.leaderboard-table{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.table-header{display:grid;grid-template-columns:60px 1fr 100px 100px 120px 120px;background:var(--primary);color:#fff;padding:1rem;font-weight:600;gap:1rem}.table-row{display:grid;grid-template-columns:60px 1fr 100px 100px 120px 120px;padding:1rem;border-bottom:1px solid var(--border);align-items:center;gap:1rem;transition:all .3s}.table-row:hover{background:#6366f11a}.table-row:last-child{border-bottom:none}.col-rank{font-size:1.5rem;text-align:center}.col-name{font-weight:600}.col-games,.col-solved,.col-score,.col-difficulty{text-align:center}.difficulty-badge-small{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;display:inline-block}.lobby-screen{background:linear-gradient(135deg,#0f172a,#1e293b);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.lobby-menu-container{display:flex;align-items:center;justify-content:center;width:100%;min-height:calc(100vh - var(--header-height));padding:1rem}.lobby-menu,.lobby-waiting{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid var(--border);border-radius:1rem;padding:2rem;max-width:450px;width:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.or-divider{text-align:center;color:var(--text-secondary);margin:1.5rem 0;position:relative}.or-divider:before,.or-divider:after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--border);top:50%}.or-divider:before{width:calc(50% - 20px)}.or-divider:after{left:calc(50% + 20px)}.players-list{list-style:none;margin:2rem 0}.player-item{padding:.75rem;background:var(--bg);border-radius:.5rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.player-item span{color:var(--green);font-weight:700}.game-end-message{background:var(--bg-secondary);border:2px solid var(--primary);border-radius:1rem;padding:2rem;text-align:center;max-width:400px}.game-end-message h2{font-size:2rem;margin-bottom:1rem}.game-end-message p{color:var(--text-secondary);margin-bottom:1.5rem}.scoreboard{width:100%;max-width:var(--status-max-width);background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;padding:var(--container-padding)}.scoreboard h3{margin-bottom:1rem}.score-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.score-item{background:var(--bg);padding:1rem;border-radius:.5rem;text-align:center;display:flex;flex-direction:column;gap:.5rem}.score-item.gold{border:2px solid #fbbf24}.score-item.silver{border:2px solid #d1d5db}.score-item.bronze{border:2px solid #d97706}.medal{font-size:1.5rem}@media(min-width:768px)and (max-width:1366px){.game-title{font-size:clamp(2rem,4vw,2.5rem)}.btn-large{padding:1.2rem;font-size:1.3rem}.game-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem 1rem 1rem}.game-board{margin:0 auto}}@media(min-width:1367px){.game-title{font-size:3rem}}@media(max-width:767px){.game-title{font-size:clamp(1.5rem,5vw,1.8rem)}.table-header,.table-row{grid-template-columns:40px 1fr 60px 60px 70px 70px;padding:.5rem;font-size:.85rem}.difficulty-badge-small{padding:.2rem .5rem;font-size:.65rem}.boards-container{flex-direction:column;align-items:center}.game-container{gap:.5rem;min-height:0}.game-board{margin:0 auto}.error-message{margin:0 auto;min-height:0}}@supports (display: flex){body{display:flex;flex-direction:column}.app{flex:1}}.opponent-board{padding:.75rem;background:#1e293b80;border:1px solid var(--border);border-radius:.5rem;flex-shrink:0}.opponent-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.5rem}.opponent-header h4{font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.opponent-status{font-size:.6rem;color:var(--green);font-weight:700}.opponent-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--opponent-gap)}.opponent-row{display:contents}.opponent-cell{width:var(--opponent-cell-size);height:var(--opponent-cell-size);border-radius:.25rem;border:1px solid var(--border);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:0;aspect-ratio:1}.opponent-cell-green{background:var(--green);border-color:#16a34a}.opponent-cell-yellow{background:var(--yellow);border-color:#ca8a04}.opponent-cell-gray{background:var(--gray);border-color:#4b5563}.opponent-cell-empty{background:var(--bg-secondary);opacity:.5}.multiplayer-game{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:.5rem;overflow-y:auto;padding:.25rem 1rem 1rem;min-height:0;width:100%;margin:0;--tile-size: 55px;--tile-gap: 8px;--tile-font-size: 1.6rem}.game-main{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:var(--boards-max-width);margin:0}.boards-container{display:flex;gap:clamp(.5rem,1vw,.75rem);align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;width:100%;margin:0;padding-left:clamp(.5rem,2vw,1rem)}.opponents-container{display:flex;flex-direction:column;gap:clamp(.5rem,1vh,.75rem);padding:clamp(.5rem,1.5vh,1rem);background:#1e293b33;border:1px solid rgba(51,65,85,.5);border-radius:.5rem;max-height:70vh;overflow-y:auto;flex-shrink:0}.difficulty-selector{background:var(--bg-secondary);border:1px solid var(--border);border-radius:1rem;padding:2rem;max-width:400px;width:100%;display:flex;flex-direction:column;gap:1.5rem}.difficulty-selector h2{text-align:center;font-size:1.8rem;margin-bottom:.5rem}.difficulty-label{text-align:center;color:var(--text-secondary);font-size:.95rem;margin-bottom:.5rem}.difficulty-label strong{color:var(--primary);font-size:1.3rem}.difficulty-slider{width:100%;height:8px;border-radius:5px;background:var(--border);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.difficulty-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #6366f166}.difficulty-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 4px 12px #6366f199}.difficulty-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));cursor:pointer;border:none;transition:all .3s;box-shadow:0 2px 8px #6366f166}.difficulty-slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 4px 12px #6366f199}.difficulty-description{text-align:center;color:var(--text-secondary);font-size:.95rem;min-height:24px}.difficulty-description p{margin:0;transition:all .3s}.modal-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:#1a1a1a;border:2px solid #333;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000080;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #333}.modal-header h2{margin:0;color:#fff;font-size:1.5rem}.modal-close{background:none;border:none;color:#999;font-size:2rem;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background-color:#333;color:#fff}.modal-body{padding:1.5rem;color:#d4d4d4;line-height:1.6}.modal-body p{margin-bottom:1rem}.modal-body h3{color:#fff;margin-top:1.5rem;margin-bottom:.75rem;font-size:1.25rem}.color-examples{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.example-row{display:flex;align-items:center;gap:1rem}.example-row .tile{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;border:2px solid;border-radius:4px;flex-shrink:0}.example-row .tile-green{background-color:#6aaa64;border-color:#6aaa64;color:#fff}.example-row .tile-yellow{background-color:#c9b458;border-color:#c9b458;color:#fff}.example-row .tile-gray{background-color:#787c7e;border-color:#787c7e;color:#fff}.example-row span{flex:1;color:#d4d4d4}.modal-footer{padding:1.5rem;border-top:2px solid #333;display:flex;justify-content:center}.modal-footer .btn-primary{padding:.75rem 2rem;font-size:1rem;background-color:#3b82f6;border:none;color:#fff;border-radius:8px;cursor:pointer;font-weight:700;transition:all .2s}.modal-footer .btn-primary:hover{background-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}@media(max-width:768px){.modal-content{max-height:85vh;margin:1rem}.modal-header h2{font-size:1.25rem}.modal-body{padding:1rem}.example-row{flex-direction:column;align-items:flex-start;gap:.5rem}.example-row .tile{width:45px;height:45px;font-size:1.25rem}}@media(prefers-reduced-motion:no-preference){*{scroll-behavior:smooth}}
