.home-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.home-container{max-width:550px;width:100%}.game-title{font-size:52px;font-weight:700;text-align:center;margin-bottom:10px;color:#3b82f6}.game-subtitle{font-size:20px;text-align:center;color:var(--color-text-secondary);margin-bottom:30px}.setup-card{margin-bottom:20px}.setup-title{text-align:center;color:var(--color-text);margin-bottom:20px;font-size:24px}.setup-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:10px}.form-group label{font-weight:600;color:var(--color-text);font-size:16px}.form-group input{width:100%}.bot-count-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.count-btn{padding:12px;background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border:2px solid transparent;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.count-btn:hover:not(:disabled){background-color:var(--color-border);transform:translateY(-2px)}.count-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.difficulty-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.difficulty-btn{padding:12px;border:2px solid;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s;background-color:transparent}.difficulty-btn:hover:not(:disabled){transform:translateY(-2px)}.difficulty-btn.easy{border-color:#10b981;color:#10b981;background-color:transparent}.difficulty-btn.easy.active{background-color:#10b981;color:#fff}.difficulty-btn.medium{border-color:#f59e0b;color:#f59e0b;background-color:transparent}.difficulty-btn.medium.active{background-color:#f59e0b;color:#fff}.difficulty-btn.hard{border-color:#ef4444;color:#ef4444;background-color:transparent}.difficulty-btn.hard.active{background-color:#ef4444;color:#fff}.btn-start{padding:16px 24px;font-size:18px;font-weight:700;background-color:var(--color-primary);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s;margin-top:10px}.btn-start:hover:not(:disabled){background-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 6px 16px #4f46e566}.btn-start:disabled{opacity:.5;cursor:not-allowed;transform:none}.game-info{padding:20px}.game-info h3{margin-bottom:15px;color:var(--color-text);font-size:20px}.game-info ul{list-style:none;padding:0}.game-info li{padding:10px 0;color:var(--color-text-secondary);font-size:15px}@media (max-width: 600px){.game-title{font-size:36px}.home-container{max-width:100%}.bot-count-selector{grid-template-columns:repeat(2,1fr)}.difficulty-selector{grid-template-columns:1fr}.setup-title{font-size:20px}}.game-page{min-height:100vh;padding:20px;position:relative}.notification{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:15px 30px;border-radius:8px;font-weight:600;z-index:1000;box-shadow:0 4px 12px #0000004d;max-width:90%}.error-notification{background-color:var(--color-danger);color:#fff}.success-notification{background-color:var(--color-secondary);color:#fff}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 20px}.game-header h1{font-size:32px;color:var(--color-text)}.game-container{max-width:1400px;margin:0 auto}.waiting-screen{max-width:600px;margin:0 auto;padding:40px;text-align:center}.waiting-screen h2{font-size:28px;margin-bottom:20px;color:var(--color-text)}.players-list{display:flex;flex-direction:column;gap:12px;margin:20px 0}.player-item{background-color:var(--color-bg-tertiary);padding:15px;border-radius:8px;font-size:16px;color:var(--color-text)}.game-board{display:flex;flex-direction:column;gap:20px}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.opponent-card{padding:15px}.player-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.card-count{background-color:var(--color-bg-tertiary);padding:4px 12px;border-radius:12px;font-size:14px}.player-score{color:var(--color-text-secondary);font-size:14px}.table-section{padding:30px;text-align:center}.table-section h3{font-size:20px;margin-bottom:20px;color:var(--color-text-secondary)}.table-word{font-size:48px;font-weight:700;color:var(--color-primary);margin-bottom:30px;letter-spacing:2px}.table-cards{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.player-section{padding:25px}.player-section .player-info{margin-bottom:20px}.player-section h3{font-size:24px;color:var(--color-text)}.player-hand{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.game-card{width:90px;height:120px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 6px #0000004d;position:relative;color:#fff;font-weight:700;transition:all .2s}.game-card.clickable{cursor:pointer}.game-card.clickable:hover{transform:translateY(-8px);box-shadow:0 8px 16px #0006}.game-card .card-type{position:absolute;top:6px;left:6px;font-size:10px;text-transform:uppercase;opacity:.8}.game-card .card-value{font-size:24px;text-align:center;padding:10px}@media (max-width: 768px){.game-page{padding:10px}.game-card{width:70px;height:100px}.game-card .card-value{font-size:20px}.table-word{font-size:36px}.game-header h1{font-size:24px}}.game-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--color-bg-secondary);border-radius:8px;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.game-title-header{font-size:1.25rem;margin:0;font-weight:600}.game-header-row{display:flex;align-items:center;gap:1rem}.room-code-badge{display:inline-flex;align-items:center;justify-content:center;background-color:#4f46e5;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;white-space:nowrap;height:38px;box-sizing:border-box}.btn-exit-room{padding:.5rem 1rem;font-size:.875rem;white-space:nowrap;height:38px;box-sizing:border-box}@media (max-width: 512px){.game-header{flex-direction:column;align-items:stretch;padding:.75rem;gap:.75rem}.game-title-header{font-size:1.125rem;text-align:center;width:100%}.game-header-row{width:100%;justify-content:space-between;gap:.5rem}.room-code-badge,.btn-exit-room{padding:.5rem 1rem;font-size:.875rem;height:38px}}.game-header-solo{display:flex;justify-content:space-between;align-items:center;padding:20px;background-color:var(--color-bg-secondary);border-radius:12px;margin-bottom:20px}.player-turn-info h3{margin:0;color:var(--color-text);font-size:20px}@media (max-width: 768px){.player-turn-info h3{font-size:1rem}}.timer-display{display:flex;align-items:center;gap:10px}.timer-value{font-size:32px;font-weight:700;color:var(--color-bg-tertiary);background-color:var(--color-primary);padding:10px 20px;border-radius:8px;min-width:80px;text-align:center}@media (max-width: 768px){.timer-value{font-size:1.25rem;padding:.5rem 1rem;min-width:60px}}.action-buttons-solo{display:flex;gap:15px;justify-content:center;margin-top:20px}.action-buttons-solo button{min-width:150px}.table-section h3{text-align:center;color:var(--color-text);margin-bottom:20px;font-size:24px}.play-area{width:100%;padding:30px;background-color:var(--table-color);border-radius:12px;border:3px solid #654321;box-shadow:0 4px 8px #0003;min-height:180px;display:flex;align-items:center;justify-content:center}.cards-display{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:0}.cards-display::-webkit-scrollbar{height:8px}.cards-display::-webkit-scrollbar-track{background:#0003;border-radius:4px}.cards-display::-webkit-scrollbar-thumb{background:#fff6;border-radius:4px}.cards-display::-webkit-scrollbar-thumb:hover{background:#fff9}.card-slot{width:70px;height:120px;border:3px dashed transparent;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative}.card-slot.active{border-color:#fff9;background-color:#ffffff1a;cursor:pointer}.card-slot.active:hover{border-color:#ffffffe6;background-color:#fff3;transform:scale(1.05)}.slot-indicator{display:flex;flex-direction:column;align-items:center;gap:5px}.slot-number{font-size:24px;font-weight:700;color:#fff;background-color:#3b82f6cc;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.placed-card{animation:placeCard .3s ease-out}.placed-badge{position:absolute;top:-8px;right:-8px;background-color:#22c55e;color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:12px;box-shadow:0 2px 4px #0000004d}.bot-badge{position:absolute;top:-8px;left:-8px;background-color:#f59e0b;color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:12px;box-shadow:0 2px 4px #0000004d}.bot-placed-card{animation:botPlaceCard .5s ease-out;border:2px solid #f59e0b}@keyframes botPlaceCard{0%{transform:scale(.3) translateY(-30px);opacity:0}50%{transform:scale(1.1) translateY(-5px)}to{transform:scale(1) translateY(0);opacity:1}}.placement-instruction{text-align:center;color:var(--color-text-secondary);margin-top:15px;font-size:14px;background-color:var(--color-bg-secondary);padding:10px;border-radius:8px}.selection-badge{position:absolute;top:-8px;right:-8px;background-color:#22c55e;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;box-shadow:0 2px 6px #0000004d}.game-card.selected{border:3px solid #22c55e;transform:translateY(-8px);box-shadow:0 8px 16px #22c55e66}.game-card.disabled{cursor:not-allowed!important;opacity:.5!important;pointer-events:none}@keyframes placeCard{0%{transform:scale(.5) translateY(-20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.swal-toast{font-size:14px!important;padding:12px 16px!important}.swal-toast .swal2-title{font-size:16px!important;margin-bottom:4px!important}.swal-toast .swal2-content{font-size:13px!important;margin-top:4px!important}.game-finished{max-width:600px;margin:40px auto;padding:40px;text-align:center}.game-over-title{font-size:36px;color:var(--color-primary);margin-bottom:20px}.winner-section{margin-bottom:30px}.winner-section h2{font-size:24px;color:#fbbf24;margin:0}.final-scores{margin-top:30px}.final-scores h3{font-size:20px;color:var(--color-text);margin-bottom:20px}.scores-list{display:flex;flex-direction:column;gap:15px}.score-item{display:flex;align-items:center;gap:15px;padding:15px;background-color:var(--color-bg-secondary);border-radius:8px;border:2px solid transparent;transition:all .3s}.score-item.winner{border-color:#fbbf24;background-color:#fbbf241a}.score-rank{font-size:24px;min-width:40px}.score-info{flex:1;text-align:left}.score-name{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:4px}.winner-badge{color:#fbbf24;font-size:14px}.score-details{font-size:14px;color:var(--color-text-secondary)}.penalty-text{color:#ef4444}.bonus-text{color:#22c55e;font-weight:700}.score-value{font-size:24px;font-weight:700;color:var(--color-primary);min-width:80px;text-align:right}@media (max-width: 768px){.swal-toast-responsive{max-width:90%!important;font-size:.875rem!important}.swal-toast-responsive .swal2-title{font-size:1rem!important}.swal-toast-responsive .swal2-html-container{font-size:.875rem!important}.swal-confirm-responsive{max-width:90%!important;padding:1rem!important}.swal-title-responsive{font-size:1.25rem!important}.swal-text-responsive{font-size:.875rem!important}.swal-actions-responsive{gap:.5rem!important;flex-direction:column!important}.swal-actions-responsive button{width:100%!important;font-size:.875rem!important;padding:.75rem!important}.home-toast{max-width:90%!important;font-size:.875rem!important}}@media (max-width: 768px){.game-header-solo{flex-direction:column;gap:15px}.timer-display{position:fixed!important;top:10px;right:10px;z-index:1001}.timer-value{font-size:20px;padding:5px 10px;min-width:50px}.action-buttons-solo{flex-direction:column}.action-buttons-solo button{width:100%}.play-area{padding:15px;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.cards-display{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:5px 0;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;gap:8px}.card-slot{flex-shrink:0;width:60px;height:100px}.game-card{width:60px!important;height:100px!important;flex-shrink:0}.card-value{font-size:18px!important}}.app{background-color:var(--color-bg);min-height:100vh}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}@keyframes slideIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.slide-in{animation:slideIn .3s ease-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-secondary: #10b981;--color-danger: #ef4444;--color-warning: #f59e0b;--color-bg: #faf8f5;--color-bg-secondary: #f5f1eb;--color-bg-tertiary: #e8e2d9;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #cbd5e1;--card-base-word: #22c55e;--card-affix: #fbbf24;--card-table: #60a5fa;--table-color: #8b4513}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{min-height:100vh;display:flex;flex-direction:column}button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:16px;font-weight:600;transition:all .2s;outline:none}button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-bg-tertiary);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border)}.btn-success{background-color:var(--color-secondary);color:#fff}.btn-danger{background-color:var(--color-danger);color:#fff}input{padding:10px 15px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-secondary);color:var(--color-text);font-size:16px;outline:none;transition:border-color .2s}input:focus{border-color:var(--color-primary)}input::placeholder{color:var(--color-text-secondary)}.card{background-color:var(--color-bg-secondary);border-radius:12px;padding:20px;box-shadow:0 4px 6px #0000004d}.container{max-width:1200px;margin:0 auto;padding:20px}.text-center{text-align:center}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}.gap-4{gap:32px}.error-text{color:var(--color-danger);font-size:14px;margin-top:5px}.success-text{color:var(--color-secondary);font-size:14px;margin-top:5px}.spinner{border:3px solid var(--color-bg-tertiary);border-top:3px solid var(--color-primary);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
