:root{--paper:#f3ecd9;--ink:#1d2433;--blue:#003F87;--red:#C8102E;--green:#0b6b3a;--berry:#6B2D8C;--amber:#f2a900}
*{box-sizing:border-box}
body{margin:0;font-family:'Barlow Condensed',sans-serif;color:var(--ink);background:#2a3140;}
.mono{font-family:'JetBrains Mono',monospace}
.topbar{background:var(--green);color:#fff;border-bottom:4px solid #fff;box-shadow:0 3px 0 var(--green)}
.sidebar{background:#fbf7ec;border-right:3px solid var(--ink)}
.mapwrap{background:#9cc3d9;position:relative;overflow:hidden;touch-action:none}
.btn{background:#fff;border:2px solid var(--ink);border-radius:6px;padding:3px 9px;font-weight:600;font-size:14px;transition:transform .1s}
.btn:hover{transform:translateY(-1px);background:#fff6d6}
.btn.on{background:var(--amber)}
.btn.green{background:var(--green);color:#fff;border-color:#fff;outline:2px solid var(--green)}
.row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer}
.row:hover{background:#efe4c4}
.row.sel{background:#ffe08a}
.badge{font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px;letter-spacing:.5px}
.b-off{background:var(--blue);color:#fff}.b-un{background:#888;color:#fff}.b-cu{background:var(--berry);color:#fff}
input,select{border:2px solid var(--ink);border-radius:6px;padding:3px 7px;background:#fff}
.tab{font-weight:800;letter-spacing:1px;padding:6px 10px;border-bottom:3px solid transparent;cursor:pointer}
.tab.on{border-color:var(--red)}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#c9b98a;border-radius:4px}