:root{--bg: #0c0a08;--bg-card: #161210;--bg-panel: #1a1610;--bg-input: #100e0a;--gold: #c9a84c;--gold-dim: #8a7440;--gold-glow: rgba(201, 168, 76, .25);--gold-bright: #e0c060;--red: #a83030;--red-bright: #d04040;--red-glow: rgba(168, 48, 48, .3);--green: #3a8a5a;--green-bright: #4ecca3;--green-glow: rgba(78, 204, 163, .25);--blue: #2a5a9a;--blue-bright: #5a9ad4;--blue-glow: rgba(90, 154, 212, .25);--purple: #6a3a8a;--text: #e0d8c8;--text-dim: #7a7060;--text-dark: #4a4438;--border: rgba(139, 119, 72, .15);--border-bright: rgba(139, 119, 72, .35);--font-display: "Cinzel", "Georgia", "Noto Serif SC", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.5);--shadow-lg: 0 8px 24px rgba(0,0,0,.6);--shadow-gold: 0 0 20px rgba(201, 168, 76, .15);--shadow-red: 0 0 20px rgba(168, 48, 48, .2);--shadow-blue: 0 0 20px rgba(42, 90, 154, .2);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:600;font-family:var(--font-body);transition:all .2s ease;position:relative}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0) scale(.98)}button:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--red) 0%,#8a2020 100%);color:#f0d8c8;box-shadow:var(--shadow-md),inset 0 1px #ffffff1a;border:1px solid rgba(200,60,60,.3)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#b83838,#9a2828);box-shadow:var(--shadow-md),var(--shadow-red)}.btn-secondary{background:var(--bg-panel);color:var(--text-dim);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:#221e18;color:var(--text);border-color:var(--border-bright)}.btn-green{background:linear-gradient(135deg,#2a6a4a,#1a4a32);color:#c0e8d0;border:1px solid rgba(60,140,90,.3);box-shadow:var(--shadow-sm)}.btn-green:hover:not(:disabled){background:linear-gradient(135deg,#3a7a5a,#2a5a42);box-shadow:var(--shadow-md),var(--green-glow)}.btn-blue{background:linear-gradient(135deg,#1a4a7a,#143a60);color:#a0c8e8;border:1px solid rgba(42,90,154,.3);box-shadow:var(--shadow-sm)}.btn-blue:hover:not(:disabled){background:linear-gradient(135deg,#2a5a8a,#1a4a70);box-shadow:var(--shadow-md),var(--shadow-blue)}.btn-danger{background:transparent;color:var(--red-bright);border:1px solid rgba(168,48,48,.3)}.btn-danger:hover:not(:disabled){background:#a830301a}.btn-text{background:none;color:var(--gold);padding:4px 8px;font-size:12px;border-radius:4px}.btn-text:hover{background:var(--gold-glow)}.btn-lg{padding:14px 32px;font-size:16px;border-radius:var(--radius-md)}input[type=text],input[type=number]{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);font-size:15px;font-family:var(--font-body);outline:none;transition:all .2s;width:100%}input[type=text]:focus,input[type=number]:focus{border-color:var(--gold-dim);box-shadow:0 0 0 2px var(--gold-glow)}input[type=text]::placeholder{color:var(--text-dark)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--bg-input);border-radius:2px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gold);cursor:pointer;box-shadow:0 0 8px var(--gold-glow)}.lobby{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;position:relative;overflow:hidden;padding:20px}.lobby-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 30%,rgba(201,168,76,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(168,48,48,.04) 0%,transparent 40%),var(--bg);pointer-events:none}.lobby-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.lobby-title{font-family:var(--font-display);font-size:48px;font-weight:900;color:var(--gold);letter-spacing:8px;text-shadow:0 0 40px rgba(201,168,76,.3),0 2px 4px rgba(0,0,0,.5);margin-bottom:4px;animation:candleFlicker 4s ease-in-out infinite}.lobby-subtitle{font-family:var(--font-display);font-size:14px;color:var(--text-dim);letter-spacing:6px;margin-bottom:16px}.lobby-ornament{color:var(--gold-dim);font-size:14px;letter-spacing:8px;margin-bottom:28px;opacity:.6}.lobby-card{background:linear-gradient(180deg,#161210f2,#100e0afa);border:1px solid var(--border-bright);border-radius:var(--radius-lg);padding:24px;width:100%;box-shadow:var(--shadow-lg),var(--shadow-gold);position:relative;overflow:hidden}.lobby-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--gold) 50%,transparent 100%);opacity:.4}.lobby-tabs{display:flex;gap:2px;background:var(--bg-input);border-radius:var(--radius-sm);padding:2px;margin-bottom:20px}.lobby-tab{flex:1;padding:10px;border-radius:4px;background:transparent;color:var(--text-dim);font-size:14px;font-weight:600;transition:all .2s}.lobby-tab.active{background:var(--bg-panel);color:var(--gold);box-shadow:var(--shadow-sm)}.lobby-tab:hover:not(.active){color:var(--text)}.lobby-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.room-code-input{text-align:center!important;font-size:28px!important;letter-spacing:12px!important;font-family:var(--font-display)!important;font-weight:700!important;color:var(--gold)!important;padding:14px!important}.range-group{display:flex;align-items:center;gap:12px}.range-group input[type=range]{flex:1}.range-value{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--gold);min-width:30px;text-align:center}.lobby-btn{margin-top:4px;padding:12px;font-size:15px;border-radius:var(--radius-md);width:100%}.lobby-footer{margin-top:32px;text-align:center;color:var(--text-dark);font-size:12px;line-height:1.8}.lobby-footer p:first-child{color:var(--text-dim);font-size:13px}.room{display:flex;flex-direction:column;height:100dvh;position:relative;background:var(--bg)}.room-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 0%,rgba(201,168,76,.04) 0%,transparent 50%),var(--bg);pointer-events:none}.room-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#161210f2;border-bottom:1px solid var(--border);position:relative;z-index:1}.room-code-section{display:flex;flex-direction:column;gap:2px}.room-code-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dark)}.room-code{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--gold);letter-spacing:4px;cursor:pointer;transition:text-shadow .3s}.room-code:hover{text-shadow:0 0 12px var(--gold-glow)}.room-status{display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green-glow)}.status-dot.offline{background:var(--text-dark);box-shadow:none}.status-text{font-size:12px;color:var(--text-dim)}.room-slots{display:flex;align-items:baseline;gap:2px}.slots-count{font-size:20px;font-weight:700;color:var(--gold)}.slots-divider{color:var(--text-dark)}.slots-max{color:var(--text-dim);font-size:14px}.room-body{flex:1;padding:16px 20px;overflow-y:auto;position:relative;z-index:1}.room-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:16px}.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.nick-edit{display:flex;gap:8px}.nick-edit input{flex:1}.nick-edit button{flex-shrink:0}.nick-display{font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.host-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:var(--gold-glow);color:var(--gold);font-weight:700;letter-spacing:.5px}.bot-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:#5a9ad41a;color:var(--blue-bright)}.me-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:#4ecca31a;color:var(--green-bright)}.seats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.seats-header h3{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.player-list{display:flex;flex-direction:column;gap:4px}.player-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .2s}.player-item.host{border-color:var(--gold-dim)}.player-item.me{border-color:var(--green);background:#4ecca308}.player-item.empty{opacity:.35;border-style:dashed}.player-name{flex:1;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-remove{background:none;border:none;color:var(--red-bright);font-size:16px;padding:0 4px;line-height:1;opacity:.6;transition:opacity .2s}.btn-remove:hover{opacity:1;transform:none}.room-actions{text-align:center;margin:20px 0}.waiting-hint{color:var(--gold);font-size:14px}.waiting-hint small{display:block;margin-top:4px;color:var(--text-dark);font-size:12px}.room-footer-actions{display:flex;gap:10px;justify-content:center;margin:16px 0}.room-share{text-align:center;font-size:12px;color:var(--text-dark);margin-top:16px}.room-share strong{color:var(--gold);font-family:var(--font-display);letter-spacing:2px}.badge{width:20px;height:20px;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700}.badge-cat{background:#1a1610;color:var(--gold);border:1px solid var(--gold-dim)}.badge-hammer{background:#2a2a30;color:#aaa;border:1px solid rgba(255,255,255,.1)}.badge-detained{background:#2a1a0a;color:#d4a040;border:1px solid rgba(212,160,64,.3)}.badge-protected{background:#0a1a2a;color:var(--blue-bright);border:1px solid rgba(90,154,212,.3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:linear-gradient(180deg,#161210fa,#100e0afc);border-radius:var(--radius-lg);padding:24px;max-width:420px;width:90%;border:1px solid var(--border-bright);box-shadow:var(--shadow-lg),var(--shadow-gold);position:relative;overflow:hidden}.modal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--gold) 50%,transparent 100%);opacity:.3}.modal h3{font-family:var(--font-display);color:var(--gold);margin-bottom:12px;font-size:18px;letter-spacing:1px}.modal p{color:var(--text-dim);margin-bottom:16px;font-size:14px;line-height:1.6}.modal-actions{display:flex;gap:8px;justify-content:flex-end}@keyframes candleFlicker{0%,to{opacity:1}25%{opacity:.97}50%{opacity:1}75%{opacity:.98}}@keyframes pulseGlow{0%,to{box-shadow:0 0 8px var(--gold-glow)}50%{box-shadow:0 0 20px var(--gold-glow)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--gold-dim)}@media(max-width:768px){.lobby-title{font-size:36px;letter-spacing:4px}.lobby-subtitle{font-size:11px;letter-spacing:4px}.lobby-card{padding:18px}.room-code-input{font-size:24px!important;letter-spacing:8px!important;padding:12px!important}}
