.hero[data-v-a1f66a39]{text-align:center;margin-top:32px}: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}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}.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}
