:root{--bg: #0a0a0f;--surface: #111118;--surface2: #1a1a24;--surface3: #22222f;--border: #2a2a3a;--accent: #c8392b;--accent2: #e74c3c;--gold: #f0c040;--blue: #3498db;--green: #27ae60;--text: #e8e8f0;--text2: #9090a8;--text3: #555568;--mafia: #c0392b;--civilian: #27ae60;--doctor: #2980b9;--detective: #8e44ad;--font-display: "Bebas Neue", sans-serif;--font-body: "Crimson Pro", serif;--font-mono: "JetBrains Mono", monospace;--radius: 4px;--radius-lg: 8px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}.screen{min-height:100vh;display:flex;flex-direction:column}.auth-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 0%,#1a0505 0%,var(--bg) 70%);padding:20px}.auth-logo{text-align:center;margin-bottom:48px}.auth-logo h1{font-family:var(--font-display);font-size:96px;letter-spacing:12px;color:var(--text);line-height:1}.auth-logo h1 span{color:var(--accent)}.auth-logo p{font-family:var(--font-mono);font-size:11px;letter-spacing:4px;color:var(--text3);text-transform:uppercase;margin-top:8px}.auth-card{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--accent);padding:40px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:20px}.auth-note{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;color:var(--text3);text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;border-radius:var(--radius);transition:all .15s;text-decoration:none}.btn-primary{background:var(--accent);color:#fff;width:100%}.btn-primary:hover{background:var(--accent2)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text2)}.btn-ghost:hover{border-color:var(--text2);color:var(--text)}.btn-gold{background:var(--gold);color:#111}.btn-gold:hover{filter:brightness(1.1)}.btn-sm{padding:8px 14px;font-size:10px}.btn-danger{background:var(--accent);color:#fff}.btn-success{background:var(--green);color:#fff}.form-group{margin-bottom:20px}.form-label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--text3);text-transform:uppercase;margin-bottom:8px}.form-input{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:12px 16px;font-family:var(--font-body);font-size:16px;outline:none;border-radius:var(--radius);transition:border-color .2s}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text3)}.main-screen{padding-bottom:70px;flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;background:none;border:none;color:var(--text3);font-family:var(--font-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:color .2s}.nav-item.active{color:var(--accent)}.nav-icon{font-size:20px}.page-header{padding:24px 20px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:50}.page-title{font-family:var(--font-display);font-size:28px;letter-spacing:4px}.page-subtitle{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--text3);text-transform:uppercase;margin-top:2px}.rooms-list{padding:16px;display:flex;flex-direction:column;gap:12px}.room-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);padding:16px 20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between}.room-card:hover{border-color:var(--accent);background:var(--surface2)}.room-card.private{border-left-color:var(--gold)}.room-card.playing{border-left-color:var(--text3);opacity:.6;pointer-events:none}.room-name{font-family:var(--font-display);font-size:20px;letter-spacing:2px}.room-meta{font-family:var(--font-mono);font-size:11px;color:var(--text3);margin-top:4px}.room-badge{font-family:var(--font-mono);font-size:10px;padding:4px 8px;border-radius:2px;letter-spacing:1px}.badge-public{background:#27ae6026;color:var(--green)}.badge-private{background:#f0c0401a;color:var(--gold)}.badge-playing{background:var(--surface3);color:var(--text3)}.empty-state{text-align:center;padding:60px 20px;color:var(--text3);font-family:var(--font-mono);font-size:12px;letter-spacing:2px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--accent);padding:32px;width:100%;max-width:420px;position:relative;animation:slideUp .2s ease;max-height:90vh;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}}.modal-title{font-family:var(--font-display);font-size:24px;letter-spacing:3px;margin-bottom:24px}.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text3);font-size:20px;cursor:pointer}.modal-close:hover{color:var(--text)}.room-screen{background:radial-gradient(ellipse at 50% 100%,#150303 0%,var(--bg) 60%);min-height:100vh}.waiting-header{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px}.waiting-header h2{font-family:var(--font-display);font-size:24px;letter-spacing:3px;flex:1}.room-id-badge{font-family:var(--font-mono);font-size:11px;color:var(--text3);background:var(--surface2);padding:6px 10px;border:1px solid var(--border);letter-spacing:1px;cursor:pointer;transition:color .2s}.room-id-badge:hover{color:var(--text);border-color:var(--text3)}.players-grid{padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.player-slot{background:var(--surface2);border:1px solid var(--border);border-radius:6px;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 10px;text-align:center;position:relative;transition:border-color .2s}.player-slot.empty{border-style:dashed;opacity:.4}.player-host-badge{position:absolute;top:6px;right:8px;font-size:14px}.player-avatar-circle{width:48px;height:48px;border-radius:50%;overflow:hidden;margin-bottom:8px;background:var(--surface3);border:2px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:22px;flex-shrink:0}.player-avatar-circle img{width:100%;height:100%;object-fit:cover}.player-slot-name{font-family:var(--font-mono);font-size:10px;color:var(--text2);letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.player-ready-dot{width:6px;height:6px;border-radius:50%;background:var(--green);margin:5px auto 0}.waiting-actions{padding:16px 20px;display:flex;gap:12px;flex-wrap:wrap}.waiting-status{padding:0 20px 20px;font-family:var(--font-mono);font-size:12px;color:var(--text3);letter-spacing:1px}.game-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface);position:sticky;top:0;z-index:10}.phase-indicator{display:flex;align-items:center;gap:12px}.phase-icon{font-size:26px}.phase-name{font-family:var(--font-display);font-size:22px;letter-spacing:3px}.phase-sub{font-family:var(--font-mono);font-size:10px;color:var(--text3);letter-spacing:2px}.timer-circle{width:52px;height:52px;border-radius:50%;border:3px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:20px;color:var(--accent);transition:border-color .3s,color .3s}.timer-circle.warning{color:var(--accent);border-color:var(--accent)}.my-role-banner{margin:14px;padding:14px 18px;border:1px solid;display:flex;align-items:center;gap:16px}.my-role-icon{font-size:34px}.my-role-name{font-family:var(--font-display);font-size:26px;letter-spacing:4px}.my-role-desc{font-family:var(--font-mono);font-size:10px;color:var(--text3);letter-spacing:1px;margin-top:4px}.role-mafia{border-color:var(--mafia);background:#c0392b14}.role-don{border-color:#c0392b;background:#c0392b1f}.role-lawyer{border-color:#e67e22;background:#e67e2214}.role-civilian{border-color:var(--civilian);background:#27ae6014}.role-doctor{border-color:var(--doctor);background:#2980b914}.role-detective{border-color:var(--detective);background:#8e44ad14}.role-sergeant{border-color:#2980b9;background:#2980b90f}.role-escort{border-color:#e91e8c;background:#e91e8c0f}.role-vagrant{border-color:#795548;background:#7955480f}.role-warlock{border-color:#9c27b0;background:#9c27b014}.role-wolf{border-color:#ff9800;background:#ff98000f}.role-killer{border-color:#f44336;background:#f443361a}.game-log{margin:0 14px 14px;background:var(--surface);border:1px solid var(--border);padding:12px;max-height:140px;overflow-y:auto}.log-entry{font-family:var(--font-mono);font-size:11px;color:var(--text3);padding:4px 0;border-bottom:1px solid var(--border);letter-spacing:.5px}.log-entry:last-child{border-bottom:none}.log-entry.important{color:var(--accent)}.log-entry.good{color:var(--green)}.players-game-list{padding:0 14px;display:flex;flex-direction:column;gap:8px}.player-game-card{background:var(--surface);border:1px solid var(--border);padding:11px 14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .15s;position:relative;border-radius:var(--radius)}.player-game-card:hover:not(.dead):not(.self){border-color:var(--accent)}.player-game-card.dead{opacity:.35}.player-game-card.targeted{border-color:var(--accent);background:#c8392b14}.player-game-card.protected{border-color:var(--doctor);background:#2980b914}.player-game-card.self{border-left:3px solid var(--gold)}.player-game-card.voted{border-color:var(--gold);background:#f0c04014}.dead-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:22px;pointer-events:none}.player-tg-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--surface2);border:2px solid rgba(255,255,255,.15);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:18px}.player-tg-avatar img{width:100%;height:100%;object-fit:cover}.player-game-name{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;flex:1}.player-vote-count{font-family:var(--font-display);font-size:18px;color:var(--gold);min-width:24px;text-align:right}.player-revealed-role{font-family:var(--font-mono);font-size:10px;padding:2px 6px;border-radius:2px}.badge-red{background:#c0392b33;color:var(--accent)}.badge-green{background:#27ae6026;color:var(--green)}.chat-section{margin:14px;border:1px solid var(--border);background:var(--surface)}.chat-messages{height:110px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:5px}.chat-msg{font-size:14px}.chat-msg-name{font-family:var(--font-mono);font-size:10px;color:var(--text3);margin-right:6px}.chat-msg-text{color:var(--text2)}.chat-input-row{display:flex;border-top:1px solid var(--border)}.chat-input{flex:1;background:none;border:none;color:var(--text);padding:10px 14px;font-family:var(--font-body);font-size:15px;outline:none}.chat-input::placeholder{color:var(--text3)}.chat-send{background:none;border:none;border-left:1px solid var(--border);color:var(--text3);padding:10px 16px;cursor:pointer;font-size:16px;transition:color .2s}.chat-send:hover{color:var(--accent)}.mafia-chat-section{margin:0 14px 14px;border:1px solid var(--mafia);background:#c0392b0d}.mafia-chat-header{padding:8px 12px;border-bottom:1px solid var(--mafia);font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--mafia)}.game-actions{padding:14px}.game-action-hint{font-family:var(--font-mono);font-size:11px;letter-spacing:1px}.profile-container{padding:20px}.profile-hero{background:var(--surface);border:1px solid var(--border);padding:24px 20px;display:flex;gap:20px;align-items:center;margin-bottom:16px}.profile-tg-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;background:var(--surface3);border:3px solid rgba(255,255,255,.2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:32px}.profile-tg-avatar img{width:100%;height:100%;object-fit:cover}.profile-name{font-family:var(--font-display);font-size:30px;letter-spacing:4px;margin-bottom:2px}.profile-username{font-family:var(--font-mono);font-size:12px;color:var(--text3);letter-spacing:1px}.level-section{margin-top:12px}.level-label{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text3);margin-bottom:6px;letter-spacing:1px}.level-num{font-family:var(--font-display);font-size:18px;color:var(--gold)}.exp-bar{height:4px;background:var(--surface3);border-radius:2px;overflow:hidden}.exp-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width .5s ease}.wallet-card{background:var(--surface2);border:1px solid var(--border);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.wallet-amount{font-family:var(--font-display);font-size:26px;letter-spacing:3px;color:var(--gold)}.wallet-label{font-family:var(--font-mono);font-size:10px;color:var(--text3);letter-spacing:2px;text-transform:uppercase}.profile-actions{display:flex;flex-direction:column;gap:10px}.profile-action-row{display:flex;gap:10px}.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat-card{background:var(--surface);border:1px solid var(--border);padding:14px;text-align:center}.stat-val{font-family:var(--font-display);font-size:28px;color:var(--gold)}.stat-label{font-family:var(--font-mono);font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-top:2px}.admin-container{padding:14px}.admin-section{background:var(--surface);border:1px solid var(--border);margin-bottom:14px}.admin-section-header{padding:12px 16px;border-bottom:1px solid var(--border);font-family:var(--font-display);font-size:18px;letter-spacing:2px;display:flex;align-items:center;justify-content:space-between}.admin-section-body{padding:14px}.users-table{width:100%;border-collapse:collapse}.users-table th{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--text3);text-transform:uppercase;text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.users-table td{padding:10px;border-bottom:1px solid var(--border);font-size:14px}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover td{background:var(--surface2)}.admin-user-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-size:14px;font-family:var(--font-display)}.admin-user-avatar img{width:100%;height:100%;object-fit:cover}.admin-search{display:flex;gap:8px;margin-bottom:14px}.admin-search input{flex:1}.pagination{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:12px;font-family:var(--font-mono);font-size:11px;color:var(--text3)}.toast-container{position:fixed;bottom:80px;right:16px;z-index:9000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--accent);padding:12px 18px;font-family:var(--font-mono);font-size:12px;letter-spacing:1px;animation:toastIn .2s ease;max-width:300px;pointer-events:auto}.toast.success{border-left-color:var(--green)}.toast.error{border-left-color:var(--accent)}.toast.info{border-left-color:var(--blue)}@keyframes toastIn{0%{transform:translate(20px);opacity:0}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-box{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--accent);padding:32px 28px 24px;width:100%;max-width:380px;animation:slideUp .18s ease}.confirm-icon{font-size:36px;text-align:center;margin-bottom:12px}.confirm-title{font-family:var(--font-display);font-size:20px;letter-spacing:3px;margin-bottom:10px;color:var(--text);text-align:center}.confirm-message{font-family:var(--font-mono);font-size:12px;letter-spacing:.5px;color:var(--text2);line-height:1.7;text-align:center;margin-bottom:24px;white-space:pre-line}.confirm-buttons{display:flex;gap:10px}.confirm-ok{flex:1;padding:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;border-radius:var(--radius);background:var(--accent);color:#fff;transition:all .15s}.confirm-ok:hover{background:var(--accent2)}.confirm-cancel{flex:1;padding:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;border:1px solid var(--border);cursor:pointer;border-radius:var(--radius);background:var(--surface3);color:var(--text2);transition:all .15s}.confirm-cancel:hover{border-color:var(--text2);color:var(--text)}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5000;padding:32px;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0}}.game-over-icon{font-size:80px;margin-bottom:20px}.game-over-title{font-family:var(--font-display);font-size:56px;letter-spacing:8px;text-align:center;margin-bottom:8px}.game-over-sub{font-family:var(--font-mono);font-size:14px;color:var(--text2);letter-spacing:2px;margin-bottom:32px;text-align:center}.winners-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:32px}.winner-chip{background:var(--surface2);border:1px solid var(--gold);color:var(--gold);padding:6px 14px;font-family:var(--font-mono);font-size:11px;letter-spacing:1px;border-radius:2px}.rules-content{max-height:65vh;overflow-y:auto;line-height:1.8}.rules-content h3{font-family:var(--font-display);font-size:16px;letter-spacing:2px;color:var(--accent);margin:18px 0 6px}.rules-content p{font-size:14px;color:var(--text2);margin-bottom:3px}.hidden{display:none!important}.row{display:flex;align-items:center;gap:8px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.text-mono{font-family:var(--font-mono);font-size:12px;letter-spacing:1px}.text-muted{color:var(--text3)}.text-accent{color:var(--accent)}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.id-search-result{background:var(--surface2);border:1px solid var(--border);padding:14px;margin-top:12px;font-family:var(--font-mono);font-size:12px;color:var(--text2);line-height:2}.room-pw-badge{font-family:var(--font-mono);font-size:11px;color:var(--gold);background:#f0c0401a;padding:6px 10px;border:1px solid rgba(240,192,64,.3);letter-spacing:1px}
