:root{
  --bg:#0b1116; --bg2:#0f1820; --panel:#0e171f; --line:#1f2d38;
  --txt:#dfe9f3; --mut:#8aa0b6; --accent:#39a0ff; --accent2:#2fd6a4;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,Segoe UI,Arial}
#topbar{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,var(--bg2),var(--bg));border-bottom:1px solid var(--line);padding:10px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.group{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border:1px solid var(--line);background:rgba(255,255,255,0.02);padding:8px 10px;border-radius:12px}
.title{font-weight:700;color:var(--mut);margin-right:6px}
.lbl{color:var(--mut);font-size:12px}
.chk{color:var(--mut);font-size:12px;display:flex;align-items:center;gap:6px;margin-right:6px}
.btn{background:#162331;border:1px solid var(--line);color:var(--txt);padding:6px 10px;border-radius:10px;cursor:pointer}
.btn:hover{border-color:#2b4256}
.btn.primary{background:rgba(57,160,255,0.15);border-color:rgba(57,160,255,0.35)}
#status{margin-left:auto;color:var(--mut);font-size:12px}
#layout{display:grid;grid-template-columns:420px 1fr;min-height:calc(100vh - 72px)}
#left{border-right:1px solid var(--line);background:rgba(255,255,255,0.02);padding:10px;overflow:auto}
.panel{background:rgba(0,0,0,0.18);border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:10px}
.panel h3{margin:0 0 8px 0;font-size:14px;color:var(--mut)}
.row{display:flex;gap:8px;align-items:center}
.small{font-size:12px;color:var(--mut);margin-top:8px}
#main{display:flex;align-items:flex-start;justify-content:center;padding:10px;overflow:auto}
#mapCanvas{background:#050a0f;border:1px solid var(--line);border-radius:14px;image-rendering:pixelated}
.stripWrap{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center}
.stripBtn{height:40px;border-radius:12px;background:#162331;border:1px solid var(--line);color:var(--txt);cursor:pointer}
.mapStrip{display:flex;gap:10px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,0.2)}
.mapCard{min-width:140px;max-width:140px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,0.03);padding:8px;cursor:pointer}
.mapCard.active{border-color:rgba(47,214,164,0.6);box-shadow:0 0 0 1px rgba(47,214,164,0.25) inset}
.mapThumb{width:100%;height:90px;border-radius:10px;border:1px solid var(--line);background:#000;display:block}
.mapName{margin-top:6px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapMeta{font-size:11px;color:var(--mut)}
.palette{display:grid;grid-template-columns:repeat(6, 1fr);gap:6px;max-height:420px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,0.2)}
.tileBtn{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,0.03);padding:4px;cursor:pointer}
.tileBtn.active{border-color:rgba(57,160,255,0.7);box-shadow:0 0 0 1px rgba(57,160,255,0.25) inset}
.tileIcon{width:48px;height:48px;display:block;image-rendering:pixelated;border-radius:8px}
select,input[type="range"]{background:#0f1820;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:4px}
