/* Azeroth Journey zone maps and position display. */
.zone-mini{position:absolute;z-index:9;right:14px;top:14px;width:150px;border:1px solid #ad9363;background:#101b21e9;padding:7px;border-radius:10px;box-shadow:0 8px 25px #0008;pointer-events:none}
.zone-mini[hidden],#backZone[hidden]{display:none}
.zone-mini-title{font:700 10px Georgia;color:#e9d098;margin-bottom:6px}
.zone-mini-img{width:100%;position:relative;aspect-ratio:1002 / 668;overflow:hidden}
.zone-mini-img img{width:100%;height:100%;object-fit:contain}
.zone-mini-dot{position:absolute;width:11px;height:11px;border-radius:50%;border:2px solid #ffe3a7;background:#ad7d32;box-shadow:0 0 10px #ffd18c;transform:translate(-50%,-50%)}
.zone-mini-note{font-size:9px;color:#a9b0a6;margin-top:4px}
#backZone{position:absolute;top:12px;left:12px;z-index:12;background:#1b3035;border:1px solid #d5b77f;color:#f1d7a1;border-radius:7px;padding:10px 12px;font-weight:700}
.zone-map-mode #markers,.zone-map-mode #paths{display:none!important}
@media(max-width:760px){.zone-mini{right:8px;top:56px;width:120px}.zone-mini-title{font-size:9px}}

.zone-pin{position:absolute;z-index:5;transform:translate(-50%,-50%);width:14px;height:14px;border:2px solid #dec493;border-radius:50%;padding:0;background:#28373bc9;box-shadow:0 2px 7px #000a;cursor:pointer}
.zone-pin:hover,.zone-pin:focus-visible{width:20px;height:20px;background:#d6b56d;box-shadow:0 0 12px #ffdf93}
.zone-pin.active{width:19px;height:19px;background:#e8bb66;border-color:#fff3cd;box-shadow:0 0 13px #f1ce87}
.zone-map-mode .zone-pin{display:none}

/* A full WoW macro character snapshot can create/update a local player. */
.char-snapshot-import{margin-top:14px;padding:0 12px 12px;border:1px solid #71806c;border-radius:10px;background:#1b2e2c}
.char-snapshot-import>summary{font:700 13px/1.4 system-ui;color:#e5d0a2;cursor:pointer;padding:12px 0}
.char-snapshot-import textarea{font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;width:100%;min-height:92px;padding:9px;background:#0d1a1d;border:1px solid #6b796d;border-radius:7px;color:#e9e6de;resize:vertical}
.char-snapshot-import .btn-primary{margin-top:7px;min-height:38px}
.char-snapshot-import .status{margin-top:9px;overflow-wrap:anywhere}
.char-snapshot-import p{font-size:11px;line-height:1.5;color:#b9c4b6}
.char-snapshot-import code{white-space:normal;overflow-wrap:anywhere;color:#dbc8a5}


/* Data-backed entire-zone hit areas. Polygons and matching map artwork share
   the same UiMapAssignment coordinate system and pinned client build. */
.map-stage #zoneShapes{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:hidden;pointer-events:auto;cursor:inherit}
#paths{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#markers{position:absolute;inset:0;z-index:2;pointer-events:none}
#markers .marker{pointer-events:auto}
#zonePins{position:absolute;inset:0;z-index:3;pointer-events:none}
.zone-keyboard-button{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;padding:0;border:0;border-radius:50%;opacity:0;pointer-events:none;background:transparent;color:transparent}
.zone-keyboard-button:focus-visible{opacity:1;border:2px solid #ffe4a0;background:#e6c56e66;box-shadow:0 0 0 4px #111a,0 0 14px #f8de99;outline:none}
#zoneShapes[hidden],#zoneTooltip[hidden]{display:none!important}
#zoneTooltip{position:absolute;z-index:13;pointer-events:none;max-width:220px;padding:8px 11px;
 background:#112428f2;color:#f8e4ad;border:1px solid #d7b777;border-radius:8px;
 box-shadow:0 8px 28px #02090cdb;font:700 13px/1.35 system-ui;white-space:normal}
#zoneTooltip small{display:block;font-size:10px;color:#c9d1bf;font-weight:400;margin-top:4px}
.zone-map-mode #zoneShapes,.zone-map-mode #zoneTooltip{display:none!important}
.zone-map-mode #zoneMini{display:none!important}
#toggleZoneOverlay[aria-pressed="true"]{border-color:#d5b475;color:#ffefcf;background:#504931}
#toggleZoneOverlay:focus-visible{outline:2px solid #ffe6a0;outline-offset:2px}
@media(hover:none){.map-stage #zoneShapes{touch-action:manipulation}}


/* Three-area dashboard: map ~55%, Hall of Fame ~25%, fellowship ~20%.
   Overrides old 2-column layout without changing the map's DOM behavior. */
.layout{
 display:grid;
 grid-template-columns:minmax(420px,2.5fr) minmax(260px,1.13fr) minmax(280px,1fr);
 height:calc(100vh - 76px);
 min-height:580px;
}
.hall-panel{
 min-width:0;display:flex;flex-direction:column;overflow:hidden;
 background:linear-gradient(160deg,#242727 0%,#1c272a 45%,#172326 100%);
 border-left:1px solid #806c47;border-right:1px solid #67563a;
}
.hall-heading{padding:23px 18px 14px;border-bottom:1px solid #5c5140;
 background:radial-gradient(ellipse at top right,#4d463133,transparent 75%)}
.hall-eyebrow{color:#c6a873;font:600 10px/1.4 system-ui;letter-spacing:2px}
.hall-heading h2{font:28px/1.15 Georgia,serif;color:#f0d5a0;margin:10px 0 8px}
.hall-heading p{font-size:12px;color:#b7bdac;margin:0}
.hall-summary{margin:14px 14px 6px;padding:9px 11px;border:1px solid #61563f;
 border-radius:9px;color:#ddc48d;background:#34362e7a;font-size:12px}
.hall-feed{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:9px 13px 18px;display:flex;flex-direction:column;gap:11px}
.hall-privacy{border-top:1px solid #534f40;padding:12px 17px;color:#aeb6ab;font-size:10px;line-height:1.5}
.hall-card{min-width:0;display:flex;align-items:flex-start;gap:11px;
 padding:13px 12px 12px;border-radius:12px;border:1px solid #5c665d;
 background:linear-gradient(140deg,#293a37,#222d31);box-shadow:0 3px 12px #060e102e}
.hall-card.is-rare{border-color:#977a44;background:linear-gradient(145deg,#40392a,#282d2b)}
.hall-icon{font-size:23px;line-height:1;background:#192824;border:1px solid #506b59;
 border-radius:10px;width:39px;height:39px;display:grid;place-items:center;flex:none}
.hall-body{min-width:0;flex:1}
.hall-type{display:block;color:#c8c5af;font-size:10px;letter-spacing:1px;text-transform:uppercase}
.hall-who{display:block;font:700 15px/1.35 Georgia,serif;color:#f4dfb1;margin:5px 0}
.hall-title{font-weight:700;font-size:13px;color:#e8edda;line-height:1.35}
.hall-detail{font-size:11px;line-height:1.55;color:#b3c3bd;margin-top:6px}
.hall-stamp{font-size:10px;color:#919e9d;margin-top:5px}
.hall-reactions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.hall-reaction{background:#192a2b;border:1px solid #50615c;border-radius:7px;
 color:#d6ddcf;font-size:12px;min-width:68px;padding:7px 10px;cursor:pointer;min-height:36px}
.hall-reaction:hover,.hall-reaction:focus-visible{border-color:#e0c98f;background:#344437}
.hall-reaction[aria-pressed="true"]{border-color:#eccd84;background:#66563b;color:#fff3d3}
.hall-empty{color:#bfc6b6;border:1px dashed #677567;margin:8px 1px;padding:22px 16px;
 border-radius:12px;font-size:12px;line-height:1.6}
.map-stage .marker{
 transform:translate(-50%,-50%) scale(var(--marker-scale,1));
 transform-origin:center center;
 will-change:transform;
}
.map-stage .marker.is-estimated{border-style:dashed;opacity:.8}
.zone-map-mode #markers{display:block!important}
.zone-map-mode #paths{display:none!important}
.zone-position-summary{
 position:absolute;top:64px;left:12px;z-index:12;
 max-width:min(335px,calc(100% - 24px));padding:11px 13px;
 background:#142a2ce8;border:1px solid #b39b6a;border-radius:9px;
 color:#f1e4c4;font:12px/1.45 system-ui;box-shadow:0 5px 18px #0008;
 pointer-events:none
}
.zone-position-summary b{display:block;font:700 16px Georgia,serif;color:#f2d59a;margin-bottom:5px}
.zone-position-summary small{display:block;color:#c0cabc;margin-top:5px}
.zone-position-summary[hidden]{display:none!important}
@media(max-width:1150px) and (min-width:851px){
 .layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(520px,1fr) auto;height:auto}
 .layout>.main{grid-column:1;grid-row:1;min-height:570px}
 .layout>.hall-panel{grid-column:2;grid-row:1;min-height:570px;max-height:calc(100vh - 76px)}
 .layout>.panel{grid-column:1 / -1;grid-row:2;max-height:none;border-top:1px solid #67563a}
 .layout>.panel .char-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
@media(max-width:850px){
 .layout{height:auto;min-height:0;display:flex;flex-direction:column}
 .layout>.main{height:64vh;min-height:440px}
 .layout>.hall-panel{min-height:350px;max-height:560px;border:0;border-top:1px solid #947746}
 .layout>.panel{height:auto;max-height:none;border:0;border-top:1px solid #67563a}
 .hall-feed{max-height:400px}
}
@media(max-width:500px){
 .hall-heading{padding:17px 15px 12px}
 .hall-heading h2{font-size:26px}
 .zone-position-summary{top:60px}
}

/* Classic Azeroth atlas: carved stone, antique brass and parchment. */
:root{--bg:#100e0b;--chrome:#19150f;--panel:#211b13;--line:#655239;--gold:#e4c487;--gold2:#b18a50;--text:#f3e8d0;--muted:#b8a98c;--soft:#31271b;--mint:#9ab39a}
html,body{background:#100e0b;color:var(--text);font-family:Georgia,'Times New Roman',serif}
button,input,select,textarea{font-family:Georgia,'Times New Roman',serif}
header{background:linear-gradient(#292116,#130f0b);border-bottom:3px double #92703c;box-shadow:0 4px 18px #0008}
header h1{color:#f0d59b;text-shadow:0 2px 2px #000,0 0 16px #94652755;font-size:34px;letter-spacing:2.1px}
header .tagline{color:#bf9d61;font:italic 12px Georgia,serif;letter-spacing:1px;text-transform:none}
header .right{font:11px Georgia,serif;letter-spacing:1.3px;color:#c9b58d}
.main{background:#15120e}
.atlas-head{background:linear-gradient(#2c2419,#18140f);border-bottom:2px ridge #79603a}
.atlas-head .intro{color:#bead8a;font:italic 12px Georgia,serif}
.tab,.tool,.hall-switch button{border-radius:2px;background:linear-gradient(#383023,#211b14);border:1px solid #7c6039;color:#e8d5b3;box-shadow:inset 0 1px #bea5741b,0 2px 3px #0007;font:12px Georgia,serif;padding:8px 12px}
.tab.active,.hall-switch button.active{background:linear-gradient(#755b32,#48351d);color:#fff0c2;border-color:#cda65a}
.tab:hover,.tool:hover,.hall-switch button:hover{background:#4b3925;border-color:#c6a260}
.map-viewport{cursor:default;touch-action:auto;background:radial-gradient(ellipse,#3b3020,#100e0b 80%)}
.map-viewport.dragging{cursor:default}
.map-viewport::after{box-shadow:inset 0 0 85px #090807d0}
.map-toolbar{background:linear-gradient(#2c2419,#17120e);border-top:2px ridge #695132}
#sourceStatus,#cloudSyncStatus{font:11px Georgia,serif;color:#bca987}
.hall-panel{background:linear-gradient(155deg,#292117,#17120f);border-left:2px ridge #927144;border-right:2px ridge #55412a}
.hall-heading{background:linear-gradient(#302619,#1c160f);border-bottom:2px groove #72542e}
.hall-heading h2{color:#f1d397;font:small-caps 29px Georgia,serif;text-shadow:0 2px 3px #000}
.hall-eyebrow{color:#a88755;letter-spacing:1.6px}
.hall-heading p{color:#c8b38f;font-style:italic}
.hall-switch{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.hall-switch button[hidden]{display:none}
.hall-summary{background:#21190f;color:#d7bb83;border-radius:2px;border:1px solid #6e5632}
.hall-card,.hall-card.is-rare{background:linear-gradient(#33291a,#211910);border:1px solid #715633;border-radius:3px;box-shadow:inset 0 1px #bca16d21,0 3px 9px #0007}
.hall-card.is-rare{border-color:#b58a43;box-shadow:inset 0 1px #e0b86a4a,0 0 8px #ae7e3430}
.hall-icon{background:#191208;border-color:#84643b;border-radius:2px}
.hall-type{color:#c6a36e}
.hall-title,.hall-who{color:#f3dcac;font-family:Georgia,serif}
.hall-detail,.hall-stamp{color:#b9aa90}
.hall-reaction{border-radius:2px;background:#2a2116;border-color:#6a5435}
.panel{background:linear-gradient(#241d14,#15110d);border-left:2px ridge #765b34}
.panel h2{font:small-caps 28px Georgia,serif;color:#eaca8c}
.panel h3{color:#cda86a}
.char-button{border-radius:3px;background:linear-gradient(#30271b,#211b14);border-color:#665138}
.char-button:hover,.char-button.active{background:#473723;border-color:#d7ad63}
.detail{border-radius:3px;background:linear-gradient(#302519,#1d180f);border-color:#8f6e39}
.event-card{border-radius:3px;background:#2a2118}
.feed-empty,.hall-empty{background:#231b12;border-color:#665337;border-radius:2px}
.zone-position-summary{background:#241a0ef2;border-color:#95703d;border-radius:2px}
#zoneTooltip,#zoneMini,.controls{display:none!important}
@media(max-width:850px){.hall-panel{border-top:2px ridge #846439}}
