:root{--ink:#1b2a4a;--cream:#f4efe6;--paper:#e7dfd1;--card:#f7f3ea;--line:#d5c7b0;--navy:#1b2a4a;--map:#d5e3ea;--oil:#161616;--amber:#e8a317;--demand:#f6f1e4;--player-1:#c41e3a;--player-2:#1d4ed8;--player-3:#d4a017;--player-4:#047857;--shadow:0 14px 34px rgba(27,42,74,0.08);color-scheme:light;font-family:Noto Sans Display,WenQuanYi Micro Hei,Noto Sans,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 0,rgba(255,255,255,.7),transparent 32%),var(--paper);color:var(--ink)}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid var(--navy);outline-offset:2px}.app{max-width:1240px;margin:0 auto;padding:1.25rem 1rem 5rem}.mast{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border-bottom:3px solid var(--navy);padding-bottom:.8rem;margin-bottom:1rem}.mast h1{margin:0;font-size:1.8rem;letter-spacing:.04em}.eyebrow{margin:0 0 .2rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}.stamp{border:2px solid var(--player-1);color:var(--player-1);border-radius:999px;padding:.35rem .7rem;font-weight:700;letter-spacing:.08em}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:1rem}.lobby-grid,.table-grid{display:grid;grid-gap:1rem;gap:1rem}.lobby-grid{grid-template-columns:1.1fr .9fr}.field{display:grid;grid-gap:.35rem;gap:.35rem;margin-bottom:.8rem}.field span{font-weight:700}input[type=text]{border:1.5px solid var(--navy);background:white;border-radius:12px;padding:.7rem .8rem;min-height:46px}.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.btn{border:0;border-radius:999px;min-height:46px;padding:.65rem 1rem;background:var(--navy);color:var(--cream);font-weight:700}.btn.ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}.btn.gold-line{background:var(--card);color:var(--navy);border:1.5px solid #8d6b22}.error{background:#fff1f2;border:1px solid var(--player-1);color:#7f1024;border-radius:12px;padding:.7rem .8rem;margin:.8rem 0}.player-list,.stack{display:grid;grid-gap:.7rem;gap:.7rem}.seat-card{display:grid;grid-template-columns:auto 1fr;grid-gap:.75rem;gap:.75rem;align-items:center;background:var(--cream);border-radius:16px;padding:.7rem;border:1px solid var(--line);border-left-width:8px}.identity,.seat-card header{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.tag{border-radius:999px;padding:.1rem .45rem;background:var(--navy);color:var(--cream);font-size:.78rem}.tag.soft{background:transparent;color:var(--navy);border:1px solid var(--navy)}.legend,.oil-track,.phase-bar,.round-pips{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.phase-bar{margin:.8rem 0}.oil-stop,.phase-pill,.round-pip{border:1.5px solid var(--navy);border-radius:999px;padding:.25rem .65rem;background:transparent;font-weight:700}.phase-pill.on,.round-pip.on{background:var(--navy);color:var(--cream)}.table-top{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);grid-gap:1rem;gap:1rem}.board{width:100%;height:auto;display:block;border-radius:28px}.choice,.market-card,.report-line,.score-card{background:var(--navy);color:var(--cream);border-radius:14px;padding:.75rem;border:1px solid #c6a15b}.choice,.report-line,.score-card{background:var(--cream);color:var(--ink);border:1px solid var(--line)}.choice{text-align:left;width:100%}.choice small,.muted{color:#4d5d78}.oil-bay{display:flex;flex-wrap:wrap;gap:.2rem;align-items:center;background:#f3e7c8;border-radius:14px;padding:.55rem}.oil-stop{min-width:4.4rem;display:grid;justify-items:center;background:var(--cream)}.oil-stop.on{background:var(--oil);color:var(--amber);border-color:var(--amber)}.demand-ticket{display:inline-flex;align-items:center;border:1.5px dashed var(--navy);background:var(--demand);color:var(--navy);border-radius:4px 10px 4px 10px;padding:.1rem .4rem;font-size:.82rem;font-weight:700}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:.7rem;gap:.7rem;margin-top:1rem}.player-card{background:var(--card);border:1px solid var(--line);border-top:8px solid var(--navy);border-radius:16px;padding:.75rem;min-height:220px}.player-card.you{box-shadow:var(--shadow)}.player-card.off{opacity:.55}.player-card h3{margin:.35rem 0}.stat{display:flex;justify-content:space-between;gap:.4rem;font-size:.92rem}.dock{margin-top:1rem;padding:.9rem;position:-webkit-sticky;position:sticky;top:.5rem;z-index:8}.dock h2{margin:0 0 .6rem;font-size:1.15rem}.legend-item{display:inline-flex;align-items:center;gap:.35rem;font-weight:700}.log{max-height:220px;overflow:auto;display:grid;grid-gap:.35rem;gap:.35rem;margin:0;padding-left:1.1rem}.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.7rem;gap:.7rem}.score-card.win{border:3px solid var(--navy)}.foot{margin-top:1.2rem;color:#4d5d78;font-size:.92rem}.rules{line-height:1.55}.rules ul{margin:.3rem 0 .6rem;padding-left:1.1rem}@media (max-width:980px){.lobby-grid,.players,.table-top{grid-template-columns:1fr 1fr}}@media (max-width:720px){.lobby-grid,.mast,.players,.table-top{grid-template-columns:1fr;display:grid}.mast{align-items:start}}