.hero[data-v-248fa404]{text-align:center;margin-top:32px}.tabs[data-v-7d86e300]{display:flex;gap:8px;margin-bottom:12px}.tabs button[data-v-7d86e300]{flex:1;padding:9px 8px;border:1px solid var(--border);background:var(--surface);border-radius:10px;font-size:13.5px;color:var(--muted);cursor:pointer}.tabs button.on[data-v-7d86e300]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.field-label[data-v-5328773d]{display:block;margin:14px 0 6px;font-size:14px;font-weight:600;color:#334155}.opt-list[data-v-5328773d]{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.opt-item[data-v-5328773d]{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.opt-item.active[data-v-5328773d]{border-color:var(--primary);background:var(--primary-soft)}.opt-item input[data-v-5328773d]{accent-color:var(--primary);width:16px;height:16px}.opt-name[data-v-5328773d]{font-weight:600;color:#1e293b;min-width:92px}.opt-desc[data-v-5328773d]{font-size:12.5px;color:#64748b}.qin-board[data-v-67434c6f]{display:grid;grid-template-columns:repeat(8,42px);grid-template-rows:repeat(8,42px);gap:1px;background:#cbd5e1;border:2px solid #94a3b8;width:fit-content;margin:0 auto}.qin-cell[data-v-67434c6f]{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;background:#fff}.qin-cell[data-v-67434c6f]:nth-child(odd){background:#f8fafc}.qin-cell.stack.red[data-v-67434c6f]{color:#fff;background:#dc2626;border-radius:6px}.qin-cell.stack.black[data-v-67434c6f]{color:#fff;background:#1e293b;border-radius:6px}.qin-cell.upright[data-v-67434c6f]{outline:2px solid #d97706;outline-offset:-2px}.qin-cell.commander[data-v-67434c6f]{box-shadow:inset 0 0 0 2px #fbbf24}.qin-progress[data-v-67434c6f]{display:flex;justify-content:center;gap:16px;margin-bottom:8px;font-weight:600}.qin-progress .red[data-v-67434c6f]{color:#dc2626}.qin-progress .black[data-v-67434c6f]{color:#0f172a}.app-shell[data-v-07599688]{min-height:100%}.topbar[data-v-07599688]{display:flex;align-items:center;gap:10px;height:52px;padding:0 12px;background:linear-gradient(135deg,#dc2626,#e11d48);color:#fff;box-shadow:var(--shadow);position:sticky;top:0;z-index:20}.menu-btn[data-v-07599688]{width:38px;height:38px;border:none;background:transparent;border-radius:9px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer}.menu-btn span[data-v-07599688]{display:block;width:20px;height:2px;background:#fff;border-radius:2px}.topbar-brand[data-v-07599688]{display:flex;align-items:center;gap:8px;cursor:pointer}.logo[data-v-07599688]{width:30px;height:30px;border-radius:8px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}.logo.lg[data-v-07599688]{width:42px;height:42px;font-size:20px;border-radius:11px}.brand[data-v-07599688]{font-size:16px;font-weight:700;letter-spacing:.3px}.topbar-right[data-v-07599688]{margin-left:auto;font-size:12.5px;opacity:.92;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-mask[data-v-07599688]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:30}.drawer[data-v-07599688]{position:fixed;top:0;left:0;bottom:0;width:min(280px,82vw);background:var(--surface);z-index:40;display:flex;flex-direction:column;box-shadow:4px 0 24px #0f172a40}.drawer-head[data-v-07599688]{display:flex;align-items:center;gap:12px;padding:20px 18px;background:linear-gradient(135deg,#dc2626,#e11d48);color:#fff}.drawer-sub[data-v-07599688]{font-size:12px;opacity:.9;margin-top:2px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-nav[data-v-07599688]{display:flex;flex-direction:column;padding:10px;gap:4px;flex:1}.drawer-nav button[data-v-07599688]{text-align:left;padding:13px 14px;font-size:15px;border:none;background:transparent;border-radius:10px;color:var(--text);cursor:pointer}.drawer-nav button[data-v-07599688]:hover,.drawer-nav button[data-v-07599688]:active{background:var(--primary-soft);color:var(--primary);font-weight:600}.drawer-foot[data-v-07599688]{padding:12px 18px 22px}.fade-enter-active[data-v-07599688],.fade-leave-active[data-v-07599688]{transition:opacity .2s}.fade-enter-from[data-v-07599688],.fade-leave-to[data-v-07599688]{opacity:0}.slide-enter-active[data-v-07599688],.slide-leave-active[data-v-07599688]{transition:transform .22s ease}.slide-enter-from[data-v-07599688],.slide-leave-to[data-v-07599688]{transform:translate(-100%)}:root{--primary: #dc2626;--primary-hover: #b91c1c;--primary-soft: #fee2e2;--accent: #e11d48;--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #64748b;--warn: #d97706;--radius: 12px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}html{overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(1200px 400px at 50% -100px,rgba(220,38,38,.06),transparent),var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,select,button{-webkit-user-select:auto;user-select:auto}.page{max-width:720px;margin:0 auto;padding:16px 16px 40px}.brandbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,#dc2626,#e11d48);color:#fff;box-shadow:var(--shadow);position:sticky;top:0;z-index:10}.brandbar .logo{width:34px;height:34px;border-radius:9px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px}.brandbar .brand{font-size:17px;font-weight:700;letter-spacing:.3px}.brandbar .spacer{flex:1}.brandbar .userchip{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.95}.brandbar .userchip .uname{font-weight:600}h1{font-size:26px;color:var(--text)}h2{font-size:20px}h3{font-size:14px;margin-bottom:12px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.subtitle{color:var(--text-secondary);margin:6px 0 20px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}input,select,button{width:100%;padding:11px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font-size:14px;font-family:inherit;transition:border-color .15s,box-shadow .15s,background .15s}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}button{background:var(--primary);border:1px solid transparent;color:#fff;cursor:pointer;font-weight:600;transition:background .15s,transform .05s}button:hover{background:var(--primary-hover)}button:active{transform:translateY(1px)}button.ghost{background:#fff;color:var(--primary);border-color:var(--primary)}button.ghost:hover{background:var(--primary-soft)}button:disabled{opacity:.55;cursor:not-allowed}.linkbtn{background:none;border:none;color:#fff;text-decoration:underline;font-size:13px;padding:4px 6px;width:auto;margin:0}.linkbtn:hover{background:#ffffff26}.room-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;transition:border-color .15s,box-shadow .15s}.room-item:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.room-item .meta{display:flex;flex-direction:column;gap:2px;min-width:0}.room-item .meta .title{font-weight:600;font-size:14px}.room-item .meta .sub{color:var(--text-secondary);font-size:12px}.room-item button{width:auto;padding:7px 16px;flex-shrink:0;margin:0 0 0 10px}.empty{color:var(--text-secondary);text-align:center;padding:22px 0;font-size:14px}#seatBar,.seat-bar{display:flex;gap:8px;margin-bottom:12px}#seatBar button,.seat-bar button{flex:1;margin:0}#seatBar button.taken,.seat-bar button.taken{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft)}#status,.status-line{margin-top:12px;color:var(--warn);text-align:center;min-height:20px;font-size:14px}#game{display:flex;justify-content:center}#game canvas{border-radius:12px;max-width:100%}.replay-board{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;max-width:300px;margin:0 auto 12px;background:var(--border);padding:4px;border-radius:10px}.replay-cell{aspect-ratio:1;background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:700}.replay-controls{display:flex;gap:8px;justify-content:center}.replay-controls button{width:auto;padding:9px 18px}.step-info{text-align:center;color:var(--text-secondary);font-size:13px;margin-bottom:12px}.hint{color:var(--warn);font-size:13px;margin-top:8px}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.header-row .back{width:auto;background:#fff;color:var(--text-secondary);border-color:var(--border);padding:8px 14px;font-weight:500}.header-row .back:hover{color:var(--primary);border-color:var(--primary);background:#fff}.navbtn{width:auto;margin:0;padding:6px 12px;background:#ffffff26;border:none;color:#fff;font-size:13px;font-weight:600;border-radius:8px}.navbtn:hover{background:#ffffff47}.waterfall{columns:2;column-gap:16px}@media (max-width: 560px){.waterfall{columns:1}}.game-card{break-inside:avoid;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.game-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #dc26261f;transform:translateY(-2px)}.game-card .cover{height:96px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:800;letter-spacing:2px}.game-card .body{padding:14px}.game-card .title-row{display:flex;justify-content:space-between;align-items:center}.game-card .title{font-weight:700;font-size:16px}.game-card .desc{color:var(--text-secondary);font-size:13px;margin:6px 0;line-height:1.5}.game-card .meta{color:var(--text-secondary);font-size:12px}.fav-btn{width:auto;margin:0;padding:2px 10px;background:#fff;border:1px solid var(--border);color:var(--text-secondary);font-size:18px;line-height:1.4;border-radius:8px}.fav-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.fav-btn.active{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.seat-bar button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.battle-page{height:calc(100dvh - 58px);display:flex;flex-direction:column;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));gap:8px;overflow:hidden}.battle-top{display:flex;align-items:center;gap:8px;flex:0 0 auto}.battle-top .room-title{flex:1;font-size:14px;font-weight:600;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-btn{width:auto;flex:0 0 auto;margin:0;padding:7px 12px;font-size:13px;border-radius:8px}.mini-btn.danger{background:#fff;color:#b91c1c;border-color:#fca5a5}.mini-btn.danger:hover{background:#fef2f2}.battle-page .seat-bar{flex:0 0 auto;margin-bottom:0;gap:6px}.battle-page .seat-bar .seat-btn{font-size:13px;padding:9px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-btn.bot,.seat-btn.bot.taken{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.bot-bar{flex:0 0 auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;background:var(--surface);border:1px dashed var(--border);border-radius:10px}.bot-bar .bot-label{font-size:13px;color:var(--text-secondary)}.bot-bar .diff-select{width:auto;margin:0;padding:7px 10px;font-size:13px}.bot-bar .mini-btn{padding:7px 10px;font-size:12px}.bot-bar .bot-hint{font-size:12px;color:var(--primary);cursor:pointer;margin-left:auto}.lobby-wrap{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;justify-content:center}.lobby-card{width:100%;max-width:560px;align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:14px}.lobby-phase{text-align:center;font-size:15px;font-weight:700;color:var(--primary);letter-spacing:1px}.lobby-card .bot-bar{border-style:solid}.invite-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.invite-hint{font-size:12.5px;color:var(--text-secondary)}.host-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.start-btn{width:100%;padding:13px;font-size:16px;font-weight:700;letter-spacing:2px}.start-btn:disabled{opacity:.5}.rules-hint{margin:0 0 12px;font-size:13px;color:var(--text-secondary)}.board-wrap{flex:1 1 auto;min-height:0;display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.board-host{flex:1;min-width:0;min-height:0}.board-host canvas{display:block;width:100%!important;height:100%!important;border-radius:var(--radius)}.battle-status{flex:0 0 auto;color:var(--warn);text-align:center;font-size:13px;min-height:18px}@media (max-width: 560px){.brandbar{padding:10px 12px;gap:8px}.brandbar .brand{font-size:15px}.brandbar .logo{width:30px;height:30px;font-size:15px}.navbtn{padding:5px 10px;font-size:12px}.page{padding:12px 12px 32px}.card{padding:14px}.game-card .cover{height:76px;font-size:24px}.game-card .body{padding:10px 12px}.battle-page{padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));gap:6px;height:calc(100dvh - 50px)}.battle-page .seat-bar .seat-btn{font-size:12px;padding:8px 4px}}@media (max-height: 480px){.battle-page{padding:4px 6px;gap:4px}.battle-status{display:none}.bot-bar{padding:4px 8px}.brandbar{padding:6px 10px}.brandbar .logo{width:26px;height:26px;font-size:13px}.battle-page{height:calc(100dvh - 38px)}}
