:root{--bg: #0b1e35;--surface: #071322;--text: #ffffff;--muted: #9bb4d1;--accent: #21a1ff;--accent-dark: #1a87d9;--success: #10b981;--danger: #ef4444;--border: #1e3a5f}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:280px}.sidebar bac .games-grid{grid-template-columns:1fr}.sidebar .card .form-group{text-align:left!important}.sidebar .card .form-label{text-align:left!important;margin-bottom:.5rem;display:block}.sidebar .card .form-row{align-items:flex-start!important;text-align:left!important}.sidebar .card .form-row .form-group,.sidebar .card .form-row .form-group .form-label{text-align:left!important}.sidebar .btn{min-height:44px}.sidebar .home-header img{height:8rem!important}.sidebar{width:280px;background-color:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:relative;z-index:10;transition:width .3s ease}.sidebar.collapsed{width:80px}.sidebar-header{padding:1.5rem}.sidebar-header h1{font-size:1.5rem;font-weight:700;color:var(--accent)}.sidebar-toggle{background:none;border:1px solid var(--border);color:var(--text);padding:.5rem;border-radius:4px;cursor:pointer;font-size:1rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sidebar-toggle:hover{background-color:var(--bg);border-color:var(--accent)}.sidebar-toggle-border{box-shadow:0 2px 8px #0003}.sidebar-toggle-border{position:absolute;top:4%;right:-15px;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background-color:var(--accent);color:#fff;border:2px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;z-index:20;transition:all .2s ease}.sidebar-toggle-border:hover{background-color:var(--accent-dark)!important;transform:translateY(-50%) scale(1.1)!important;box-shadow:0 4px 12px #21a1ff4d}.sidebar-icon{font-size:1.2rem;display:flex;align-items:center;justify-content:center}.sidebar-nav{flex:1;padding:1rem}.sidebar-nav ul{list-style:none}.sidebar-nav li{margin-bottom:.5rem}.sidebar-nav a{display:flex;align-items:center;justify-content:center;padding:.75rem 1rem;color:var(--muted);text-decoration:none;border-radius:8px;transition:all .2s ease;font-weight:500;white-space:nowrap;overflow:hidden}.sidebar.expanded .sidebar-nav a{justify-content:flex-start}.sidebar.collapsed .sidebar-nav a{padding:.75rem;justify-content:center}.sidebar-nav a:hover{background-color:var(--bg);color:var(--text)}.sidebar-nav a.active{background-color:var(--accent);color:#fff}.sidebar-footer{padding:1rem;border-top:1px solid var(--border);font-size:.875rem;color:var(--muted);text-align:center}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-area{flex:1;overflow-y:auto;padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease;min-height:44px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-dark)}.btn-primary:disabled{background-color:var(--muted);cursor:not-allowed}.btn-secondary{background-color:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--bg)}.btn-danger{background-color:var(--danger);color:#fff}.btn-success{background-color:var(--success);color:#fff}.btn-large{padding:1rem 2rem;font-size:1.125rem}.btn-full{width:100%}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text)}.form-input{width:100%;padding:.75rem;background-color:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem;min-height:44px}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #21a1ff1a}.form-error{margin-top:.5rem;color:var(--danger);font-size:.875rem}.form-row{display:flex;gap:1rem;align-items:end}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1rem}.card-header{margin-bottom:1rem}.card-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.card-description{color:var(--muted)}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.game-title{font-size:1.875rem;font-weight:700}.players-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.player-button{padding:1.5rem;background-color:var(--surface);border:2px solid var(--border);border-radius:12px;color:var(--text);font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative;min-height:80px;display:flex;align-items:center;justify-content:center}.player-button:hover:not(:disabled){border-color:var(--accent);background-color:var(--bg)}.player-button:disabled{background-color:var(--success);border-color:var(--success);cursor:not-allowed;opacity:.8}.player-button:disabled:after{content:"✓";position:absolute;top:.5rem;right:.5rem;color:#fff;font-size:1.2rem}.modal-overlay{position:fixed;inset:0;background-color:#000000f7;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:var(--surface);border-radius:16px;padding:2rem;max-width:400px;width:100%;text-align:center;position:relative}.modal-reveal{cursor:pointer;padding:3rem 2rem;border-radius:12px;background-color:var(--bg);border:2px dashed var(--border);margin-bottom:1.5rem;transition:all .2s ease}.modal-reveal:hover{border-color:var(--accent)}.modal-reveal-text{font-size:1.125rem;color:var(--muted);margin-bottom:.5rem}.modal-reveal-hint{font-size:.875rem;color:var(--muted)}.reveal-content{padding:3rem 2rem;margin-bottom:1.5rem}.secret-word{font-size:2rem;font-weight:700;color:var(--accent);margin-bottom:.5rem}.imposter-text{font-size:2rem;font-weight:700;color:var(--danger);margin-bottom:.5rem}.role-label{font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.first-clue-modal{background:linear-gradient(135deg,#6366f11f,#6366f10f);border:2px solid rgba(99,102,241,.18)}.first-clue-title{font-size:1.5rem;font-weight:700;color:var(--accent);margin-bottom:.5rem}.first-clue-sub{color:var(--muted);margin-bottom:1rem}.first-clue-name{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.5rem}.home-container{max-width:800px;margin:0 auto}.home-header{text-align:center;margin-bottom:3rem}.home-title{font-size:3rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,var(--accent),var(--text));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-subtitle{font-size:1.25rem;color:var(--muted)}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.game-card{background-color:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;text-align:center;transition:all .2s ease}.game-card:hover{border-color:var(--accent);transform:translateY(-2px)}.game-card-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.game-card-description{color:var(--muted);margin-bottom:1.5rem;line-height:1.6}@media screen and (max-width:768px){.app-layout{flex-direction:row;position:relative}.card form,.card form *{text-align:left!important}label.form-label{text-align:left!important;display:block!important}.form-group label,.form-row .form-group label{text-align:left!important}#player-count+label,#imposter-count+label,label[for=player-count],label[for=imposter-count]{text-align:left!important}.sidebar.collapsed{width:0!important;position:absolute;z-index:10;background-color:transparent!important;border-right:none;overflow:visible}.sidebar.collapsed .sidebar-header,.sidebar.collapsed .sidebar-nav,.sidebar.collapsed .sidebar-footer{display:none}.sidebar.expanded{width:100vw;height:100vh;position:fixed;top:0;left:0;z-index:1000;background-color:var(--surface);border-right:none}.sidebar.expanded:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0000004d;z-index:-1}.sidebar.expanded .sidebar-header{padding:1.5rem}.sidebar.expanded .sidebar-nav{padding:2rem 1rem;margin-top:-4rem}.sidebar.expanded .sidebar-nav ul{display:block}.sidebar.expanded .sidebar-nav li{margin-bottom:.75rem}.sidebar.expanded .sidebar-nav a{padding:1rem 1.5rem;font-size:1.25rem;font-weight:500;border-radius:0;text-align:left;justify-content:flex-start}.sidebar.expanded .sidebar-nav a:hover{background-color:#ffffff0d}.sidebar.collapsed .sidebar-toggle-border{display:flex!important;position:fixed!important;top:3rem!important;left:1rem!important;z-index:1001!important;background-color:transparent!important;width:48px!important;height:48px!important;border-radius:8px!important;border:none!important;color:var(--text)!important;font-size:20px!important;font-weight:400!important}.sidebar.expanded .sidebar-toggle-border{display:flex!important;position:absolute!important;top:3rem!important;right:1rem!important;z-index:1002!important;background-color:transparent!important;width:48px!important;height:48px!important;border-radius:8px!important;border:none!important;color:var(--text)!important;font-size:24px!important;font-weight:400!important;transition:all .2s ease!important}.sidebar.collapsed .sidebar-toggle-border:hover,.sidebar.expanded .sidebar-toggle-border:hover{background-color:#ffffff1a!important;transform:none!important}.sidebar.collapsed+.main-content{margin-left:0!important;width:100%!important;flex:1}.sidebar.collapsed+.main-content .content-area{padding:2rem 1rem;width:100%}.sidebar.expanded+.main-content{display:none}.sidebar-header img{height:10rem!important}.content-area{padding:1rem}.players-grid{grid-template-columns:1fr;gap:.75rem}.player-button{min-height:60px;padding:1rem;font-size:1rem}.home-title{font-size:2rem}.modal-content{margin:1rem;padding:1.5rem}.form-row{flex-direction:column;gap:0}.games-grid{grid-template-columns:1fr}.btn{min-height:44px}.home-header img{height:8rem!important}}@media(max-width:480px){.content-area{padding:.75rem}.btn{padding:.625rem 1.25rem;font-size:.9rem}.btn-large{padding:.875rem 1.5rem;font-size:1rem}.home-title{font-size:1.75rem}.game-header{flex-direction:column;gap:1rem;align-items:stretch;text-align:center}.game-title{font-size:1.5rem}}.text-center{text-align:center}.text-muted{color:var(--muted)}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media screen and (max-width:768px){.form-group,.form-group *,.form-label,label{text-align:left!important}.form-row{align-items:flex-start!important}.form-row .form-group{text-align:left!important}.form-row .form-group:first-child{margin-top:2rem!important}.form-row .form-group{margin-bottom:1rem!important}}.mode-selection{padding:2rem;max-width:900px;margin:0 auto}.mode-selection h2{text-align:center;margin-bottom:2rem;font-size:2rem}.mode-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.mode-btn{padding:2rem;text-align:center;display:flex;flex-direction:column;gap:1rem;min-height:200px;justify-content:center}.mode-icon{font-size:3rem}.mode-title{font-size:1.5rem;font-weight:600}.mode-description{color:#f0f0f0d9;font-size:.95rem}.online-mode-selection{padding:2rem;max-width:600px;margin:0 auto}.online-mode-selection h2{text-align:center;margin-bottom:2rem;font-size:2rem}.back-btn{margin-bottom:1rem}.online-choice-buttons{display:grid;gap:1.5rem}.choice-btn{padding:2rem;text-align:center;display:flex;flex-direction:column;gap:.75rem;min-height:150px;justify-content:center}.choice-icon{font-size:2.5rem}.choice-title{font-size:1.25rem;font-weight:600}.choice-description{color:#ffffffd9;font-size:.9rem}.lobby-form{display:flex;flex-direction:column;gap:1.5rem}.lobby-form .form-group{display:flex;flex-direction:column;gap:.5rem}.lobby-form label{font-weight:500;color:var(--text)}.lobby-form input{padding:.75rem;border:1px solid var(--border);border-radius:.5rem;background-color:var(--surface);color:var(--text);font-size:1rem}.lobby-form input:focus{outline:none;border-color:var(--accent)}.lobby-waiting-room{padding:2rem;max-width:700px;margin:0 auto}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.lobby-header h2{font-size:1.75rem}.copy-btn{font-size:.9rem}.lobby-code-display{background-color:var(--surface);border:2px solid var(--accent);border-radius:.5rem;padding:1.5rem;text-align:center;margin-bottom:2rem}.code-label{color:var(--muted);font-size:.9rem;margin-bottom:.5rem}.code-value{font-size:2.5rem;font-weight:700;letter-spacing:.3rem;color:var(--accent);font-family:monospace;margin-bottom:1rem}.copy-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1rem}.copy-buttons .btn{flex:0 0 auto;min-width:140px}.players-section{margin-bottom:2rem}.players-section h3{margin-bottom:1rem;font-size:1.25rem}.players-list{background-color:var(--surface);border-radius:.5rem;overflow:hidden}.player-item{padding:1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}.player-item:last-child{border-bottom:none}.player-name{font-weight:500;flex:1}.host-badge{background-color:var(--accent);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:500}.you-badge{color:var(--muted);font-size:.9rem;font-style:italic}.lobby-status{margin-bottom:2rem}.waiting-message{background-color:var(--surface);border-left:4px solid var(--accent);padding:1rem;border-radius:.25rem}.waiting-message p{margin:0}.lobby-actions{display:flex;gap:1rem;flex-wrap:wrap}.lobby-actions .btn{flex:1;min-width:150px}.game-settings-section{margin-bottom:2rem;background-color:var(--surface);border-radius:.5rem;padding:1.5rem}.game-settings-section h3{margin-bottom:1rem;font-size:1.25rem}.game-settings-section .form-group{margin-bottom:0}.game-settings-section label{font-weight:500;color:var(--text);display:block;margin-bottom:.5rem}.form-select{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:.5rem;background-color:var(--bg);color:var(--text);font-size:1rem;cursor:pointer}.imposter-count-display{padding:.75rem;background-color:var(--bg);border:1px solid var(--border);border-radius:.5rem;font-size:1rem;font-weight:600;color:var(--accent);text-align:center}.form-select:focus{outline:none;border-color:var(--accent)}.form-select:disabled{opacity:.5;cursor:not-allowed}.online-gameplay{padding:2rem;max-width:900px;margin:0 auto}.game-header-info{text-align:center;margin-bottom:2rem}.game-header-info h2{margin-bottom:.5rem}.lobby-code-small{color:var(--muted);font-size:.9rem}.online-gameplay .card{margin-bottom:2rem}.online-gameplay .card .players-list{background-color:transparent}.online-gameplay .players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.online-gameplay .game-actions{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.role-reveal{background:linear-gradient(135deg,var(--surface) 0%,var(--bg) 100%);border-radius:1rem;padding:3rem 2rem;text-align:center;margin-bottom:2rem;border:2px solid var(--border)}.role-reveal.imposter{border-color:var(--danger);background:linear-gradient(135deg,#2d1515 0%,var(--bg) 100%)}.role-reveal.crewmate{border-color:var(--success);background:linear-gradient(135deg,#152d1f 0%,var(--bg) 100%)}.role-icon{font-size:4rem;margin-bottom:1rem}.role-title{font-size:2rem;margin-bottom:1rem}.role-reveal.imposter .role-title{color:var(--danger)}.role-reveal.crewmate .role-title{color:var(--success)}.role-description{color:var(--muted);font-size:1.1rem}.role-description p{margin-bottom:.5rem}.role-description p:last-child{margin-bottom:0}.footballer-reveal{margin:2rem 0 1.5rem;padding:1.5rem;background-color:#ffffff0d;border-radius:.75rem;border:2px solid var(--success)}.footballer-label{font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.75rem}.footballer-name{font-size:2.5rem;font-weight:700;color:var(--success);text-align:center;line-height:1.2}.players-status{margin-bottom:2rem}.players-status h3{margin-bottom:1rem}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.player-card{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1rem;text-align:center;position:relative}.player-card .player-name{font-weight:500}.player-card .host-indicator{position:absolute;top:.5rem;right:.5rem;font-size:1.25rem}.game-instructions{background-color:var(--surface);border-radius:.5rem;padding:1.5rem;margin-bottom:2rem}.game-instructions h3{margin-bottom:1rem}.game-instructions ol{margin-left:1.5rem;color:var(--muted)}.game-instructions li{margin-bottom:.5rem}.game-actions{display:flex;justify-content:center}.error-banner{background-color:#ef44441a;border:1px solid var(--danger);border-radius:.5rem;padding:1rem;margin-bottom:1rem;color:var(--danger);text-align:center}.connecting-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:3rem 2rem;gap:1.5rem}.football-spinner{font-size:4rem;animation:spin .8s linear infinite,bounce .4s ease-in-out infinite alternate;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-10px) scale(1.1)}}.connecting-message{text-align:center;padding:0;color:#ffffffe6;font-size:1.5rem;font-weight:600;letter-spacing:.02em}.error-message{color:var(--danger);font-size:.9rem;margin-top:.5rem}@media(max-width:768px){.mode-buttons{grid-template-columns:1fr}.mode-btn{min-height:150px}.lobby-header{flex-direction:column;gap:1rem;align-items:flex-start}.code-value{font-size:2rem;letter-spacing:.2rem}.lobby-actions{flex-direction:column}.lobby-actions .btn{width:100%}.players-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.role-reveal{padding:2rem 1rem}.role-title{font-size:1.5rem}.footballer-name{font-size:1.75rem}}
