/* DeepRoute Azeroth: fantasy shell around the EXISTING Leaflet map.
 * Additive stylesheet only: never changes tiles, CRS, positions or layer data.
 * Open panels participate in layout above 1260px; on smaller screens overlay map.
 */
body.dr-fantasy {
  --dr-gold: #d8ac55;
  --dr-gold-bright: #ffe19b;
  --dr-gold-dim: #795122;
  --dr-paper: #f4e5c5;
  --dr-muted: #bdac8b;
  --dr-ink: #140e0a;
  --dr-top-space: 100px;
  --dr-left-space: 13px;
  --dr-right-space: 13px;
  --dr-left-width: clamp(290px, 20vw, 354px);
  --dr-right-width: clamp(298px, 20vw, 355px);
  --panel: #1e150d;
  --text: var(--dr-paper);
  --muted: var(--dr-muted);
  --accent: var(--dr-gold-bright);
  --accent-2: var(--dr-gold);
  --panel-border: #99662e;
  background: #080b0b;
  color: var(--dr-paper);
  font-family: Georgia, 'Times New Roman', serif;
}
body.dr-fantasy.dr-top-collapsed { --dr-top-space: 12px; }
@media (min-width: 1261px) {
  body.dr-fantasy.dr-left-open { --dr-left-space: calc(var(--dr-left-width) + 24px); }
  body.dr-fantasy.dr-right-open { --dr-right-space: calc(var(--dr-right-width) + 24px); }
}
/* Original #map is merely resized; the Leaflet layer tree is never touched. */
body.dr-fantasy #map {
  position: fixed;
  inset: var(--dr-top-space) var(--dr-right-space) 14px var(--dr-left-space) !important;
  background: #071826 !important;
  transition: top .3s ease, left .3s ease, right .3s ease;
  border-radius: 4px;
  z-index: 1;
}
body.dr-fantasy #map.leaflet-container { background: #071826 !important; }
body.dr-fantasy #dr-map-frame {
  position: fixed;
  inset: calc(var(--dr-top-space) - 3px) calc(var(--dr-right-space) - 3px) 11px calc(var(--dr-left-space) - 3px);
  z-index: 900;
  pointer-events: none;
  border: 2px solid #a26d31;
  border-radius: 12px;
  box-shadow: 0 0 0 2px #25170b, 0 0 0 4px #d39b4c, 0 0 0 6px #201105,
              0 0 26px #000d, inset 0 0 0 2px #f4d08188, inset 0 0 22px #0008;
  transition: top .3s ease,left .3s ease,right .3s ease;
  background-image:
     linear-gradient(90deg,#e3b76c 0 44px,transparent 44px),
     linear-gradient(0deg,#e3b76c 0 44px,transparent 44px),
     linear-gradient(270deg,#e3b76c 0 44px,transparent 44px),
     linear-gradient(0deg,#e3b76c 0 44px,transparent 44px);
  background-position: 16px 19px,16px 19px,calc(100% - 16px) 19px,calc(100% - 16px) calc(100% - 19px);
  background-size: 0 0;
}
body.dr-fantasy #dr-map-frame::before,
body.dr-fantasy #dr-map-frame::after {
  position:absolute;content:"";width:40px;height:40px;pointer-events:none;
  border-color:#ebc274;
  filter:drop-shadow(0 1px 2px #000);
}
body.dr-fantasy #dr-map-frame::before {top:16px;left:16px;border-top:2px solid;border-left:2px solid;}
body.dr-fantasy #dr-map-frame::after {bottom:16px;right:16px;border-bottom:2px solid;border-right:2px solid;}
/* Top banner and independently accessible collapse handle. */
body.dr-fantasy .dr-topbar {
  position:fixed;z-index:2200;top:8px;left:11px;right:11px;height:82px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:8px 27px 8px 19px;
  border:2px solid #bc863a;border-radius:11px;
  background:
    radial-gradient(ellipse at 25% -40%,#5a391c8f 0,transparent 54%),
    repeating-linear-gradient(117deg,transparent 0 24px,#0002 25px 27px,transparent 28px 61px),
    linear-gradient(180deg,#21160e,#100d09 80%,#241509);
  box-shadow:0 0 0 2px #100b05,0 0 0 4px #603b13,0 0 0 6px #0c0a07,
             0 8px 18px #000b,inset 0 0 0 1px #f9ce78aa,inset 0 -10px 15px #0007;
  transition:transform .28s ease,opacity .28s ease;
}
body.dr-fantasy .dr-topbar::before,
body.dr-fantasy .dr-topbar::after {
  content:"✦";position:absolute;top:0;color:#dda95b;text-shadow:0 0 3px #000;font-size:17px;
}
body.dr-fantasy .dr-topbar::before {left:6px;}
body.dr-fantasy .dr-topbar::after {right:6px;}
body.dr-fantasy.dr-top-collapsed .dr-topbar {
  transform:translateY(calc(-100% - 14px));opacity:0;pointer-events:none;
}
body.dr-fantasy .dr-top-brand {display:flex;gap:15px;align-items:center;min-width:290px;max-width:52%;white-space:nowrap;}
body.dr-fantasy .dr-top-logo {
  width:62px;height:62px;object-fit:contain;flex:none;border:2px solid #b98b3c;
  border-radius:50%;background:radial-gradient(circle,#212314,#080b08);
  padding:6px;box-shadow:inset 0 0 0 2px #16100b,0 0 7px #cfab4a88;
}
body.dr-fantasy .dr-top-title {
  font-family:Georgia,'Times New Roman',serif;font-weight:400;
  font-size:clamp(20px,2.2vw,37px);line-height:1.08;letter-spacing:-.035em;
  font-variant:small-caps;color:#f7cc76;text-shadow:1px 2px 1px #000,0 0 7px #d9983036;
}
body.dr-fantasy .dr-top-subtitle {font-family:Georgia,serif;color:#cfb47c;letter-spacing:.22em;font-size:10px;margin-top:5px;}
body.dr-fantasy .dr-top-subtitle strong {color:#79d9a3;font-weight:700;letter-spacing:.17em;}
body.dr-fantasy .dr-top-search {flex:1;max-width:490px;min-width:130px;}
body.dr-fantasy .dr-top-search .dr-search-area {margin:0;}
body.dr-fantasy .dr-top-search .dr-search-field {
  background:linear-gradient(180deg,#090a0b,#15110e);border:1px solid #91612a;border-radius:5px;
  height:46px;box-shadow:inset 0 0 6px #000,0 0 0 2px #0e0b07;padding-inline:12px;
}
body.dr-fantasy .dr-top-search .dr-search-icon {color:#efbf62;font-size:25px;}
body.dr-fantasy .dr-top-search .dr-search-input {color:#f4e9d7;font-family:Georgia,serif;font-size:14px;}
body.dr-fantasy .dr-top-search .dr-search-input::placeholder {color:#c7b598;}
body.dr-fantasy .dr-top-search .dr-search-results {
  position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:15;
  background:#17110e;border:1px solid #a17339;border-radius:6px;
  box-shadow:0 12px 28px #000e;max-height:min(400px,65vh);
}
body.dr-fantasy .dr-top-actions {display:flex;gap:10px;flex:none;align-items:center;}
body.dr-fantasy .dr-top-actions button {
  display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:radial-gradient(circle,#302218 30%,#15100b 72%);border:2px solid #a67732;
  box-shadow:inset 0 0 0 2px #080605,0 0 0 1px #34210e;
  color:#ffda83;font:bold 21px Georgia,serif;cursor:pointer;
}
body.dr-fantasy .dr-top-actions button:hover,
body.dr-fantasy .dr-top-actions button:focus-visible {background:#533119;color:#fff3c9;}
body.dr-fantasy .dr-top-handle {
  position:fixed;z-index:2500;top:1px;left:50%;transform:translateX(-50%);
  width:68px;height:25px;display:grid;place-items:center;cursor:pointer;
  color:#f8d17c;font:bold 20px Arial,sans-serif;line-height:1;
  background:linear-gradient(180deg,#322315,#100c07);
  border:2px solid #bd873d;border-radius:0 0 12px 12px;
  box-shadow:0 3px 6px #000a,inset 0 -2px 2px #000;
}
body.dr-fantasy.dr-top-collapsed .dr-top-handle {background:#33210e;}
body.dr-fantasy .dr-top-handle:hover {color:#fff7e1;filter:brightness(1.2);}
/* Ornate side drawers. Their contents are the exact existing functional DOM. */
body.dr-fantasy .drawer {
  position:fixed;top:var(--dr-top-space);bottom:13px;width:var(--dr-left-width);
  border:2px solid #9a6a2d;border-radius:8px;
  background:
    radial-gradient(ellipse at top left,#57361b55,transparent 55%),
    repeating-linear-gradient(127deg,transparent 0 53px,#0002 54px 56px,transparent 57px 98px),
    linear-gradient(90deg,#1b110c,#120e0a 50%,#1d130b);
  color:#f2dfb8;
  box-shadow:inset 0 0 0 2px #34200d,inset 0 0 0 3px #b1803b69,
             0 0 0 2px #241406,0 6px 19px #000b;
  backdrop-filter:none;z-index:1800;
  transition:top .3s ease,transform .28s ease;
}
body.dr-fantasy .drawer.left {left:12px;right:auto;}
body.dr-fantasy .drawer.right {right:12px;left:auto;width:var(--dr-right-width);}
body.dr-fantasy .drawer.left:not(.open) {transform:translateX(calc(-100% - 16px));}
body.dr-fantasy .drawer.right:not(.open) {transform:translateX(calc(100% + 16px));}
body.dr-fantasy .drawer.open {transform:translateX(0);}
body.dr-fantasy .drawer-header {
  padding:0;height:0;min-height:0;border:0;overflow:visible;background:none;flex:0 0 0;
}
body.dr-fantasy .drawer-header .brand-wrap,
body.dr-fantasy #drawer-right .drawer-header .brand-title,
body.dr-fantasy #drawer-right .drawer-header .brand-subtitle {display:none;}
body.dr-fantasy .drawer-header .drawer-close {
  position:absolute;top:7px;right:9px;width:24px;height:24px;
  padding:0;background:transparent;border:0;box-shadow:none;border-radius:3px;
  color:#bb9350;font:20px/1 Georgia,serif;z-index:2;
}
body.dr-fantasy .drawer-header .drawer-close:hover {color:#ffdf92;background:#372716;}
body.dr-fantasy .drawer-body {padding:10px;overflow-y:auto;overflow-x:hidden;scrollbar-color:#806037 #1a110b;}
body.dr-fantasy .panel-block,
body.dr-fantasy #drawer-left .dr-left-info,
body.dr-fantasy #drawer-right .dr-card,
body.dr-fantasy #drawer-right .dr-layer-list {
  background:linear-gradient(160deg,#26190e,#120e0a 75%);
  border:1px solid #755028;border-radius:6px;
  box-shadow:inset 0 0 0 1px #23180e,0 1px 0 #c2904544;
  color:#e6d3ad;
}
body.dr-fantasy .panel-block {padding:10px 10px 7px;margin-bottom:11px;}
body.dr-fantasy .panel-block h2,
body.dr-fantasy #drawer-left .dr-left-info>summary,
body.dr-fantasy #drawer-right .dr-section-caption,
body.dr-fantasy #drawer-right .dr-card h3,
body.dr-fantasy #drawer-right .dr-catalog>summary {
  color:#f4c36c;text-transform:uppercase;font-variant:small-caps;
  font:700 15px Georgia,serif;letter-spacing:.055em;text-shadow:0 1px 2px #000;
}
body.dr-fantasy .panel-block h2 {margin:2px 22px 12px 3px;border-bottom:1px solid #6c4623;padding-bottom:10px;}
body.dr-fantasy .panel-block h2::before {content:'✦';font-size:13px;color:#e5b35d;margin-right:10px;}
body.dr-fantasy .data-list li {
  padding:13px 12px 13px 15px;margin-bottom:8px;border:1px solid #67451f;
  border-radius:5px;background:linear-gradient(180deg,#2b2115,#18130e);
  color:#f1dfbe;font:bold 15px Georgia,serif;box-shadow:inset 0 0 0 1px #211507;
}
body.dr-fantasy .data-list li.selectable {padding-left:42px;position:relative;}
body.dr-fantasy .data-list li.selectable::before {
  content:'▧';position:absolute;left:9px;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:26px;height:28px;border-radius:4px;
  color:#ffde91;background:linear-gradient(150deg,#5d3a1a,#1d160e);border:1px solid #8b6032;
}
body.dr-fantasy .data-list li.active {border-color:#d6a453;background:linear-gradient(180deg,#594020,#2b2113);box-shadow:0 0 0 1px #9b6a2e,inset 0 0 14px #c48d3520;}
body.dr-fantasy .data-list li.selectable:hover,
body.dr-fantasy .data-list li.selectable:focus-visible {border-color:#e1ae58;background:#3a2816;outline-offset:2px;}
body.dr-fantasy .data-list li .sub {font:12px Georgia,serif;color:#c1af90;margin-top:4px;}
body.dr-fantasy .data-list li.active .sub {color:#6bd99c;}
body.dr-fantasy .data-list li.disabled {opacity:.46;}
body.dr-fantasy .action-btn {border:1px solid #b78a46;border-radius:5px;min-height:45px;
  background:linear-gradient(180deg,#238755,#0b4b31);color:#fff4d4;
  text-shadow:0 1px 1px #051708;font:bold 15px Georgia,serif;
  box-shadow:inset 0 1px 0 #adf3b760,0 2px 5px #0009;}
body.dr-fantasy .action-btn.secondary {border-color:#695133;background:linear-gradient(180deg,#39322b,#191815);color:#f0dfc3;}
body.dr-fantasy .action-btn:hover {filter:brightness(1.18);}
body.dr-fantasy #drawer-left .dr-left-info {margin:4px 0 10px;overflow:hidden;}
body.dr-fantasy #drawer-left .dr-left-info>summary {padding:13px 10px;line-height:1.4;}
body.dr-fantasy #drawer-left .dr-left-info-body {padding:8px;}
body.dr-fantasy .muted,body.dr-fantasy .kv span {color:#bda989;}
body.dr-fantasy .kv {border-bottom-color:#73502d55;}
/* Right-hand functional controls, no copies/replacements. */
body.dr-fantasy #drawer-right .drawer-body {padding:10px;}
body.dr-fantasy #drawer-right .dr-ui-root {font-family:Georgia,'Times New Roman',serif;color:#f1e0bd;font-size:13px;}
body.dr-fantasy #drawer-right .dr-section-caption {
  margin:0;padding:12px 28px 11px 14px;background:linear-gradient(180deg,#392414,#1c140e);
  border:1px solid #9b6e32;border-radius:5px 5px 0 0;
}
body.dr-fantasy #drawer-right .dr-section-caption::before {content:'◈';color:#f5c56c;margin-right:12px;}
body.dr-fantasy #drawer-right .dr-layer-list {padding:8px;gap:7px;border-top:0;border-radius:0 0 6px 6px;margin-bottom:0;}
body.dr-fantasy #drawer-right .dr-layer-button {
  min-height:49px;padding:8px 11px;gap:11px;border:1px solid #684824;border-radius:5px;
  background:linear-gradient(180deg,#241a12,#120e0b);color:#f1e5ce;
  box-shadow:inset 0 0 0 1px #21180d;text-align:left;
}
body.dr-fantasy #drawer-right .dr-layer-button.dr-on {border-color:#9d6b33;background:linear-gradient(180deg,#342217,#1a130c);}
body.dr-fantasy #drawer-right .dr-layer-button:hover {border-color:#e2af5b;background:#3c2a17;}
body.dr-fantasy #drawer-right .dr-layer-icon {width:34px;min-width:34px;font-size:22px;color:#e8b662!important;text-align:center;}
body.dr-fantasy #drawer-right .dr-layer-label {font:bold 14px Georgia,serif;}
body.dr-fantasy #drawer-right .dr-layer-state {
  display:grid;place-items:center;width:22px;height:22px;flex:none;
  border:1px solid #568960;border-radius:5px;background:linear-gradient(180deg,#23764b,#105034);
  color:#d0ffe0;font:700 16px Arial,sans-serif;text-shadow:0 1px 2px #071b0c;
}
body.dr-fantasy #drawer-right .dr-layer-button:not(.dr-on) .dr-layer-state {border-color:#8d682f;background:#201610;color:#b89558;}
body.dr-fantasy #drawer-right .dr-substatus {color:#c6a36a;font:11px/1.5 Georgia,serif;padding:5px 7px;}
body.dr-fantasy #drawer-right .dr-card {padding:13px;margin-bottom:13px;}
body.dr-fantasy #drawer-right .dr-card h3 {margin:0 0 15px;border-bottom:1px solid #6b4b29;padding:0 0 9px;}
body.dr-fantasy #drawer-right .dr-card h3::before {content:'⌘';color:#ebb85a;margin-right:12px;font-size:21px;vertical-align:-2px;}
body.dr-fantasy #drawer-right .dr-route-location {
  background:#0f0e0b;border:1px solid #674924;border-radius:5px;min-height:49px;
  margin:7px 0;padding:8px 10px;gap:12px;
}
body.dr-fantasy #drawer-right .dr-route-dot {font-size:23px;color:#7ee59c;}
body.dr-fantasy #drawer-right .dr-route-flag {font-size:23px;color:#ef6545;}
body.dr-fantasy #drawer-right .dr-route-text {font:13px/1.4 Georgia,serif;color:#cbbca1;}
body.dr-fantasy #drawer-right .dr-route-text b {color:#f6e5bf;}
body.dr-fantasy #drawer-right .dr-route-divider {margin:7px 0;border-color:#52371b;border-style:dashed;}
body.dr-fantasy #drawer-right .dr-action {border-color:#9a6a33;background:linear-gradient(180deg,#3a2917,#1d1710);
  border-radius:5px;color:#f4dfb4;font:bold 13px Georgia,serif;min-height:40px;}
body.dr-fantasy #drawer-right .dr-action:disabled {opacity:.57;border-color:#5a4b3b;background:linear-gradient(180deg,#333030,#1c1b1a);}
body.dr-fantasy #drawer-right [data-dr='route-run'] {width:100%;margin-top:9px;}
body.dr-fantasy #drawer-right .dr-route-output {color:#c8ae88;font:12px/1.5 Georgia,serif;}
body.dr-fantasy #drawer-right .dr-catalog>summary {padding:4px 3px;line-height:1.45;}
body.dr-fantasy #drawer-right .dr-catalog>summary::before {content:'▣';color:#f1bd62;margin-right:12px;}
body.dr-fantasy #drawer-right .dr-search-link {font:13px Georgia,serif;color:#fae0ac;}
body.dr-fantasy #drawer-right .dr-catalog-group {border-color:#6e4d2c;}
body.dr-fantasy #drawer-right .dr-catalog-group>h4 {background:#342415;color:#f1d09a;}
body.dr-fantasy .dr-card.dr-selected {border-color:#b4833f;background:#302217;}
/* Both side tabs stay available while drawers are OPEN or CLOSED. */
body.dr-fantasy .edge-toggle {
  z-index:2400;top:52%;width:29px;height:64px;transform:translateY(-50%);
  border:2px solid #c18e44;color:#f8d185;border-radius:6px;
  background:linear-gradient(90deg,#50321b,#1c130d,#5b3a1a);
  box-shadow:0 0 0 2px #231709,0 4px 12px #000c;
  display:grid;place-items:center;font-size:0;cursor:pointer;
  transition:left .3s ease,right .3s ease,filter .18s;
}
body.dr-fantasy .edge-toggle:hover {filter:brightness(1.25);}
body.dr-fantasy #toggle-left {left:4px;right:auto;}
body.dr-fantasy #toggle-right {right:4px;left:auto;}
body.dr-fantasy.dr-left-open #toggle-left {left:calc(var(--dr-left-width) + 1px);}
body.dr-fantasy.dr-right-open #toggle-right {right:calc(var(--dr-right-width) + 1px);}
body.dr-fantasy #toggle-left::before {content:'›';font:bold 28px Georgia,serif;}
body.dr-fantasy.dr-left-open #toggle-left::before {content:'‹';}
body.dr-fantasy #toggle-right::before {content:'‹';font:bold 28px Georgia,serif;}
body.dr-fantasy.dr-right-open #toggle-right::before {content:'›';}
body.dr-fantasy:has(#drawer-left.open) #toggle-left,
body.dr-fantasy:has(#drawer-right.open) #toggle-right {
  display:grid !important;visibility:visible !important;pointer-events:auto !important;
}
/* Existing POI finder stays INSIDE the map, functional and never removed. */
body.dr-fantasy #map .dr-geopoi-control {
  background:linear-gradient(160deg,#2c1d11,#120f0b) !important;
  border:1px solid #bd8b44 !important;
  box-shadow:0 2px 14px #000b,inset 0 0 0 1px #58401e !important;
  color:#f1ddb1 !important;
}
body.dr-fantasy #map .dr-geopoi-control input[type='search'] {
  background:#15100c !important;border-color:#896131 !important;color:#fff1d2 !important;
}
body.dr-fantasy #map .dr-geopoi-control button {border-color:#9e7542 !important;}
body.dr-fantasy button:focus-visible,
body.dr-fantasy input:focus-visible,
body.dr-fantasy summary:focus-visible,
body.dr-fantasy .selectable:focus-visible {outline:2px solid #f3cb76;outline-offset:3px;}
@media (max-width: 1260px) {
  body.dr-fantasy {--dr-left-space:13px;--dr-right-space:13px;--dr-left-width:min(340px,84vw);--dr-right-width:min(355px,84vw);}
  body.dr-fantasy.dr-left-open #toggle-left {left:calc(var(--dr-left-width) + 1px);}
  body.dr-fantasy.dr-right-open #toggle-right {right:calc(var(--dr-right-width) + 1px);}
}
@media (max-width: 700px) {
  body.dr-fantasy {--dr-top-space:80px;--dr-left-width:min(320px,85vw);--dr-right-width:min(320px,85vw);}
  body.dr-fantasy .dr-topbar {height:63px;top:7px;left:8px;right:8px;gap:9px;padding:5px 12px 5px 9px;}
  body.dr-fantasy .dr-top-brand {min-width:0;max-width:45%;gap:6px;}
  body.dr-fantasy .dr-top-logo {width:37px;height:37px;padding:3px;}
  body.dr-fantasy .dr-top-title {font-size:clamp(11px,3vw,17px);}
  body.dr-fantasy .dr-top-subtitle {font-size:7px;letter-spacing:.05em;}
  body.dr-fantasy .dr-top-search .dr-search-field {height:33px;padding:0 6px;}
  body.dr-fantasy .dr-top-search .dr-search-input {font-size:11px;}
  body.dr-fantasy .dr-top-actions {display:none;}
  body.dr-fantasy .drawer {top:var(--dr-top-space);}
  body.dr-fantasy .drawer-body {padding:6px;}
  body.dr-fantasy .dr-top-handle {height:19px;width:49px;font-size:14px;}
}
@media (prefers-reduced-motion: reduce) {
  body.dr-fantasy .drawer,body.dr-fantasy #map,body.dr-fantasy #dr-map-frame,
  body.dr-fantasy .dr-topbar,body.dr-fantasy .edge-toggle {transition:none!important;}
}
/* Explicit ID overrides: previous v0.3.1 ui.css styles #drawer-right by ID. */
body.dr-fantasy #drawer-right {
  width:var(--dr-right-width);
  background:
    radial-gradient(ellipse at 90% -30%,#5e391755,transparent 64%),
    repeating-linear-gradient(127deg,transparent 0 53px,#0002 54px 56px,transparent 57px 98px),
    linear-gradient(90deg,#1c130c,#110e0b 53%,#241508);
  color:#f2dfb8;
  border:2px solid #9a6a2d;
}
body.dr-fantasy #drawer-right .drawer-header {
  background:none;min-height:0;height:0;padding:0;border:0;
}
/* Compass is purely ornamental outside the Leaflet layer tree. */
body.dr-fantasy #dr-map-frame .dr-compass {
  position:absolute;bottom:62px;left:65px;display:grid;place-items:center;
  height:96px;width:96px;opacity:.66;
  color:#a88048;text-shadow:0 1px 3px #000;filter:drop-shadow(0 2px 3px #000);
  font:15px Georgia,serif;
}
body.dr-fantasy #dr-map-frame .dr-compass::before {
  content:'✧';font-size:91px;line-height:1;position:absolute;left:6px;top:1px;
  color:#a88048;font-family:Georgia,serif;
}
body.dr-fantasy #dr-map-frame .dr-compass::after {
  content:'';width:56px;height:56px;border:1px solid #92652f;border-radius:50%;
  position:absolute;top:20px;left:20px;box-shadow:inset 0 0 0 1px #1d1b13;
}
body.dr-fantasy #dr-map-frame .dr-compass span {position:absolute;}
body.dr-fantasy #dr-map-frame .dr-compass .north {top:-9px;left:43px;}
body.dr-fantasy #dr-map-frame .dr-compass .south {bottom:-12px;left:43px;}
body.dr-fantasy #dr-map-frame .dr-compass .west {left:-12px;top:39px;}
body.dr-fantasy #dr-map-frame .dr-compass .east {right:-10px;top:39px;}
@media(max-width:850px) {body.dr-fantasy #dr-map-frame .dr-compass {display:none;}}


/* Kamera-Merker, exakt innerhalb der bestehenden rechten Fantasy-Seitenleiste. */
body.dr-fantasy #drawer-right .dr-viewmemory-card {
  display:grid; gap:7px; padding:12px; margin:5px 0 13px;
  border:1px solid #98682e; border-radius:6px;
  background:linear-gradient(180deg,#302316,#17130e);
  box-shadow:inset 0 0 0 1px #251808,0 3px 10px #0007;
  color:#f3e1be;
}
body.dr-fantasy .dr-viewmemory-card h3 {
  margin:0 0 3px; font:bold 15px/1.4 Georgia,serif; letter-spacing:.035em; color:#ffd98f;
}
body.dr-fantasy .dr-viewmemory-row {
  display:flex; align-items:center; gap:10px; cursor:pointer; font:bold 13px Georgia,serif;
}
body.dr-fantasy .dr-viewmemory-row input {
  width:19px; height:19px; margin:0; accent-color:#27965d; flex:none; cursor:pointer;
}
body.dr-fantasy .dr-viewmemory-card p {
  margin:0; color:#cbb995; font:12px/1.45 Georgia,serif;
}
body.dr-fantasy .dr-viewmemory-status {color:#8adea6;font:12px/1.4 Georgia,serif;}
body.dr-fantasy .dr-viewmemory-reset {
  padding:7px 9px; min-height:34px; text-align:center;
  color:#f4d5a0; font:12px Georgia,serif; border:1px solid #9b6e34;
  background:linear-gradient(180deg,#44301c,#21170f); border-radius:4px; cursor:pointer;
}
body.dr-fantasy .dr-viewmemory-reset:hover:not(:disabled) {filter:brightness(1.2);}
body.dr-fantasy .dr-viewmemory-reset:disabled {opacity:.5;cursor:default;}

/* v0.3.1 – user options in header, slim right navigation. Layout and map are untouched. */
body.dr-fantasy #drawer-right .dr-substatus,
body.dr-fantasy #drawer-left .dr-left-info,
body.dr-fantasy #drawer-right .dr-catalog {display:none !important;}
body.dr-fantasy .data-list .sub[hidden]{display:none !important;}
body.dr-fantasy #drawer-right .dr-layer-list{margin-bottom:14px;}
body.dr-fantasy #dr-settings.dr-options-trigger{width:auto;min-width:99px;max-width:134px;
  padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font:700 12px/1 Georgia,serif;}
body.dr-fantasy #dr-settings.dr-options-trigger[aria-expanded="true"]{
  background:linear-gradient(180deg,#715029,#3f2917);color:#fff0cd;}
body.dr-fantasy .dr-options-panel{position:fixed;top:calc(var(--dr-top-space) - 3px);right:16px;
  width:min(375px,calc(100vw - 32px));max-height:min(78vh,650px);z-index:3800;
  color:#f2dfb8;background:linear-gradient(155deg,#332014,#100d0a 80%);
  border:2px solid #be8945;border-radius:9px;padding:0;
  box-shadow:0 0 0 2px #1b1005,0 14px 34px #000d,inset 0 0 0 1px #644119;
  font:13px/1.5 Georgia,serif;}
body.dr-fantasy .dr-options-panel[hidden]{display:none!important;}
body.dr-fantasy .dr-options-header{display:flex;justify-content:space-between;align-items:center;
  padding:12px 14px;border-bottom:1px solid #73502f;background:#2b1b10;}
body.dr-fantasy .dr-options-header h2{margin:0;font:bold 18px/1.2 Georgia,serif;color:#f4cb7d;}
body.dr-fantasy #dr-options-close{background:transparent;color:#e9c488;border:1px solid #846036;
  border-radius:4px;font:23px/1 Arial,sans-serif;width:30px;height:30px;cursor:pointer;}
body.dr-fantasy .dr-options-scroll{padding:13px;overflow:auto;max-height:calc(min(78vh,650px) - 58px);}
body.dr-fantasy .dr-options-panel .dr-viewmemory-card,
body.dr-fantasy .dr-options-section,body.dr-fantasy .dr-options-help{
  display:grid;gap:10px;background:linear-gradient(155deg,#2d1e12,#17110c);
  border:1px solid #78502c;border-radius:7px;margin:0 0 12px;padding:12px;box-sizing:border-box;}
body.dr-fantasy .dr-options-panel .dr-viewmemory-card h3,
body.dr-fantasy .dr-options-section h3{margin:0;color:#f0c478;font:bold 15px Georgia,serif;}
body.dr-fantasy .dr-options-panel p{margin:0;color:#d2bd9c;font:12px/1.5 Georgia,serif;}
body.dr-fantasy .dr-options-panel .dr-viewmemory-row{display:flex;gap:10px;align-items:center;}
body.dr-fantasy .dr-options-panel .dr-viewmemory-row input{width:19px;height:19px;accent-color:#268b58;}
body.dr-fantasy .dr-options-panel .dr-viewmemory-status{color:#a4e0b5;}
body.dr-fantasy .dr-options-panel .dr-viewmemory-reset,
body.dr-fantasy #dr-options-atlas{border:1px solid #af8246;border-radius:5px;cursor:pointer;
  color:#f6dfb2;padding:9px 12px;background:linear-gradient(180deg,#4b341c,#2a1c11);
  font:700 12px Georgia,serif;}
body.dr-fantasy .dr-options-panel button:disabled{opacity:.5;cursor:default;}
body.dr-fantasy .dr-options-help{display:block;}
body.dr-fantasy .dr-options-help summary{cursor:pointer;color:#e9c17a;font-weight:700;}
body.dr-fantasy .dr-options-help p{margin:10px 0 0;}
body.dr-fantasy #dr-options-close:hover,
body.dr-fantasy #dr-options-atlas:hover,
body.dr-fantasy .dr-options-panel .dr-viewmemory-reset:hover:not(:disabled){filter:brightness(1.22);}
body.dr-fantasy .dr-options-panel button:focus-visible,
body.dr-fantasy .dr-options-panel input:focus-visible,
body.dr-fantasy .dr-options-panel summary:focus-visible{outline:2px solid #f9da89;outline-offset:3px;}
@media(max-width:700px){
  body.dr-fantasy .dr-top-actions{display:flex;gap:5px;}
  body.dr-fantasy .dr-top-actions #dr-settings.dr-options-trigger{display:inline-flex;min-width:38px;
    width:38px;height:38px;padding:0;font-size:19px;}
  body.dr-fantasy #dr-settings .dr-settings-label{display:none;}
  body.dr-fantasy .dr-options-panel{right:8px;top:calc(var(--dr-top-space) - 2px);
    width:min(370px,calc(100vw - 16px));}
}
@media(min-width:1261px){body.dr-fantasy{--dr-right-width:clamp(280px,18.5vw,318px);}}


/* Visual polish: city markers, map labels and popups follow the fantasy menu style. */
body.dr-fantasy .leaflet-marker-icon.dr-city-icon {
  background:transparent;border:0;overflow:visible;
}
body.dr-fantasy .dr-city-icon-shell {
  position:relative;display:block;width:18px;height:18px;border-radius:999px;
  background:radial-gradient(circle at 30% 30%,#fff1c1 0 18%,#d0a859 19% 42%,#5b3b1e 43% 68%,#150f0b 69% 100%);
  border:1px solid #f2cf84;
  box-shadow:0 0 0 1px #4c3218,inset 0 0 0 1px #f8e2a7,0 2px 8px rgba(0,0,0,.55),0 0 12px rgba(228,180,87,.28);
}
body.dr-fantasy .dr-city-icon-shell::before {
  content:'';position:absolute;inset:-4px;border-radius:999px;border:1px solid rgba(242,207,132,.46);
  box-shadow:0 0 12px rgba(242,207,132,.24);
}
body.dr-fantasy .dr-city-icon-shell::after {
  content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:999px;
  background:#fff7de;transform:translate(-50%,-50%);
  box-shadow:0 0 6px rgba(255,247,222,.8);
}
body.dr-fantasy .dr-city-icon-core {display:none;}
body.dr-fantasy .dr-city-icon-active .dr-city-icon-shell,
body.dr-fantasy .dr-city-icon-shell.is-active {
  width:24px;height:24px;
  background:radial-gradient(circle at 30% 30%,#fff6d0 0 18%,#f0c466 19% 45%,#79532a 46% 70%,#170f0a 71% 100%);
  box-shadow:0 0 0 2px #f6d48f,inset 0 0 0 1px #fff0c4,0 4px 16px rgba(0,0,0,.62),0 0 18px rgba(239,187,81,.38);
}
body.dr-fantasy .dr-taxi-icon img,
body.dr-fantasy .dr-taxi-icon-active img {
  image-rendering:pixelated;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.65)) drop-shadow(0 0 6px rgba(120,224,166,.2));
}
body.dr-fantasy .leaflet-tooltip {
  background:linear-gradient(180deg,#3a2617,#17100b) !important;
  color:#f5e3bb !important;
  border:1px solid #c08d46 !important;
  border-radius:8px !important;
  box-shadow:0 4px 14px rgba(0,0,0,.42),inset 0 0 0 1px rgba(243,204,124,.15) !important;
  font:600 13px/1.25 Georgia,'Times New Roman',serif !important;
  letter-spacing:.01em;
  padding:5px 10px !important;
}
body.dr-fantasy .leaflet-tooltip-top:before {border-top-color:#c08d46 !important;}
body.dr-fantasy .leaflet-tooltip-bottom:before {border-bottom-color:#c08d46 !important;}
body.dr-fantasy .leaflet-tooltip-left:before {border-left-color:#c08d46 !important;}
body.dr-fantasy .leaflet-tooltip-right:before {border-right-color:#c08d46 !important;}
body.dr-fantasy .leaflet-tooltip.dr-geopoi-tooltip-city {
  background:linear-gradient(180deg,#4a311b,#1b120b) !important;
}
body.dr-fantasy .leaflet-tooltip.dr-geopoi-tooltip-flight {
  background:linear-gradient(180deg,#253423,#121a12) !important;
  border-color:#7dc586 !important;
}
body.dr-fantasy .leaflet-tooltip.dr-geopoi-tooltip-flight.leaflet-tooltip-right:before {border-right-color:#7dc586 !important;}
body.dr-fantasy .leaflet-tooltip.dr-geopoi-tooltip-flight.leaflet-tooltip-top:before {border-top-color:#7dc586 !important;}
body.dr-fantasy .leaflet-popup.dr-fantasy-popup .leaflet-popup-content-wrapper {
  background:linear-gradient(180deg,#2f2013,#17110c) !important;
  color:#f2dfb8 !important;
  border:1px solid #be8d49;
  border-radius:14px !important;
  box-shadow:0 12px 28px rgba(0,0,0,.52),inset 0 0 0 1px rgba(249,220,151,.12);
}
body.dr-fantasy .leaflet-popup.dr-fantasy-popup .leaflet-popup-tip {
  background:#1d140d !important;
  border:1px solid #be8d49;
  box-shadow:none !important;
}
body.dr-fantasy .leaflet-popup.dr-fantasy-popup .leaflet-popup-content {
  margin:12px 14px 14px !important;
  min-width:240px;
}
body.dr-fantasy .leaflet-popup.dr-fantasy-popup .leaflet-popup-close-button {
  color:#f1c46c !important;
  font-size:24px !important;line-height:20px !important;
  top:7px !important;right:9px !important;padding:0 4px !important;
}
body.dr-fantasy .leaflet-popup.dr-fantasy-popup .leaflet-popup-close-button:hover {color:#ffe6a8 !important;}
body.dr-fantasy .dr-geopoi-popup {display:grid;gap:10px;}
body.dr-fantasy .dr-geopoi-popup-head {display:grid;gap:4px;padding-right:18px;}
body.dr-fantasy .dr-geopoi-popup-kind {
  display:inline-flex;align-items:center;width:max-content;
  padding:2px 9px;border-radius:999px;border:1px solid #97703d;
  background:linear-gradient(180deg,#5b3b1d,#2f1c0f);color:#ffd88f;
  font:700 11px/1.2 Georgia,serif;letter-spacing:.04em;text-transform:uppercase;
}
body.dr-fantasy .dr-geopoi-popup-title {
  color:#f8e9c5;font:700 18px/1.2 Georgia,'Times New Roman',serif;
}
body.dr-fantasy .dr-geopoi-popup-meta {
  color:#c7af83;font:12px/1.3 Georgia,serif;
}
body.dr-fantasy .dr-geopoi-popup-note {
  margin:0;color:#e7d5b1;font:13px/1.45 Georgia,serif;
}
body.dr-fantasy .dr-geopoi-actions {display:flex;gap:8px;flex-wrap:wrap;}
body.dr-fantasy .dr-geopoi-button,
body.dr-fantasy .dr-geopoi-result-main {
  border:1px solid #b88541;
  background:linear-gradient(180deg,#5f3a1a,#2a1a10);
  color:#f7e7c0;
  border-radius:8px;
  box-shadow:inset 0 0 0 1px #2b190a,0 2px 8px rgba(0,0,0,.25);
  font:600 12px/1.25 Georgia,serif;
}
body.dr-fantasy .dr-geopoi-button:hover,
body.dr-fantasy .dr-geopoi-result-main:hover {filter:brightness(1.08);}
body.dr-fantasy .dr-geopoi-button.is-primary {
  background:linear-gradient(180deg,#2e7b50,#19492f);
  border-color:#50b677;
}
body.dr-fantasy .dr-geopoi-button.is-secondary {
  background:linear-gradient(180deg,#704124,#392015);
  border-color:#ca915b;
}
body.dr-fantasy .dr-geopoi-result-type {color:#cdb48a; font:12px/1.3 Georgia,serif;}
body.dr-fantasy .dr-geopoi-result-actions {display:flex;gap:4px;align-items:center;}


/* Explicit Leaflet fallback: style ALL existing map popups, not only GEO-2 class-name popups.
   This does not move, create, or change any map marker or route. */
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content-wrapper {
  background:linear-gradient(180deg,#332214,#17110c) !important;
  color:#f5e6c5 !important;
  border:1px solid #bc8a43 !important;
  border-radius:13px !important;
  box-shadow:0 9px 26px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,216,141,.15) !important;
  font:13px/1.45 Georgia,'Times New Roman',serif;
}
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content,
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content strong,
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content p {
  color:#f5e6c5 !important;
  font-family:Georgia,'Times New Roman',serif !important;
}
body.dr-fantasy #map .leaflet-popup .leaflet-popup-tip {
  background:#21150c !important;
  border-color:#bc8a43 !important;
}
body.dr-fantasy #map .leaflet-popup .leaflet-popup-close-button {
  color:#f2ca79 !important;font-size:23px !important;
}
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content button {
  color:#f5e4be !important;
  border:1px solid #b68648 !important;border-radius:7px !important;
  background:linear-gradient(180deg,#704a28,#2a1b11) !important;
  font:600 12px Georgia,serif !important;
  box-shadow:inset 0 0 0 1px #301f10 !important;
  padding:5px 9px !important;
}
body.dr-fantasy #map .leaflet-popup .leaflet-popup-content button:hover {
  filter:brightness(1.2);
}
