
body.mapbody main.desk{padding:40px 24px 80px}
.mapwin{width:100%;height:100%;max-width:1400px}
.mapwin .titlebar .back{margin-left:auto;white-space:nowrap;flex:none;position:relative;z-index:1;font:500 11.5px/1 var(--mono);color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:7px}
.mapwin .titlebar .back:hover{color:#fff;background:rgba(255,255,255,.06)}
.search{position:relative;z-index:1;display:flex;align-items:center;gap:8px;height:28px;width:230px;padding:0 10px;border-radius:7px;border:1px solid var(--line);background:#121419;font:400 12px/1 var(--mono)}
.search .sym{color:var(--green)}
.search input{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;color:#fff;font:inherit;font-size:12px;padding:0}
.search input::placeholder{color:var(--dim)}
.stage{position:relative;flex:1;overflow:hidden;background:radial-gradient(80% 70% at 40% 45%,#181b23,#111318 70%)}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}
.stage canvas.grab{cursor:grabbing}
.intro{position:absolute;left:22px;top:20px;max-width:340px;pointer-events:none}
.intro h1{margin:0;font:700 17px/1.3 var(--ui);color:#fff}
.intro p{margin:6px 0 0;font:400 12.5px/1.55 var(--ui);color:#b9bfcc}
.intro .hint{margin-top:10px;font:400 11px/1.6 var(--mono);color:var(--muted)}
.legend{position:absolute;left:22px;bottom:18px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 420px)}
.legend button{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--line);background:rgba(20,22,27,.85);font:500 11.5px/1 var(--mono);color:#cfd4de}
.legend button i{width:8px;height:8px;border-radius:50%}
.legend button[aria-pressed=true]{border-color:#596075;color:#fff;background:rgba(255,255,255,.08)}
.panel{position:absolute;top:16px;right:16px;bottom:16px;width:340px;overflow:auto;padding:18px 18px 20px;border-radius:12px;border:1px solid var(--line);background:rgba(23,25,31,.94);font-family:var(--ui);scrollbar-width:thin;scrollbar-color:#2c2f38 transparent}
.panel .x{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--muted);font:400 18px/1 var(--ui)}
.panel .x[hidden]{display:none}
.panel .x:hover{background:rgba(255,255,255,.06);color:#fff}
.panel .eyebrow{font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.panel h2{margin:8px 0 0;font:700 21px/1.2 var(--ui);color:#fff}
.panel .lede{margin:10px 0 0;font:400 13px/1.6 var(--ui);color:#c3c8d3}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.stats div{padding:12px;border-radius:9px;border:1px solid var(--line);background:#1b1d24}
.stats b{display:block;font:700 18px/1.1 var(--mono);color:#fff}
.stats span{display:block;margin-top:5px;font:400 11px/1.35 var(--ui);color:var(--muted)}
.panel h3{margin:20px 0 8px;font:500 11px/1 var(--mono);color:var(--muted)}
.plist{display:flex;flex-direction:column;gap:2px}
.plist button,.plist a{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 10px;border-radius:8px;text-align:left;text-decoration:none;color:#e5e8ee;font:500 13px/1.3 var(--ui)}
.plist button:hover,.plist a:hover{background:rgba(255,255,255,.05)}
.plist small{font:400 11px/1.3 var(--mono);color:var(--muted);white-space:nowrap}
.plist i{width:8px;height:8px;border-radius:50%;flex:none;margin-right:2px}
.plist .l{display:flex;align-items:center;gap:9px;min-width:0}
.visit{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;height:44px;border-radius:10px;background:#fff;color:#111;text-decoration:none;font:600 13.5px/1 var(--ui)}
.visit:hover{background:#e7ebf3}
.note{margin-top:14px;font:400 11.5px/1.5 var(--mono);color:var(--dim)}
.nogl{position:absolute;inset:0;display:none;place-items:center;padding:40px;text-align:center;color:var(--muted);font:400 13px/1.6 var(--mono)}
@media (max-width:900px){
 .panel{width:300px}
 .legend{max-width:calc(100% - 360px)}
}
@media (max-width:620px){
 body.mapbody main.desk{padding:0}
 .mapwin{max-width:none}
 .mapwin .titlebar{gap:6px}
 .mapwin .titlebar .path{display:none}
 .mapwin .titlebar .back{margin-left:-10px;height:44px;padding:0 10px}
 .search{width:auto;flex:1;height:44px;margin-left:6px;border-radius:10px}
 .search input{font-size:16px}
 .intro{left:var(--gut);right:var(--gut);top:14px;max-width:none}
 .intro h1{font-size:16px}
 .intro p{font-size:12px}
 .intro .hint{display:none}
 .legend{left:var(--gut);right:var(--gut);max-width:none;gap:6px;bottom:calc(var(--sheet,148px) + 12px)}
 .legend button{height:44px;padding:0 12px;border-radius:22px}
 .panel{top:auto;left:0;right:0;bottom:0;width:auto;max-height:58%;height:var(--sheet,148px);border-radius:18px 18px 0 0;border-width:1px 0 0;padding:20px var(--gut) 18px;transition:height .35s var(--ease)}
 .panel.full{height:58%}
 .panel::before{content:"";position:absolute;top:7px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:#3a3e4a}
 .panel .x{top:10px;right:calc(var(--gut) - 8px);width:44px;height:44px}
 .panel h2{font-size:19px}
}
