*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;min-height:100vh}#app{min-height:100vh;display:flex;align-items:center;justify-content:center;z-index:33}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:#734b34bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 32px #0000004d;border:1px solid #40333233}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{font-size:28px;margin-bottom:10px;background:linear-gradient(45deg,gold,orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{color:#fffc;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#ffffffe6;font-size:14px}.form-group input,.form-group textarea,.form-group select{padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;color:#fffc;font-size:16px;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#fffc;background:#ffffff26}.form-group input::placeholder{color:#ffffff80}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.btn-primary{background:#ed8b6e;color:#fff;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ef987e4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#734b34bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:0 8px 32px #0000004d;border:1px solid #40333233;border-radius:8px;padding:10px 20px;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{transform:translateY(-1px);box-shadow:0 2px 6px #835f494d}.auth-footer{text-align:center;margin-top:20px}.auth-footer a{color:#ed8b6e;text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}.error-message{background:#ff6b6b33;border:1px solid #FF6B6B;border-radius:8px;padding:12px;color:#ffb3b3;font-size:14px;margin-top:10px}.lobby-container{width:100%;max-width:1200px;padding:20px;min-height:100vh}.lobby-header{margin-bottom:30px;padding:20px;background:#ffffff1a;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.user-info{display:flex;flex-direction:row;justify-content:space-between}.user-info h2{margin:0;color:gold}.lobby-content{display:grid;grid-template-columns:300px 1fr;gap:30px;height:calc(100vh - 200px)}.lobby-sidebar{background:#ffffff1a;border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:30px}.create-game-section h3,.game-filters h3{margin-bottom:15px;color:gold}.game-filters input{width:100%;margin-bottom:15px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:12px 16px;color:#fff;font-size:14px;transition:all .3s ease}.game-filters input::placeholder{color:#ffffff80}.game-filters input:focus{outline:none;border-color:#fffc;background:#ffffff26;box-shadow:0 0 0 2px #4ecdc433}.games-list{background:#ffffff1a;border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow-y:auto}.games-list h3{margin-bottom:20px;color:gold}#gamesContainer{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.game-card{background:#ffffff1a;border-radius:8px;padding:20px;border:1px solid rgba(255,255,255,.2);transition:all .3s ease}.game-card:hover{background:#ffffff26;transform:translateY(-2px)}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.game-header h4{margin:0;color:#ffa600;text-transform:uppercase}.game-status{padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;text-transform:uppercase}.game-status.waiting{background:orange;color:#fff}.game-status.playing{background:#32cd32;color:#fff}.game-status.finished{background:#696969;color:#fff}.game-description{color:#fffc;font-size:14px;margin-bottom:10px}.game-meta{display:flex;gap:15px;margin-bottom:15px;font-size:12px}.game-meta span{padding:4px 8px;border-radius:12px;background:#ffffff1a}.game-actions{display:flex;justify-content:flex-end}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:20px}.loading,.no-games,.error{text-align:center;padding:40px;color:#ffffffb3;font-style:italic}.error{color:#ff6b6b}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#1e3c72f2;border-radius:16px;padding:0;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;border-bottom:1px solid rgba(255,255,255,.2)}.modal-header h3{margin:0;color:gold}.modal-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-form{padding:30px;display:flex;flex-direction:column;gap:20px}.modal-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:20px}.game-container{width:100%;height:100vh;position:relative;overflow:hidden}.game-container canvas{display:block}@media (max-width: 768px){.lobby-content{grid-template-columns:1fr;gap:20px}.lobby-sidebar{order:2}.auth-card{padding:30px 20px}.form-row{grid-template-columns:1fr}.modal-content{width:95%;margin:20px}}.game-lobby-content{display:grid;grid-template-columns:2fr 1fr;gap:20px;height:calc(100vh - 80px);padding:20px}.lobby-panel{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.2)}.lobby-panel h3{color:gold;margin-bottom:15px;font-size:24px}.game-description{color:#b0c4de;margin-bottom:20px;font-style:italic}.game-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px}.detail-item{display:flex;flex-direction:column;gap:5px}.detail-item .label{font-size:12px;color:#b0c4de;text-transform:uppercase;letter-spacing:1px}.detail-item .value{font-size:18px;font-weight:700;color:#fff}.players-list h4{color:gold;margin-bottom:15px;font-size:18px}.players{display:flex;flex-direction:column;gap:10px;margin-bottom:25px}.player-card{background:#ffffff0d;border-radius:8px;padding:15px;border:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.player-info{display:flex;align-items:center;gap:10px}.player-name{font-weight:700;color:#fff}.player-role{color:gold;font-size:12px}.player-stats{color:#b0c4de;font-size:14px}.lobby-actions{display:flex;gap:15px;align-items:center}.waiting-message{color:#b0c4de;font-style:italic}.chat-panel{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column}.chat-panel h4{color:gold;margin-bottom:15px;font-size:18px}.chat-messages{flex:1;background:#0003;border-radius:8px;padding:15px;overflow-y:auto;margin-bottom:15px;max-height:400px}.chat-message{margin-bottom:10px;line-height:1.4}.chat-message.system{color:#b0c4de;font-style:italic;font-size:14px}.message-author{font-weight:700;color:gold}.message-text{color:#fff;margin-left:5px}.chat-input{display:flex;gap:10px}.chat-input input{flex:1;padding:10px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff1a;color:#fff;font-size:14px}.chat-input input::placeholder{color:#fff9}.chat-input button{padding:10px 20px;background:linear-gradient(45deg,#4caf50,#45a049);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:700;transition:all .3s ease}.chat-input button:hover{transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}@media (max-width: 768px){.game-lobby-content{grid-template-columns:1fr;height:auto}.lobby-panel,.chat-panel{margin:10px}.game-details{grid-template-columns:1fr}}.notification-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.notification{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:8px;background:#fffffff2;box-shadow:0 4px 12px #00000026,0 2px 6px #0000001a;animation:slideIn .3s ease-out;pointer-events:all;min-width:300px;max-width:400px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.notification:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003,0 3px 8px #0000001f}.notification-content{display:flex;align-items:center;gap:12px;flex:1}.notification-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-weight:700;font-size:16px;flex-shrink:0}.notification-message{color:#333;font-size:14px;line-height:1.5;word-break:break-word}.notification-close{background:none;border:none;color:#666;font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;flex-shrink:0;margin-left:8px}.notification-close:hover{background:#0000000d;color:#333}.notification-success{border-left:4px solid #4CAF50}.notification-success .notification-icon{background:#4caf50;color:#fff}.notification-error{border-left:4px solid #f44336}.notification-error .notification-icon{background:#f44336;color:#fff}.notification-warning{border-left:4px solid #ff9800}.notification-warning .notification-icon{background:#ff9800;color:#fff}.notification-info{border-left:4px solid #2196F3}.notification-info .notification-icon{background:#2196f3;color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.notification-container{top:10px;right:10px;left:10px;max-width:none}.notification{min-width:auto;max-width:none}}
