.app{background:linear-gradient(135deg,#fafbfc,#f4f4f5);min-height:100vh}.app-container{margin:0 auto;max-width:1200px;padding:2rem}.app-header{border-bottom:1px solid #e2e8f0;margin-bottom:3rem;padding-bottom:2rem;text-align:center}.app-title{color:#1a1a1a;font-size:3rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem}.app-subtitle{color:#64748b;font-size:1.1rem;margin:0 auto;max-width:600px}.welcome-section{margin-top:2rem;padding:4rem 2rem;text-align:center}.welcome-title{color:#1a1a1a;font-size:2.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}.welcome-description{color:#64748b;font-size:1.2rem;margin-bottom:2.5rem;margin-left:auto;margin-right:auto;max-width:500px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 1px 3px #3b82f64d;color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.btn-secondary{background:#fff;border:1px solid #d1d5db;box-shadow:0 1px 2px #0000000d;color:#374151}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af;box-shadow:0 2px 4px #0000001a}.btn-success{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 1px 3px #10b9814d;color:#fff}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b98166;transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 1px 3px #ef44444d;color:#fff}.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 12px #ef444466;transform:translateY(-1px)}.btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.btn-group{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.card{background:#fff;border:1px solid #f1f5f9;border-radius:12px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:1.5rem}.card,.card-header{margin-bottom:1.5rem}.card-header{border-bottom:1px solid #f1f5f9;padding-bottom:1rem}.card-title{color:#1a1a1a;font-size:1.25rem;font-weight:600;margin:0}.card-content{color:#4a5568}.alert{align-items:flex-start;border:1px solid;border-radius:8px;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.alert-error{background-color:#fef2f2;border-color:#fecaca;color:#b91c1c}.alert-success{background-color:#f0fdf4;border-color:#bbf7d0;color:#166534}.alert-info{background-color:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.alert-icon{flex-shrink:0;margin-top:.125rem}.game-status{background:#fff;border:1px solid #f1f5f9;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;padding:1.5rem}.current-turn{color:#1a1a1a;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.turn-info{color:#64748b;font-size:.95rem}.scores-container{background:#f8fafc;border-radius:8px;margin-top:1rem;padding:1rem}.scores-title{color:#374151;font-weight:600;margin-bottom:.75rem}.player-score{background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:inline-block;font-size:.95rem;margin-bottom:.5rem;margin-right:1.5rem;padding:.25rem .75rem}.player-score.current{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;font-weight:600}.game-complete{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #16a34a;border-radius:16px;box-shadow:0 10px 25px #10b98126;margin-bottom:2rem;padding:2.5rem;text-align:center}.game-complete-title{color:#166534;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.winner-announcement{color:#166534;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.game-end-reason{color:#4ade80;font-weight:500;margin-bottom:1.5rem}.final-scores{background:#fff;border:1px solid #d1fae5;border-radius:12px;margin-top:1.5rem;padding:1.5rem}.final-scores-title{color:#374151;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.final-score-item{align-items:center;background:#f9fafb;border:1px solid #f3f4f6;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.75rem 1rem}.final-score-item.winner{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#16a34a;color:#166534;font-size:1.1rem;font-weight:600}.score-breakdown{color:#6b7280;font-size:.85rem;font-weight:400}.game-content{grid-gap:2rem;display:grid;gap:2rem;margin-top:2rem}@media (min-width:1024px){.game-content{grid-template-columns:1fr auto}}.board-section{align-items:center;display:flex;flex-direction:column}.player-section{align-self:flex-start;background:#fff;border:1px solid #f1f5f9;border-radius:12px;box-shadow:0 1px 3px #0000001a;min-width:380px;padding:1.5rem;width:380px}.player-hand{border-radius:4px;display:flex;justify-content:flex-start;margin:16px 0;min-width:320px;padding:8px;transition:all .2s ease;width:320px}.loading{align-items:center;color:#64748b;display:flex;font-size:1.1rem;justify-content:center;padding:2rem}.loading:after{animation:spin 1s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;content:"";height:20px;margin-left:.75rem;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.game-controls{margin:1.5rem 0}.controls-section{background:#fff;border:1px solid #f1f5f9;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;padding:1.5rem}.controls-title{color:#64748b;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:1rem;text-transform:uppercase}.file-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.file-input{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem}.protected-mode-toggle{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;display:flex;font-size:.75rem;font-weight:600;padding:.5rem .75rem}.protected-mode-toggle input{margin-right:.5rem}.action-controls{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem}.action-controls .controls-title{color:#374151;font-size:1rem;margin-bottom:1rem}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 1px 3px #f59e0b4d;color:#fff}.btn-warning:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 4px 12px #f59e0b66;transform:translateY(-1px)}@media (max-width:768px){.app-container{padding:1rem}.app-title{font-size:2.5rem}.welcome-title{font-size:2rem}.btn-group{align-items:stretch;flex-direction:column}.btn{width:100%}.game-complete-title{font-size:2rem}.winner-announcement{font-size:1.25rem}.file-controls{align-items:stretch}.action-controls .btn-group,.file-controls{flex-direction:column}.player-hand,.player-section{min-width:auto;width:100%}.player-hand{justify-content:center}}