*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background-color:#0f1116;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}a{color:#7b9fe0;text-decoration:none}a:hover{color:#a3bef0}.btn{cursor:pointer;text-align:center;border:none;border-radius:6px;padding:10px 20px;font-size:1rem;transition:background-color .2s,opacity .2s;display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background-color:#4a7dff}.btn-primary:hover:not(:disabled){background-color:#3a6ae0}.btn-secondary{color:#e0e0e0;background-color:#2a2d35;border:1px solid #444}.btn-secondary:hover:not(:disabled){background-color:#3a3d45}input,select{color:#e0e0e0;background-color:#1a1d25;border:1px solid #333;border-radius:6px;width:100%;padding:10px 14px;font-size:1rem}input:focus,select:focus{border-color:#4a7dff;outline:none}input::placeholder{color:#666}label{color:#aaa;margin-bottom:6px;font-weight:600;display:block}.checkbox-label{white-space:nowrap;cursor:pointer;align-items:center;gap:6px;margin-bottom:0;font-size:.9rem;display:flex}.checkbox-label input[type=checkbox]{accent-color:#4a7dff;width:auto}.form-group{margin-bottom:16px}.form-row{align-items:center;gap:10px;display:flex}.form-row input{flex:1;min-width:0}.form-row select{width:auto}.auth-form{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;max-width:400px;margin:60px auto;padding:30px}.auth-form h2{text-align:center;margin-bottom:24px}.auth-form .btn{width:100%;margin-top:8px}.auth-link{text-align:center;color:#888;margin-top:16px}.auth-required{text-align:center;margin-top:80px}.auth-required p{color:#888;margin-bottom:16px}.error{color:#ff7b7b;background-color:#3d1f1f;border:1px solid #5a2020;border-radius:6px;margin-bottom:16px;padding:10px 14px}.home{text-align:center;margin-top:80px;padding:0 20px}.home-logo{width:160px;height:160px;margin-bottom:16px}.home h1{background:linear-gradient(135deg,#4a7dff,#a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:3rem}.tagline{color:#888;margin-bottom:40px;font-size:1.2rem}.home-description{color:#aaa;max-width:600px;margin:0 auto 40px}.home-description p{margin-bottom:12px}.home-actions{justify-content:center;gap:16px;display:flex}.build-info{color:#555;margin-top:60px;font-size:.8rem}.game-list-page{max-width:900px;margin:30px auto;padding:0 20px}.game-list-page h2{margin-bottom:24px}.game-actions{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px;display:grid}.create-game,.join-game{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;flex-direction:column;gap:10px;padding:20px;display:flex}.create-game h3,.join-game h3{color:#aaa;margin-bottom:0;font-size:1rem}.games-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.no-games{color:#666;text-align:center;grid-column:1/-1;padding:40px}.game-card{color:inherit;background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;padding:20px;text-decoration:none;transition:border-color .2s;display:block}.game-card:hover{border-color:#4a7dff}.game-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.game-card-header h4{color:#e0e0e0}.game-card-details{color:#888;gap:16px;font-size:.9rem;display:flex}.strict-badge{color:#c084fc;background-color:#3a2a4a;border-radius:10px;padding:2px 8px;font-size:.8rem;font-weight:600}.status-badge{border-radius:12px;padding:4px 10px;font-size:.8rem;font-weight:600}.status-waiting{color:#a0aec0;background-color:#2d3748}.status-active{color:#68d391;background-color:#1a3a2a}.status-finished{color:#f6ad55;background-color:#3a2a1a}.game-page{max-width:800px;margin:30px auto;padding:0 20px}.game-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.game-header-right{align-items:center;gap:10px;display:flex}.game-round{color:#888;font-size:.9rem}.sse-status{border-radius:10px;padding:3px 8px;font-size:.75rem;font-weight:600}.sse-status.connected{color:#68d391;background-color:#1a3a2a}.sse-status.disconnected{color:#ff7b7b;background-color:#3d1f1f}.btn-copy{color:#e0e0e0;background-color:#2a2d35;border:1px solid #444;padding:4px 12px;font-size:.85rem}.btn-copy:hover{background-color:#3a3d45}.game-lobby{text-align:center;background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;padding:30px}.game-id-display{color:#888;justify-content:center;align-items:center;gap:10px;margin:20px 0;display:flex}.game-id-display code{-webkit-user-select:all;user-select:all;background-color:#2a2d35;border-radius:4px;padding:4px 10px;font-size:.9rem}.waiting-msg{color:#888;margin-top:12px}.qr-code{background-color:#fff;border-radius:10px;justify-content:center;width:180px;height:180px;margin:16px auto;padding:12px;display:flex}.qr-code svg{width:100%;height:100%}.player-list{margin-bottom:20px}.player-list h4{color:#aaa;margin-bottom:12px}.player-item{background-color:#1e2028;border-radius:6px;align-items:center;gap:10px;margin-bottom:6px;padding:8px 12px;display:flex}.host-badge{color:#fff;background-color:#4a7dff;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600}.round-info{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.role-badge{border-radius:8px;padding:6px 14px;font-size:.9rem;font-weight:600}.role-clue-giver{color:#68d391;background-color:#1a3a2a}.role-outcast{color:#ff7b7b;background-color:#3d1f1f}.role-in-crowd{color:#63b3ed;background-color:#1a2a3a}.category-badge,.critical-piece-badge{background-color:#2a2d35;border-radius:8px;padding:6px 14px;font-size:.9rem}.phase-panel{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;margin-bottom:20px;padding:24px}.phase-panel h3{margin-bottom:12px}.phase-desc{color:#aaa;margin-bottom:20px}.vote-options{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.vote-btn{color:#e0e0e0;cursor:pointer;background-color:#2a2d35;border:1px solid #444;border-radius:8px;padding:10px 18px;font-size:.95rem;transition:all .2s}.vote-btn:hover{background-color:#3a3d45;border-color:#4a7dff}.vote-count{color:#4a7dff;font-weight:600}.custom-vote-btn{border-style:dashed;border-color:#a855f7}.custom-vote-btn:hover{border-color:#c084fc}.vote-status{color:#888;font-size:.9rem}.custom-vote{gap:10px;margin-bottom:12px;display:flex}.custom-vote input{flex:1}.answer-form{gap:10px;display:flex}.answer-form input{flex:1}.hint-text{color:#888;margin-bottom:16px;font-style:italic}.hints-list{margin-bottom:20px}.hints-list h4{color:#aaa;margin-bottom:10px}.no-hints{color:#666;font-style:italic}.hint-item{background-color:#1e2028;border-radius:6px;gap:12px;margin-bottom:6px;padding:10px 14px;display:flex}.hint-number{color:#4a7dff;min-width:30px;font-weight:700}.give-hint{gap:10px;display:flex}.give-hint input{flex:1}.no-hints-left{color:#888;font-style:italic}.guess-section{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;margin-bottom:20px;padding:24px}.guess-section h4{margin-bottom:12px}.guess-form{gap:10px;display:flex}.guess-form input{flex:1}.locked-msg{color:#888;margin-top:8px}.outcast-hint,.outcast-msg{color:#ff7b7b;margin-bottom:12px}.outcast-waiting{border-color:#5a2020}.clue-giver-msg{color:#68d391}.guess-status{margin-top:16px}.guess-status h4{color:#aaa;margin-bottom:10px}.player-guess-status{background-color:#1e2028;border-radius:6px;justify-content:space-between;margin-bottom:4px;padding:6px 12px;display:flex}.status-locked{color:#68d391;font-weight:600}.status-thinking{color:#f6ad55}.scoreboard h3{margin-bottom:16px}.answer-reveal,.critical-piece-reveal{background-color:#1e2028;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:1.1rem}.round-scores,.cumulative-scores{margin-bottom:20px}.round-scores h4,.cumulative-scores h4{color:#aaa;margin-bottom:10px}.score-list{flex-direction:column;gap:4px;display:flex}.score-row{background-color:#1e2028;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;display:flex}.score-row .rank{color:#4a7dff;min-width:30px;font-weight:700}.score-row .player-name{flex:1}.score-row .player-role{color:#888;font-size:.85rem}.score-row .player-score{color:#68d391;font-weight:700}.game-finished{text-align:center}.game-finished h3{background:linear-gradient(135deg,#f6ad55,#ed64a6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:24px;font-size:2rem}.editor-page{max-width:800px;margin:30px auto;padding:0 20px}.editor-page h2{margin-bottom:8px}.editor-desc{color:#888;margin-bottom:24px}.editor-add{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;margin-bottom:24px;padding:20px}.editor-add h3{margin-bottom:12px}.editor-add-form{align-items:center;gap:10px;display:flex}.editor-add-form input{flex:1}.editor-add-form select{width:auto;min-width:100px}.editor-list{background-color:#1a1d25;border:1px solid #2a2d35;border-radius:12px;padding:20px}.editor-list h3{margin-bottom:16px}.no-categories{color:#666;font-style:italic}.category-table{border-collapse:collapse;width:100%}.category-table th{text-align:left;color:#888;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #2a2d35;padding:8px 12px;font-size:.85rem}.category-table td{padding:10px 12px}.category-row{cursor:pointer;border-bottom:1px solid #1e2028}.category-row:hover{background-color:#1e2028}.type-badge{border-radius:10px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.type-broad{color:#63b3ed;background-color:#1a2a3a}.type-strict{color:#c084fc;background-color:#3a2a4a}.usage-count{color:#888;text-align:center}.btn-danger{color:#ff7b7b;background-color:#3d1f1f;border:1px solid #5a2020}.btn-danger:hover:not(:disabled){background-color:#4d2525}.btn-sm{padding:4px 12px;font-size:.85rem}.category-row-expanded{background-color:#1e2028}.expand-arrow{color:#888;margin-right:4px;font-size:.75rem}.pieces-row td{padding:0 12px 12px}.pieces-panel{background-color:#15171e;border:1px solid #2a2d35;border-radius:8px;padding:12px}.pieces-add-form{gap:8px;margin-bottom:10px;display:flex}.pieces-add-form input{flex:1}.pieces-list{flex-wrap:wrap;gap:6px;display:flex}.piece-item-wrapper{width:100%}.piece-item{cursor:pointer;background-color:#1a1d25;border:1px solid #2a2d35;border-radius:6px;align-items:center;gap:6px;padding:4px 8px 4px 12px;font-size:.9rem;display:flex}.piece-item:hover,.piece-item-expanded{background-color:#1e2028}.nested-pieces{margin:6px 0 6px 16px}.no-pieces{color:#666;font-size:.9rem;font-style:italic}.custom-vote-btn{border-style:dashed!important}.parent-assignment-panel{background-color:#15171e;border:1px dashed #a855f7;border-radius:8px;margin-top:20px;padding:16px}.parent-assignment-panel h4{color:#c084fc;margin-bottom:8px}.parent-assignment-desc{color:#888;margin-bottom:12px;font-size:.9rem}.parent-assignment-form{align-items:center;gap:10px;display:flex}.parent-assignment-form select{flex:1}.parent-assignment-status{color:#68d391;margin-top:8px;font-size:.9rem}.loading{text-align:center;color:#888;margin-top:80px;font-size:1.1rem}@media (max-width:600px){.game-actions{grid-template-columns:1fr}.form-row,.guess-form,.give-hint,.answer-form,.round-info{flex-direction:column}}