:root{--bg-0:#f1e8d5;--bg-1:#dbbe8c;--ink:#2d2218;--ink-soft:#65513c;--panel:#fff7e8eb;--line:#583a1c40;--accent:#b64b1f;--accent-strong:#8f3510;--danger:#8f1010;--gem:#2f7f6e;--artifact:#7a5921;--disaster:#6b1e1e}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 20% 10%, #ffffff73, transparent 38%), radial-gradient(circle at 80% 15%, #ffeac28c, transparent 35%), linear-gradient(140deg, var(--bg-0), var(--bg-1));margin:0;font-family:Trebuchet MS,Noto Sans SC,Microsoft YaHei,sans-serif}#app{min-height:100vh}.back-home{color:#fff7ea;background:var(--accent);border-radius:999px;padding:8px 14px;font-weight:700;text-decoration:none;transition:transform .2s,background-color .2s}.back-home:hover{background:var(--accent-strong);transform:translateY(-1px)}.room-meta{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:13px}button{cursor:pointer;border:none;border-radius:11px;padding:10px 14px;font-weight:700;transition:transform .2s,opacity .2s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#fff9ef}.ghost{color:var(--ink);background:#f2dbc0}.danger{background:var(--danger);color:#fff4f4}.field-row{flex-direction:column;gap:6px;display:flex}.field-row label{color:var(--ink-soft);font-size:13px}.field-row input{border:1px solid var(--line);color:var(--ink);background:#fffaf1;border-radius:10px;padding:10px 12px;font-size:15px}.actions,.decision-actions{gap:10px;display:flex}.lobby-page,.game-page{width:min(1280px,100% - 32px);margin:0 auto;padding:20px 0 28px}.lobby-top,.topbar{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.left-group{align-items:center;gap:10px;display:flex}.lobby-box,.expedition-panel,.players-panel,.log-panel,.game-empty{border:1px solid var(--line);background:var(--panel);border-radius:16px;box-shadow:0 12px 24px #422b0f1f}.lobby-box{gap:12px;max-width:720px;margin:0 auto;padding:20px;display:grid}.lobby-box h1{margin:0;font-size:30px}.subtitle{color:var(--ink-soft);margin:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:#70563f;background:#f7ebd8;border-radius:999px;padding:4px 10px;font-size:12px}.chip.ok{color:#1e5a4d;background:#77cab840;border-color:#216d5d59}.lobby-status{border:1px solid var(--line);color:var(--ink-soft);background:#fffbf2;border-radius:12px;gap:4px;padding:10px;display:grid}.lobby-status p{margin:0}.game-empty{gap:10px;max-width:560px;padding:20px;display:grid}.game-empty h2,.game-empty p{margin:0}.game-layout{grid-template-columns:1.1fr 1fr;gap:16px;display:grid}.expedition-panel,.players-panel,.log-panel{padding:14px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2{margin:0;font-size:22px}.pill{color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px;display:grid}.card{border:1px solid var(--line);border-radius:12px;min-height:86px;padding:10px;animation:.3s rise-in}.card h3,.player-card h3{margin:0 0 8px;font-size:16px}.card p,.player-card p{margin:2px 0;font-size:14px}.gem{background:color-mix(in srgb, var(--gem), #fff 78%)}.artifact{background:color-mix(in srgb, var(--artifact), #fff 80%)}.disaster{background:color-mix(in srgb, var(--disaster), #fff 83%)}.empty,.conn-tip{color:var(--ink-soft);margin:8px 0}.player-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:12px;display:grid}.player-card{border:1px solid var(--line);background:#fffbf2;border-radius:12px;padding:10px}.player-card.self{outline:2px solid var(--accent)}.player-card small{color:var(--ink-soft);margin-left:6px;font-size:11px}.log-panel{margin-top:16px}.log-panel ul{max-height:170px;margin:10px 0 0;padding-left:16px;overflow:auto}.log-panel li{margin:4px 0;font-size:14px}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.lobby-box{margin:0}.game-layout{grid-template-columns:1fr}.actions,.decision-actions,.left-group{flex-direction:column;align-items:stretch}.lobby-top,.topbar,.panel-header{flex-direction:column;align-items:flex-start;gap:8px}}
