:root{
 --bg:#101211;--panel:#171a18;--panel2:#202420;--ink:#e9e1cf;--muted:#9a9c91;
 --gold:#d9b45b;--red:#9d4f3e;--line:#353a34;--green:#748b68;
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at top,#252a25,#101211 60%);color:var(--ink);font:15px/1.45 Inter,system-ui,sans-serif}
button,input{font:inherit} button{border:0;cursor:pointer;background:var(--gold);color:#17140c;padding:12px 16px;border-radius:7px;font-weight:800;letter-spacing:.02em}
button:hover{filter:brightness(1.08)} button.secondary{background:#2b302b;color:var(--ink);border:1px solid #454b44}.small{padding:8px 11px;font-size:12px}
input{width:100%;background:#0f110f;color:var(--ink);border:1px solid #3b4039;border-radius:7px;padding:12px;margin:5px 0;outline:none}
input:focus{border-color:var(--gold)} header{height:76px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px}
h1{font-family:Georgia,serif;letter-spacing:.12em;margin:0;font-size:25px}h1 span{font-weight:400}.sub,.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--muted)}h1+.sub{margin:0}
.status{font-size:11px;letter-spacing:.12em;color:var(--muted)}.screen{padding:30px;max-width:1500px;margin:auto}.hidden{display:none}
.panel{background:linear-gradient(145deg,#1a1e1b,#141714);border:1px solid #343a33;border-radius:12px;box-shadow:0 12px 35px #0005}
.hero{max-width:1000px;margin:6vh auto}.hero .panel{padding:42px}.hero h2{font:42px/1.02 Georgia,serif;max-width:650px;margin:0 0 15px}.hero p{color:#b4b5aa;max-width:650px}
.forms{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}.card{padding:20px;background:#111411;border:1px solid #2f342f;border-radius:10px}.card h3{margin-top:0}
.message{min-height:24px;color:#d47c69;margin-top:14px}.lobbyPanel{max-width:850px;margin:7vh auto;padding:30px}.lobbyTop{display:flex;justify-content:space-between;align-items:flex-start}.lobbyTop h2{font:38px Georgia,serif;margin:5px 0}.players{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:28px 0}.player{padding:18px;background:#101310;border:1px solid #30352f;border-radius:9px}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:7px}.lobbyActions{display:flex;gap:10px}
.gameHead{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 2fr;gap:1px;margin-bottom:14px;padding:13px 18px}.gameHead>div{padding:5px 10px;border-right:1px solid var(--line)}.gameHead strong{display:block;font-size:18px}.myStats{display:flex;justify-content:flex-end;align-items:center;gap:18px}.myStats strong{font-size:22px}.myStats span{color:var(--muted)}
.layout{display:grid;grid-template-columns:240px 1fr 260px;gap:14px}.side,.actions,.board{padding:16px}.side h3,.actions h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:8px 0 12px}.gamePlayer{padding:10px;border-bottom:1px solid #292e29}.gamePlayer.me{background:#252a24;border-radius:7px}.gamePlayer .name{font-weight:800}.mini{font-size:11px;color:var(--muted)}
.boardTitle{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.boardTitle h2{margin:2px 0;font:26px Georgia,serif}.map{position:relative;min-height:690px;margin-top:14px;background:radial-gradient(circle,#263025,#151a16 70%);border:1px solid #30372f;border-radius:9px;overflow:hidden}
.city{position:absolute;transform:translate(-50%,-50%);min-width:110px;text-align:center;padding:9px 8px;background:#111511d9;border:1px solid #59604f;border-radius:6px;z-index:2}.city b{font-size:12px}.city small{display:block;color:#89907e;font-size:9px;margin-top:2px}
.link{position:absolute;height:3px;background:#c9b36d88;transform-origin:left center;z-index:1}.link.mine{height:5px;background:#d9b45b}.industryMark{display:inline-flex;margin:3px;padding:2px 5px;border-radius:4px;background:#252b24;font-size:12px}
.actions button{display:block;width:100%;margin:7px 0}.actionForm{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.actionForm label{display:block;font-size:11px;color:var(--muted);margin-top:7px}.actionForm select{width:100%;padding:10px;background:#0f110f;color:var(--ink);border:1px solid #3b4039;border-radius:6px;margin:3px 0}
.log{max-height:480px;overflow:auto;font-size:11px;color:#aeb1a5}.log div{padding:6px 0;border-bottom:1px solid #242824}
@media(max-width:1050px){.layout{grid-template-columns:1fr}.side{order:2}.actions{order:1}.board{order:0}.map{min-height:600px}.gameHead{grid-template-columns:repeat(4,1fr)}.myStats{grid-column:1/-1;justify-content:flex-start}.players{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.forms{grid-template-columns:1fr}.screen{padding:12px}header{padding:0 14px}.hero .panel{padding:24px}.hero h2{font-size:32px}.map{min-height:560px}.city{min-width:82px;padding:6px 4px}.lobbyTop{display:block}}
