*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#0b1020;color:#e6ebf5;font:14px/1.4 system-ui,sans-serif}
#c{position:fixed;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}
#c.drag{cursor:grabbing}
#panel{position:fixed;top:12px;left:12px;width:290px;max-height:calc(100% - 24px);overflow:hidden;display:flex;flex-direction:column;padding:14px;border-radius:14px;background:rgba(18,26,48,.82);backdrop-filter:blur(8px);border:1px solid #2a3760}
h1{margin:0 0 6px;font-size:20px}
h2{margin:14px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8fa0c8}
#list{overflow:auto;flex:0 1 38%;min-height:120px;padding-right:4px}
#panel .scroll{overflow:auto;min-height:0}
#list .grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cat{margin:10px 0 5px;font-size:12px;color:#b8c5ea;font-weight:600}
[hidden]{display:none!important}
#search{width:100%;padding:7px 9px;border-radius:8px;border:1px solid #33437a;background:#101830;color:inherit;font:inherit;margin-bottom:4px}
.row{display:flex;gap:6px;margin-top:10px}.row button{flex:1;text-align:center}
.f{color:#8fb0ff}.leg{margin:5px 0;font-size:12px}.hint2{color:#7f8fb8}
hr{border:0;border-top:1px solid #2a3760;margin:8px 0}
button{font:inherit;color:inherit;background:#222f55;border:1px solid #33437a;border-radius:8px;padding:7px 8px;cursor:pointer;text-align:left}
button:hover{background:#2c3d70}
button.on{background:#3b63d9;border-color:#6b8cff}
#list button b{display:block;font-size:15px}
#list button small{color:#a9b6d9}
.seg{display:flex;flex-direction:column;gap:5px}
label{display:block;margin-top:9px;cursor:pointer}

#info{position:fixed;right:12px;bottom:12px;width:min(340px,calc(100% - 24px));padding:12px;border-radius:14px;background:rgba(18,26,48,.85);backdrop-filter:blur(8px);border:1px solid #2a3760}
#info b{font-size:16px}
#info .sw{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.hint{font-size:11px;color:#7f8fb8;margin:10px 0 0}
#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}
#labels span{position:absolute;transform:translate(-50%,-50%);font-size:12px;font-weight:700;color:#fff;text-shadow:0 0 3px #000,0 0 3px #000}
@media(max-width:700px){#info{font-size:12px;max-height:30%;overflow:auto}#panel{width:calc(100% - 24px);max-height:42%}.hint{display:none}}
