.map-tool-page{padding:22px 0 34px;background:linear-gradient(180deg,#f6f8fb 0,#eef2f6 100%)}
.map-tool-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px}
.map-tool-heading .back-link{margin-bottom:9px}.map-tool-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.map-tool-title-row h1{margin:0;color:#111827;font-size:28px;font-weight:850;letter-spacing:-.03em}.map-tool-title-row em{border-radius:5px;background:#e8edf5;padding:4px 7px;color:#64748b;font-size:10px;font-style:normal}
.map-tool-kicker{width:100%;color:#a16207;font-size:10px;font-weight:850;letter-spacing:.17em}.map-tool-heading p{margin:7px 0 0;color:#64748b;font-size:13px}
.map-switcher-label{display:grid;min-width:260px;gap:5px}.map-switcher-label span{color:#64748b;font-size:11px;font-weight:700}.map-switcher-label select{height:42px;border:1px solid #dce3ec;border-radius:9px;background:#fff;padding:0 35px 0 12px;color:#172033;font-size:13px;box-shadow:0 4px 14px rgba(15,23,42,.04)}
.map-tool-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.map-tool-stats>div{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:12px 14px}.map-tool-stats i{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:8px;background:#eef4ff;color:#2563eb;font-size:18px}.map-tool-stats span{display:flex;align-items:baseline;gap:5px;color:#64748b;font-size:11px}.map-tool-stats strong{color:#172033;font-size:18px}
.map-tool-shell{display:grid;grid-template-columns:310px minmax(0,1fr);height:clamp(650px,calc(100vh - 126px),780px);overflow:hidden;border:1px solid #dfe5ed;border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.08)}
.map-tool-sidebar{display:flex;min-width:0;flex-direction:column;border-right:1px solid #e3e8ef;background:#fff}
.map-tool-search{position:relative;margin:14px 14px 10px}.map-tool-search>i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:17px}.map-tool-search input{width:100%;height:42px;border:1px solid #dce3ec;border-radius:9px;background:#f8fafc;padding:0 42px 0 36px;color:#172033;font-size:12px;outline:0}.map-tool-search input:focus{border-color:#8eb1f6;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.map-tool-search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:1px solid #dce3ec;border-radius:4px;background:#fff;padding:1px 6px;color:#94a3b8;font-size:10px;font-family:inherit}
.map-tool-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:0 14px 12px;border-bottom:1px solid #edf0f4}.map-tool-tabs button{display:flex;height:36px;align-items:center;justify-content:center;gap:5px;border:0;border-radius:7px;background:#f1f5f9;color:#64748b;font-size:12px;font-weight:700}.map-tool-tabs button em{font-size:9px;font-style:normal;font-weight:500}.map-tool-tabs button.is-active{background:#2563eb;color:#fff;box-shadow:0 5px 12px rgba(37,99,235,.2)}
.map-result-summary{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px}.map-result-summary span{color:#334155;font-size:12px;font-weight:750}.map-result-summary em{color:#94a3b8;font-size:10px;font-style:normal}
.map-result-list{min-height:0;flex:1;overflow:auto;padding:0 9px 12px;scrollbar-width:thin}.map-result-item{display:grid;width:100%;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:4px;border:1px solid transparent;border-radius:9px;background:transparent;padding:8px;text-align:left;transition:.15s ease}.map-result-item:hover{background:#f5f8fd}.map-result-item.is-selected{border-color:#a9c2f5;background:#eef4ff}.map-result-thumb{display:flex;width:42px;height:42px;align-items:center;justify-content:center;overflow:hidden;border:1px solid #e5eaf1;border-radius:8px;background:#f8fafc}.map-result-thumb img{max-width:38px;max-height:38px;object-fit:contain}.map-fallback-glyph{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:7px;background:#eaf1ff;color:#2563eb;font-size:12px;font-weight:850}.map-fallback-glyph.is-monster{background:#fff2df;color:#b76700}.map-fallback-glyph.is-portal{background:#fff4d9;color:#b76700}.map-result-body{min-width:0}.map-result-body strong{display:block;overflow:hidden;color:#172033;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.map-result-body span{display:block;overflow:hidden;margin-top:3px;color:#94a3b8;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.map-result-item>em{color:#94a3b8;font-size:10px;font-style:normal}.map-result-empty{display:grid;flex:1;place-content:center;justify-items:center;gap:8px;color:#94a3b8;font-size:12px}.map-result-empty i{font-size:32px}
.map-result-empty[hidden]{display:none}.map-fullscreen-glyph{font-size:17px;line-height:1}
.map-tool-workspace{display:grid;min-width:0;height:clamp(650px,calc(100vh - 126px),780px);overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto;background:#e7ecf2}
.map-tool-toolbar{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dfe5ed;background:#fff;padding:8px 12px}.map-layer-switches,.map-zoom-controls{display:flex;align-items:center;gap:6px}.map-layer-switches button,.map-zoom-controls button{display:flex;height:32px;align-items:center;justify-content:center;border:1px solid #dce3ec;border-radius:7px;background:#fff;padding:0 9px;color:#64748b;font-size:11px}.map-layer-switches button i{width:8px;height:8px;margin-right:5px;border-radius:50%;background:#cbd5e1}.map-layer-switches button[data-layer-toggle="npc"].is-active i{background:#2563eb}.map-layer-switches button[data-layer-toggle="monster"].is-active i{background:#e11d48}.map-layer-switches button[data-layer-toggle="portal"].is-active i{border-radius:2px;background:#f59e0b}.map-layer-switches button.is-active{border-color:#b7c9e7;color:#334155;background:#f6f9ff}.map-zoom-controls>span{min-width:44px;text-align:center;color:#64748b;font-size:10px}.map-zoom-controls button:first-child,.map-zoom-controls button:nth-child(3){width:32px;padding:0;font-size:17px}
.map-canvas-wrap{position:relative;min-height:0;overflow:hidden;background-color:#d8dee6;background-image:linear-gradient(45deg,rgba(255,255,255,.28) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.28) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.28) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.28) 75%);background-position:0 0,0 12px,12px -12px,-12px 0;background-size:24px 24px;cursor:grab;outline:0;touch-action:none}.map-canvas-wrap.is-dragging{cursor:grabbing}.map-canvas-wrap:focus-visible{box-shadow:inset 0 0 0 3px rgba(37,99,235,.35)}
.map-canvas{position:absolute;left:50%;top:50%;width:auto;height:min(94%,690px);aspect-ratio:1/1;overflow:hidden;border:1px solid rgba(15,23,42,.18);border-radius:4px;background:#c9d7b7;box-shadow:0 14px 35px rgba(15,23,42,.2);transform:translate(-50%,-50%) scale(1);transform-origin:center;will-change:transform}.map-canvas>img{display:block;width:100%;height:100%;object-fit:cover;user-select:none}.map-marker-layer{position:absolute;inset:0}
.map-tool-marker{position:absolute;z-index:3;width:14px;height:14px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:#2563eb;box-shadow:0 2px 7px rgba(15,23,42,.5);cursor:pointer;transition:transform .15s ease,opacity .15s ease}.map-tool-marker:hover,.map-tool-marker.is-selected{z-index:7;transform:translate(-50%,-50%) scale(1.45)}.map-tool-marker.is-selected{box-shadow:0 0 0 6px rgba(37,99,235,.24),0 3px 9px rgba(15,23,42,.45)}.map-tool-marker.is-monster{z-index:4;width:11px;height:11px;border-width:1.5px;background:#e11d48;box-shadow:0 1px 5px rgba(136,19,55,.55)}.map-tool-marker.is-monster.is-selected{z-index:7;box-shadow:0 0 0 5px rgba(225,29,72,.2),0 3px 9px rgba(136,19,55,.5)}.map-tool-marker.is-portal{width:16px;height:16px;border:0;border-radius:0;background:transparent;box-shadow:none}.map-tool-marker.is-portal:before{content:"";position:absolute;inset:0;transform:rotate(45deg);border:2px solid #fff;border-radius:3px;background:#f59e0b;box-shadow:0 2px 7px rgba(15,23,42,.5)}.map-tool-marker.is-portal:hover,.map-tool-marker.is-portal.is-selected{transform:translate(-50%,-50%) scale(1.4)}.map-tool-marker.is-portal.is-selected:before{box-shadow:0 0 0 6px rgba(245,158,11,.23),0 3px 9px rgba(15,23,42,.45)}.map-tool-marker[hidden]{display:none}
.map-tool-marker span{position:absolute;left:50%;bottom:22px;display:none;width:max-content;max-width:180px;transform:translateX(-50%);border-radius:5px;background:rgba(15,23,42,.92);padding:5px 8px;color:#fff;font-size:10px;line-height:1.3;text-align:center;white-space:normal}.map-tool-marker:hover span,.map-tool-marker:focus-visible span{display:block}.map-tool-marker.tip-below span{top:22px;bottom:auto}.map-tool-marker.tip-left span{left:-3px;right:auto;transform:none;text-align:left}.map-tool-marker.tip-right span{right:-3px;left:auto;transform:none;text-align:right}
.map-area-focus{position:absolute;left:50%;top:50%;z-index:6;display:grid;max-width:70%;justify-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.85);border-radius:11px;background:rgba(15,23,42,.84);padding:13px 17px;color:#fff;text-align:center;box-shadow:0 10px 32px rgba(15,23,42,.35);backdrop-filter:blur(4px)}.map-area-focus[hidden]{display:none}.map-area-focus i{width:24px;height:24px;margin-bottom:8px;border:5px solid rgba(245,158,11,.32);border-radius:50%;background:#f59e0b;box-shadow:0 0 0 12px rgba(245,158,11,.15)}.map-area-focus strong{font-size:13px}.map-area-focus span{margin-top:4px;color:#dbe4f1;font-size:10px}
.map-coordinate-readout,.map-drag-tip{position:absolute;z-index:8;bottom:11px;border:1px solid rgba(255,255,255,.6);border-radius:6px;background:rgba(15,23,42,.78);padding:6px 9px;color:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;backdrop-filter:blur(4px)}.map-coordinate-readout{left:11px}.map-drag-tip{right:11px;font-family:inherit}.map-drag-tip i{margin-right:4px}
.map-selection-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;min-height:72px;border-top:1px solid #dfe5ed;background:#fff;padding:10px 13px}.map-selection-icon{display:flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:9px;background:#eef4ff;color:#2563eb;font-size:20px}.map-selection-icon .map-fallback-glyph{width:30px;height:30px}.map-selection-card span{display:block;color:#94a3b8;font-size:9px;font-weight:750;letter-spacing:.08em}.map-selection-card strong{display:block;margin-top:2px;color:#172033;font-size:12px}.map-selection-card p{margin:2px 0 0;color:#64748b;font-size:10px}.map-selection-card a{border-radius:7px;background:#2563eb;padding:7px 10px;color:#fff;font-size:10px;font-weight:700}.map-tool-no-image{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;color:#64748b}.map-tool-no-image i{font-size:42px}.map-tool-no-image strong{color:#334155;font-size:15px}.map-tool-no-image span{font-size:11px}.map-ui-glyph{font-style:normal;font-weight:800}
.map-portal-panel{margin-top:16px;border:1px solid #dfe5ed;border-radius:14px;background:#fff;padding:20px;box-shadow:0 12px 34px rgba(15,23,42,.06)}.map-portal-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.map-portal-panel-head>div>span{color:#b45309;font-size:9px;font-weight:850;letter-spacing:.16em}.map-portal-panel-head h2{margin:3px 0 5px;color:#172033;font-size:20px}.map-portal-panel-head p{margin:0;color:#64748b;font-size:11px}.map-portal-counts{flex:none;border-radius:8px;background:#fff7e6;padding:9px 12px;color:#92400e;font-size:11px}.map-portal-counts b{font-size:15px}.map-portal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.map-portal-columns>div{min-width:0}.map-portal-columns h3{margin:0 0 9px;color:#334155;font-size:12px}.map-portal-route{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1.2fr);gap:7px;align-items:center;margin-top:7px;border:1px solid #e8edf3;border-radius:9px;background:#f8fafc;padding:10px}.map-portal-route>i{color:#d97706;font-size:15px;font-style:normal;text-align:center}.map-portal-route div{display:grid;min-width:0;gap:2px}.map-portal-route small{color:#94a3b8;font-size:9px}.map-portal-route strong{overflow:hidden;color:#172033;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.map-portal-route strong a{color:#2563eb}.map-portal-route span{color:#64748b;font-size:9px}.map-portal-empty{margin:0;border:1px dashed #d8dee8;border-radius:9px;padding:15px;color:#94a3b8;font-size:11px;text-align:center}
html.dark .map-tool-page{background:linear-gradient(180deg,#101113 0,#15171a 100%)}html.dark .map-tool-title-row h1{color:#f5f5f5}html.dark .map-switcher-label select,html.dark .map-tool-stats>div,html.dark .map-tool-sidebar,html.dark .map-tool-toolbar,html.dark .map-selection-card{border-color:#30343a;background:#181a1d;color:#eee}html.dark .map-tool-stats strong,html.dark .map-result-body strong,html.dark .map-selection-card strong,html.dark .map-tool-no-image strong{color:#f2f2f2}html.dark .map-tool-shell{border-color:#30343a;background:#181a1d}html.dark .map-tool-search input{border-color:#343941;background:#111315;color:#f2f2f2}html.dark .map-tool-tabs,html.dark .map-tool-sidebar{border-color:#30343a}html.dark .map-result-item:hover{background:#20242a}html.dark .map-result-item.is-selected{border-color:#365f9d;background:#17233a}html.dark .map-tool-workspace{background:#24282d}html.dark .map-layer-switches button,html.dark .map-zoom-controls button{border-color:#3a3e45;background:#1c1e22;color:#cbd5e1}html.dark .map-portal-panel{border-color:#30343a;background:#181a1d}html.dark .map-portal-panel-head h2,html.dark .map-portal-route strong,html.dark .map-portal-columns h3{color:#f2f2f2}html.dark .map-portal-counts{background:#33240e;color:#fbbf24}html.dark .map-portal-route{border-color:#30343a;background:#111315}html.dark .map-portal-empty{border-color:#343941}
@media(max-width:1020px){.map-tool-shell{grid-template-columns:280px minmax(0,1fr)}.map-tool-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.map-tool-page{padding-top:14px}.map-tool-heading{align-items:stretch;flex-direction:column}.map-switcher-label{min-width:0}.map-tool-title-row h1{font-size:23px}.map-tool-shell{height:auto;min-height:0;grid-template-columns:1fr;overflow:visible}.map-tool-sidebar{height:390px;border-right:0;border-bottom:1px solid #e3e8ef}.map-tool-workspace{height:650px}.map-tool-toolbar{align-items:flex-start;flex-direction:column}.map-canvas{width:min(96%,590px);height:auto}.map-tool-stats>div{padding:10px}.map-drag-tip{display:none}}
@media(max-width:760px){.map-portal-panel-head{align-items:flex-start;flex-direction:column}.map-portal-columns{grid-template-columns:1fr}}
@media(max-width:480px){.map-tool-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.map-tool-stats span{display:grid}.map-tool-toolbar{gap:7px}.map-layer-switches,.map-zoom-controls{width:100%;justify-content:space-between}.map-zoom-controls button{padding:0 7px}.map-tool-workspace{height:590px}.map-selection-card{grid-template-columns:36px minmax(0,1fr)}.map-selection-card a{grid-column:1/-1;text-align:center}.map-coordinate-readout{bottom:8px;left:8px}}
