:root{--bg:#101319;--panel:#191e26;--panel2:#222934;--line:#343e4b;--text:#f3efe7;--muted:#9ea7b3;--gold:#d2ab60;--gold2:#8b5b08;--p1:#e7b84e;--p2:#65c6dc;--danger:#e27b72;--ok:#7ec994}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}body{min-height:100vh}button,input,textarea{font:inherit}.app{max-width:720px;margin:0 auto;padding:14px 12px 36px}.hidden{display:none!important}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px}.brand{font-weight:900;letter-spacing:.035em;font-size:21px}.sub{color:var(--muted);font-size:12px}.pill{border:1px solid var(--line);background:var(--panel);padding:8px 11px;border-radius:999px;color:var(--text);font-size:13px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:6px;background:var(--muted)}.status-dot.ok{background:var(--ok)}.status-dot.bad{background:var(--danger)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:14px;margin-bottom:12px}.panel h2,.panel h3{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.lobby-grid{display:grid;gap:10px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.field label{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.field input,.field textarea{width:100%;border:1px solid var(--line);background:#11161d;color:var(--text);border-radius:12px;padding:12px;font-size:16px}.field textarea{min-height:105px;resize:vertical}.btn{min-height:46px;border-radius:12px;padding:9px 14px;font-weight:800;cursor:pointer}.btn.primary{border:0;background:var(--gold);color:#17191d}.btn.secondary{border:1px solid var(--line);background:var(--panel2);color:var(--text)}.btn.ghost{border:1px solid var(--line);background:transparent;color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.wide{width:100%}.room-code{font-size:34px;font-weight:900;letter-spacing:.16em;text-align:center;color:var(--gold);padding:8px}.connect-note{padding:10px;border-radius:12px;background:var(--panel2);font-size:13px;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 10px}.stat span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}.stat b{font-size:17px}.turnbox{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:11px;margin-bottom:10px}.effectline{font-size:12px;color:var(--muted);margin-top:3px}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.land{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:0;min-height:156px;text-align:left;cursor:pointer}.land img{width:100%;height:78px;object-fit:cover;display:block;filter:saturate(.9) contrast(1.04)}.land .shade{position:absolute;top:42px;left:0;right:0;height:38px;background:linear-gradient(transparent,rgba(0,0,0,.82))}.land .body{padding:7px 7px 9px}.land .row{display:flex;justify-content:space-between;align-items:center;gap:5px}.land .name{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coord{font-size:10px;color:var(--muted)}.counts{font-weight:850;font-size:12px;margin-top:4px}.cost{font-size:9px;color:var(--muted);margin-top:3px}.pick{position:absolute;right:6px;top:6px;min-width:33px;height:33px;border-radius:99px;display:none;align-items:center;justify-content:center;background:var(--gold);color:#17191d;font-weight:900;border:2px solid rgba(255,255,255,.28)}.land.selected .pick{display:flex}.land.p1{outline:2px solid var(--p1);outline-offset:-2px}.land.p2{outline:2px solid var(--p2);outline-offset:-2px}.land.tie{outline:2px dashed var(--muted);outline-offset:-3px}.land.locked{cursor:default}
.plan{margin-top:11px}.plan-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.money{color:var(--gold);font-weight:900}.plan-list{display:grid;gap:7px;margin-top:9px}.plan-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--panel2);border-radius:12px;padding:8px}.stepper{display:flex;gap:7px;align-items:center}.stepper button{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:#343c48;color:var(--text);font-size:20px;font-weight:900}.stepper b{min-width:20px;text-align:center}.empty{padding:7px 2px;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;margin-top:10px}.actions .primary{flex:1}.waiting{padding:14px;border-radius:13px;background:var(--panel2);text-align:center}.waiting strong{display:block;margin-bottom:4px}.ready-chip{display:inline-block;margin:3px 2px 0;padding:4px 8px;border-radius:999px;background:#29313c;color:var(--muted);font-size:11px}.ready-chip.yes{color:#b9edc8;background:#193726}
.reveal-grid{display:grid;gap:8px}.movebox{background:var(--panel2);padding:11px;border-radius:12px}.movebox b{display:block;margin-bottom:4px}.scoreline{text-align:center;font-size:20px;font-weight:900;padding:7px}.control-list{font-size:12px;color:var(--muted);line-height:1.6}.error{display:none;margin-top:8px;border-radius:10px;padding:8px 10px;color:#ffd1cd;background:#542c2a;font-size:13px}.error.show{display:block}.okmsg{border-radius:10px;padding:8px 10px;color:#c7efd2;background:#203a29;font-size:13px}.rules details{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:11px}.rules summary{font-weight:850;cursor:pointer}.rule{padding:9px 0;border-top:1px solid var(--line);font-size:13px}.rule:first-of-type{margin-top:9px}.rule small{display:block;color:var(--muted);margin-top:2px}.final-score{text-align:center;font-size:30px;font-weight:950;margin:8px 0}.report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-preview{white-space:pre-wrap;max-height:260px;overflow:auto;background:#0c1015;border:1px solid var(--line);border-radius:12px;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;color:#d7dce2}.network-warning{font-size:12px;color:var(--muted);line-height:1.45}
@media(max-width:430px){.app{padding-left:8px;padding-right:8px}.board{gap:5px}.land{min-height:145px}.land img{height:70px}.land .name{font-size:11px}.stats{gap:5px}.stat{padding:8px}.stat b{font-size:15px}.mode-grid,.report-actions{grid-template-columns:1fr}.room-code{font-size:29px}}
