:root{color-scheme:dark;font:15px system-ui;background:#101820;color:#e9f0f4}
body{margin:0}
header{padding:18px 24px;background:#192632;border-bottom:2px solid #7ab64a}
h1{margin:0;font-size:22px}
main{max-width:1200px;margin:auto;padding:20px;display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.panel{background:#1b2a36;border:1px solid #3b5363;border-radius:12px;padding:18px}
h2{margin-top:0}
input,select,button{background:#101820;border:1px solid #587184;color:#fff;padding:10px;border-radius:7px;max-width:100%;box-sizing:border-box}
button{background:#426a31;cursor:pointer}
button:disabled{opacity:.5}
label{display:grid;gap:5px;margin:8px 0}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.map{position:relative;aspect-ratio:1;background:#142a32;border:1px solid #597487;overflow:hidden}
.map img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none}
.map-markers{position:absolute;inset:0;z-index:2;pointer-events:none}
.marker{position:absolute;z-index:3;min-width:28px;min-height:28px;max-width:none;transform:translate(-50%,-100%);padding:4px 7px;border:2px solid #fff;border-radius:18px;background:#e3482c;color:#fff;box-shadow:0 2px 12px #000,0 0 0 2px #101820;cursor:pointer;pointer-events:auto;font-size:12px;font-weight:bold;white-space:nowrap}
.marker::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#e3482c}
.marker.selected{background:#69af35;box-shadow:0 0 0 5px #b7f47a77,0 2px 12px #000}
.marker.selected::after{border-top-color:#69af35}
.compass{position:absolute;right:8px;top:8px;z-index:4;background:#101820c9;padding:5px 9px;border-radius:6px;color:#fff;font-weight:bold;pointer-events:none}
.note{color:#aabdc9;font-size:13px}
#log{white-space:pre-wrap;max-height:160px;overflow:auto}
#players{display:grid;gap:8px}
.player-entry{display:grid;gap:4px;text-align:left;background:#12222c;border:1px solid #4a6676;margin:0}
.player-entry span,.player-entry small{color:#b2c5d1;font-variant-numeric:tabular-nums}
.player-entry.selected{border-color:#9ed279;background:#24422e}
@media(max-width:780px){main{grid-template-columns:1fr}}
