.loading-panel{min-height:180px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--ink-soft)}
.paldeck-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:12px;padding:14px;margin-bottom:18px}.paldeck-toolbar .search{margin:0}.paldeck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.pal-card{border:1px solid var(--line);padding:14px;text-align:left;min-height:250px;position:relative;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.pal-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px rgba(12,48,54,.13);border-color:rgba(8,127,122,.38)}.pal-card-art{display:block;width:140px;height:140px;object-fit:contain;margin:4px auto}.dex-number{position:absolute;top:13px;left:14px;color:var(--ink-soft);font-size:11px;font-weight:800;letter-spacing:.08em}.pal-card-copy{display:grid;gap:7px}.pal-card-copy>strong{font:600 19px var(--font-display)}.pal-card-copy small{color:var(--ink-soft)}.element-chip{display:inline-flex;border-radius:99px;padding:3px 8px;margin:0 4px 0 0;color:#fff;background:#6f7d80;font-size:10px;font-weight:800}.element-fire{background:#d85c39}.element-water{background:#3e8eb8}.element-grass{background:#55a35e}.element-electric{background:#d5a928}.element-ground{background:#9c7655}.element-ice{background:#55aeb2}.element-dragon{background:#8d66a9}.element-dark{background:#554a70}.paldeck-empty{grid-column:1/-1}.pal-detail-dialog{width:min(680px,calc(100vw - 28px))}.pal-detail-hero{display:flex;align-items:center;gap:22px}.pal-detail-art{width:170px;height:170px;object-fit:contain}.pal-detail-hero h2{font-size:38px;margin:5px 0 12px}.pal-description{line-height:1.65;color:var(--ink-soft)}.pal-stat-grid,.save-facts{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:20px 0}.pal-stat-grid span,.save-facts span{padding:12px;border-radius:12px;background:var(--surface-soft);display:grid;gap:3px}.pal-stat-grid small,.save-facts small{color:var(--ink-soft);font-size:10px}.pal-stat-grid b,.save-facts b{font-size:17px}.work-list{display:flex;flex-wrap:wrap;gap:7px}.work-chip{background:#eaf4ef;border:1px solid #d0e6dd;color:#2e6253;padding:7px 10px;border-radius:10px;font-size:12px}.work-chip b{margin-left:5px}.pal-fallback{display:grid;place-items:center;width:100%;height:100%;color:var(--ink-soft)}
.map-toolbar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.map-toolbar>span{color:var(--ink-soft);font-size:13px;font-weight:700}.map-toolbar>small{color:var(--ink-soft);font-size:12px}.world-map{overflow:hidden}.map-shell{position:relative;background:#081c21}.map-viewport{height:min(68vh,760px);overflow:hidden;background:#081c21;position:relative;cursor:grab;user-select:none;touch-action:none;outline:none}.map-viewport:focus-visible{box-shadow:inset 0 0 0 3px var(--teal);z-index:1}.map-viewport.is-dragging{cursor:grabbing}.map-canvas{width:calc(100% * var(--map-zoom));position:relative;transform-origin:0 0;will-change:width}.map-canvas>img{display:block;width:100%;height:auto;pointer-events:none}.map-type-control{position:absolute;z-index:5;top:12px;left:12px;background:rgba(255,255,255,.94);box-shadow:0 4px 18px rgba(0,0,0,.28);backdrop-filter:blur(10px)}.segmented{display:flex;padding:3px;border-radius:10px}.segmented button{min-height:38px;border:0;background:transparent;padding:8px 12px;border-radius:8px;color:var(--ink-soft);font-weight:700;cursor:pointer}.segmented button.active{background:#fff;color:var(--teal);box-shadow:0 3px 10px rgba(20,45,50,.12)}.map-navigation{position:absolute;z-index:5;top:12px;right:12px;display:grid;gap:8px}.map-control-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(10,34,39,.14);border-radius:8px;background:rgba(255,255,255,.96);color:#17383d;box-shadow:0 3px 14px rgba(0,0,0,.25);cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.map-control-button:hover{background:#fff;color:var(--teal);box-shadow:0 5px 18px rgba(0,0,0,.32)}.map-control-button:focus-visible{outline:3px solid var(--mint);outline-offset:2px}.map-control-button svg{width:21px;height:21px}.map-zoom-buttons{display:grid;border-radius:8px;overflow:hidden;box-shadow:0 3px 14px rgba(0,0,0,.25)}.map-zoom-buttons .map-control-button{border-radius:0;box-shadow:none}.map-zoom-buttons span{min-height:28px;display:grid;place-items:center;background:rgba(255,255,255,.96);color:#35575b;font:700 10px/1 var(--body);font-variant-numeric:tabular-nums;border-top:1px solid rgba(10,34,39,.1);border-bottom:1px solid rgba(10,34,39,.1)}.map-compass{position:absolute;z-index:4;top:16px;left:50%;transform:translateX(-50%);display:grid;justify-items:center;color:#fff;filter:drop-shadow(0 2px 4px #000);font-size:10px;font-weight:900;letter-spacing:.12em}.map-compass svg{width:25px;height:25px;fill:rgba(255,255,255,.24)}.map-help{position:absolute;z-index:4;left:12px;bottom:12px;padding:7px 10px;border-radius:7px;background:rgba(7,26,30,.76);color:#fff;font-size:11px;font-weight:700;box-shadow:0 3px 12px rgba(0,0,0,.22);backdrop-filter:blur(8px)}.map-help span{opacity:.55;margin:0 4px}.map-marker{position:absolute;transform:translate(-50%,-50%);border:0;background:none;display:grid;justify-items:center;z-index:2;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45));cursor:pointer}.map-marker>span{display:grid;place-items:center;color:#fff;border:3px solid #fff;border-radius:50%;width:36px;height:36px}.map-marker svg{width:19px}.map-marker>b{color:#fff;text-shadow:0 2px 5px #000;font-size:11px;white-space:nowrap;margin-top:4px}.base-marker>span{background:#ef7f3e}.player-marker>span{background:var(--teal);font-weight:900}.map-legend{display:flex;align-items:center;gap:20px;padding:13px 18px;color:var(--ink-soft);font-size:12px}.map-legend span{display:flex;align-items:center;gap:7px}.map-legend small{margin-left:auto}.map-legend i{width:11px;height:11px;border-radius:50%;display:inline-block}.legend-base{background:#ef7f3e}.legend-player{background:var(--teal)}.map-shell:fullscreen{width:100vw;height:100vh;background:#081c21}.map-shell:fullscreen .map-viewport{width:100vw;height:100vh}.map-shell:fullscreen .map-help{bottom:20px}
.save-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.save-summary article{padding:17px;display:grid;grid-template-columns:36px 1fr;align-items:center}.save-summary article>span{grid-row:1/3;color:var(--teal)}.save-summary svg{width:24px}.save-summary small{color:var(--ink-soft)}.save-summary b{font-size:22px}.save-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px}.save-player-list{padding:9px;align-self:start}.save-player-list>button{width:100%;border:0;background:none;padding:10px;display:flex;align-items:center;gap:10px;border-radius:11px;text-align:left;color:var(--ink)}.save-player-list>button.active{background:var(--teal);color:#fff}.save-player-list>button span:last-child{display:grid}.save-player-list small{opacity:.7}.save-player-detail{padding:25px;min-width:0}.save-player-head{display:flex;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}.save-player-head h2{font:600 28px var(--font-display);margin:2px 0}.save-player-head p{margin:0;color:var(--ink-soft)}.player-avatar.large{width:58px;height:58px;font-size:17px}.owned-pal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 24px}.owned-pal{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;padding:9px;display:flex;gap:10px;text-align:left;color:var(--ink)}.owned-pal>img,.owned-pal>.pal-fallback{width:58px;height:58px;object-fit:contain;flex:0 0 58px}.owned-pal>span:last-child{display:grid;align-content:center;min-width:0}.owned-pal small{color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-groups{display:grid;gap:10px}.inventory-groups section{border:1px solid var(--line);border-radius:12px;padding:12px}.inventory-groups h4{margin:0 0 8px}.inventory-groups section>div{display:flex;flex-wrap:wrap;gap:6px}.item-stack{font-size:11px;border-radius:8px;background:var(--surface-soft);padding:6px 8px}.muted{color:var(--ink-soft)}
@media(max-width:900px){.paldeck-toolbar{grid-template-columns:1fr 1fr}.paldeck-toolbar .search{grid-column:1/-1}.save-layout{grid-template-columns:1fr}.save-player-list{display:flex;overflow:auto}.save-player-list>button{min-width:190px}.pal-stat-grid,.save-facts{grid-template-columns:repeat(3,1fr)}.owned-pal-grid{grid-template-columns:1fr}.map-toolbar{flex-wrap:wrap}.map-toolbar>span{margin-left:0}.map-legend{flex-wrap:wrap}.map-legend small{margin-left:0;width:100%}}
@media(max-width:600px){.paldeck-toolbar{grid-template-columns:1fr}.paldeck-toolbar .search{grid-column:auto}.paldeck-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pal-card{min-height:210px;padding:10px}.pal-card-art{width:105px;height:105px}.pal-card-copy>strong{font-size:16px}.save-summary{grid-template-columns:1fr 1fr}.save-player-detail{padding:16px}.pal-detail-hero{align-items:flex-end}.pal-detail-art{width:120px;height:120px}.pal-detail-hero h2{font-size:28px}.map-viewport{height:62vh}.map-type-control{top:8px;left:8px}.map-navigation{top:8px;right:8px}.map-control-button{width:44px;height:44px}.map-help{display:none}}

/* Live and last-known player locations */
.saved-player-marker { opacity:.82; }
.saved-player-marker>span { background:#397f88; border-style:dashed; }
.online-player-marker { z-index:3; }
.online-player-marker>span { position:relative; background:#24a66a; box-shadow:0 0 0 7px rgba(36,166,106,.22); animation:onlineMarkerPulse 2.2s ease-out infinite; }
.online-player-marker>span>i { position:absolute; right:-3px; top:-3px; width:11px; height:11px; border:2px solid #fff; border-radius:50%; background:#70eea9; }
.legend-live-player { background:#24a66a; box-shadow:0 0 0 3px rgba(36,166,106,.18); }
@keyframes onlineMarkerPulse { 0%,100% { box-shadow:0 0 0 5px rgba(36,166,106,.22); } 50% { box-shadow:0 0 0 11px rgba(36,166,106,0); } }
@media (prefers-reduced-motion:reduce) { .online-player-marker>span { animation:none; } }

/* Searchable Palpagos atlas */
.atlas-tools{padding:14px 16px 12px;background:linear-gradient(135deg,#f7fbf9,#edf7f4);border-bottom:1px solid var(--line)}
.atlas-search{height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid rgba(17,104,101,.24);border-radius:13px;background:#fff;box-shadow:0 7px 24px rgba(10,70,69,.08)}
.atlas-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(27,169,157,.15),0 8px 25px rgba(10,70,69,.1)}
.atlas-search svg{width:20px;color:var(--teal);flex:0 0 auto}
.atlas-search input{border:0;outline:0;background:transparent;min-width:0;flex:1;font:700 14px var(--body);color:var(--ink)}
.atlas-search input::placeholder{color:#7b9698;font-weight:600}
.atlas-search kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--surface-soft);padding:2px 7px;color:var(--ink-soft);font:700 11px var(--body)}
.atlas-layers{display:flex;gap:7px;overflow-x:auto;padding:11px 1px 2px;scrollbar-width:thin}
.atlas-layers button{min-height:36px;display:flex;align-items:center;gap:7px;flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:5px 10px 5px 6px;background:#fff;color:var(--ink-soft);font:700 11px var(--body);cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}
.atlas-layers button:hover{transform:translateY(-1px);border-color:rgba(15,124,118,.42)}
.atlas-layers button.active{background:#123f42;color:#fff;border-color:#123f42;box-shadow:0 5px 14px rgba(8,53,57,.17)}
.atlas-layers button:focus-visible,.atlas-result:focus-visible,.atlas-marker:focus-visible{outline:3px solid var(--mint);outline-offset:2px}
.atlas-layers button i,.atlas-result-glyph{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#688083;color:#fff;font-style:normal;font-size:10px;font-weight:900}
.atlas-layers button small{opacity:.72;font-size:9px}
.atlas-layers button i.atlas-fast-travel,.atlas-fast-travel>span,.atlas-result-glyph.atlas-fast-travel{background:#1599d0}
.atlas-layers button i.atlas-tower,.atlas-tower>span,.atlas-result-glyph.atlas-tower{background:#7855b7}
.atlas-layers button i.atlas-dungeon,.atlas-dungeon>span,.atlas-result-glyph.atlas-dungeon{background:#445a67}
.atlas-layers button i.atlas-alpha-pal,.atlas-alpha-pal>span,.atlas-result-glyph.atlas-alpha-pal{background:#ec5c43}
.atlas-layers button i.atlas-sealed-realm,.atlas-sealed-realm>span,.atlas-result-glyph.atlas-sealed-realm{background:#c58a22}
.atlas-layers button i.atlas-resource,.atlas-resource>span,.atlas-result-glyph.atlas-resource{background:#df9d30}
.atlas-layers button i.atlas-pal-habitat,.atlas-pal-habitat>span,.atlas-result-glyph.atlas-pal-habitat{background:#3fa56f}
.atlas-results{display:flex;gap:8px;overflow-x:auto;max-height:84px;padding:8px 1px 1px;scrollbar-width:thin}
.atlas-search-hint{min-height:46px;display:flex;align-items:center;color:var(--ink-soft);font-size:12px}
.atlas-result{min-width:220px;max-width:280px;height:58px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:7px 10px;text-align:left;color:var(--ink);cursor:pointer}
.atlas-result:hover,.atlas-result.selected{border-color:var(--teal);background:#f2fbf8}
.atlas-result>img{width:42px;height:42px;object-fit:contain;flex:0 0 42px}
.atlas-result>span:last-child{display:grid;min-width:0}
.atlas-result strong,.atlas-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atlas-result strong{font-size:12px}
.atlas-result small{color:var(--ink-soft);font-size:10px;margin-top:3px}
.atlas-marker{position:absolute;z-index:2;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;display:grid;justify-items:center;cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.atlas-marker>span,.atlas-marker>img{width:26px;height:26px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;color:#fff;font:900 10px var(--body);box-shadow:0 0 0 1px rgba(4,37,39,.35)}
.atlas-marker>img{object-fit:contain;background:#e9f8ef}
.atlas-marker>b{display:none;position:absolute;top:31px;max-width:170px;border-radius:6px;background:rgba(5,30,33,.9);padding:4px 7px;color:#fff;font-size:9px;white-space:nowrap;pointer-events:none}
.atlas-marker:hover{z-index:7}
.atlas-marker:hover>b,.atlas-marker:focus-visible>b,.atlas-marker.selected>b{display:block}
.atlas-marker.selected>span,.atlas-marker.selected>img{width:34px;height:34px;border-width:3px;box-shadow:0 0 0 6px rgba(63,201,167,.3)}
.atlas-pal-habitat>img{width:32px;height:32px}
.legend-fast-travel{background:#1599d0}.legend-alpha{background:#ec5c43}.legend-habitat{background:#3fa56f}.legend-resource{background:#df9d30}
#map-base-markers .map-marker,#map-player-markers .map-marker{z-index:8}
#map-base-boundaries{position:absolute;inset:0;z-index:1;pointer-events:none}
.base-boundary{position:absolute;width:var(--base-boundary-size);aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid hsl(var(--guild-hue) 82% 48%/.92);border-radius:50%;background:hsl(var(--guild-hue) 88% 58%/.16);box-shadow:0 0 0 1px rgba(255,255,255,.72),inset 0 0 18px hsl(var(--guild-hue) 90% 42%/.18),0 0 16px hsl(var(--guild-hue) 90% 55%/.28)}
.base-marker>span{background:hsl(var(--guild-hue,24) 76% 52%)}
.legend-boundary{border:2px solid #e07335!important;background:rgba(239,127,62,.16)!important}
@media(max-width:700px){
  .atlas-tools{padding:10px}
  .atlas-search{height:44px}
  .atlas-search kbd{display:none}
  .atlas-layers{margin-right:-10px}
  .atlas-results{margin-right:-10px}
  .atlas-result{min-width:190px;max-width:230px}
  .atlas-marker>b{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  .atlas-layers button{transition:none}
}
