silkroad-map{display:block;min-width:0;color:var(--text,#e9edf3);background:#0c1016;border:1px solid var(--line,#29313b);font:14px/1.5 var(--body,Arial,sans-serif)}
.starter-atlas{padding:24px;border-top:1px solid var(--line)}
.sro-map-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border-bottom:1px solid #283039;background:linear-gradient(100deg,#1b2027,#10151c)}
.sro-map-heading small{color:#ed967b;font:600 11px/1.6 var(--mono,monospace);letter-spacing:.16em}
.sro-map .sro-map-heading h4{margin:4px 0 0;font-size:24px;color:#f1f2f5}
.sro-map-count{font-size:13px;color:#acb6c4;white-space:nowrap}
.sro-map-tools{display:flex;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid #283039}
.sro-map button{cursor:pointer;border:1px solid #39424e;background:#1c242f;color:#e7ebf2;padding:7px 11px;font:inherit;font-size:13px;border-radius:4px;transition:background .15s,border-color .15s}
.sro-map button:hover{background:#2a3542;border-color:#c7856c}
.sro-map button:focus-visible{outline:2px solid #ff9a6f;outline-offset:3px}
.sro-map-help{margin-left:auto;color:#a6b0bf;font-size:12px}
.sro-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 222px}
.sro-map-canvas{height:470px;min-width:0;background:#111820}
.sro-map-sidebar{height:470px;overflow:auto;border-left:1px solid #29313a;background:#101720;scrollbar-width:thin}
.sro-map-selection{padding:18px;border-bottom:1px solid #303844;background:#17202b}
.sro-map .sro-map-selection h5{margin:4px 0 8px;font:600 19px/1.3 var(--body,Arial,sans-serif);color:#f3efdf;overflow-wrap:anywhere}
.sro-map-selection p{margin:0 0 12px;color:#b8c1cd;font-size:13px;line-height:1.6}
.sro-map-kicker{color:#e4977f;font-size:10px;letter-spacing:.1em}
.sro-map-region-list{padding:8px}
.sro-map button.sro-map-region{display:flex;width:100%;justify-content:space-between;align-items:center;gap:5px;margin:2px 0;padding:10px 9px;background:transparent;border:1px solid transparent;text-align:left;border-radius:3px}
.sro-map-region span{font-size:13px}.sro-map-region small{font-size:10px;color:#9aa5b5;white-space:nowrap}
.sro-map button.sro-map-region.is-selected{border-color:#a96951;background:#332c29}
.sro-map-region[data-status=open] small{color:#a5cca0}
.sro-map-region[data-status=closed] small{color:#c7cbd3}
.sro-map-actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.sro-map-actions button{font-size:12px;padding:6px 8px}
.sro-map-actions button[aria-pressed=true]{border-color:#ed9877;background:#433029;color:#ffd1b9}
.sro-map-legend{display:flex;gap:20px;padding:12px 17px;border-top:1px solid #29313a;color:#adb8c8;font-size:12px}
.sro-map-legend span:before{content:'';display:inline-block;margin-right:7px;width:10px;height:10px;background:#a89873;border:1px dashed #cfbd94}
.sro-map-legend .is-open:before{background:#88b77c;border:1px solid #afd69d}
.sro-map-legend .is-closed:before{background:#787c83;border:1px solid #b6bcc4}
.sro-map-message{margin:0;padding:0 17px 14px;color:#909eaf;font-size:12px;line-height:1.6}
.sro-map-pin{border:0;background:none}
.sro-map-label{position:relative;width:100%;height:100%;background:none;border:0;padding:0}
.sro-map-label--city{filter:drop-shadow(0 2px 2px #16130a80)}
.sro-map-label--city img{display:block;width:100%;height:100%;max-width:none;object-fit:fill}
.sro-map-label--city .sro-map-place-name{position:absolute;left:50%;top:70.3125%;transform:translate(-50%,-50%);display:block;width:79%;color:#fff0cb;font:600 12px/1.2 var(--body,Arial,sans-serif);text-align:center;white-space:nowrap;text-shadow:0 1px 2px #221e10;letter-spacing:0}
.sro-map-label--city.city-donwhang .sro-map-place-name,.sro-map-label--city.city-donhwang .sro-map-place-name{top:70.3125%}
.sro-map-label--city.city-hotan .sro-map-place-name,.sro-map-label--city.city-khotan .sro-map-place-name{top:79.6875%}
.sro-map-label--city.city-samarkand .sro-map-place-name{top:62.5%}
.sro-map-label--city.city-constantinople .sro-map-place-name{top:72.9167%}
.sro-map-label--city.city-alexandria .sro-map-place-name{top:79.5455%}
.sro-map-label--city.city-bagdad .sro-map-place-name{top:76.7045%}
.sro-map-label--region{display:grid;place-items:center;color:#f3dfb2;font:500 11px/1.2 var(--body,Arial,sans-serif);text-align:center;text-shadow:0 1px 3px #211b0b,0 0 5px #211b0b}
.sro-map-pin[data-status=closed] .sro-map-label{filter:grayscale(1) drop-shadow(0 2px 2px #16130a80)}
.sro-map-boundary{transition:stroke-opacity .18s,stroke-width .18s,fill-opacity .18s}
@media(prefers-reduced-motion:reduce){.sro-map-boundary{transition:none}}
.sro-map-vertex{background:#ff9a6f;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 6px #000b}
.sro-map.is-drawing .leaflet-marker-icon{pointer-events:none}
.sro-map.is-drawing .sro-map-canvas{cursor:crosshair}
.sro-map.is-placing .sro-map-canvas{cursor:crosshair}
.sro-map.is-placing .leaflet-marker-icon{pointer-events:none}
.sro-map.is-placing .sro-atlas-waypoint{pointer-events:auto}
/* Original client name-strip and bottom trim, with the site's outer spacing. */
/* Nine-slice the original trim around the entire shared map, never stretch the
   652x44 bitmap over a full-width legend. Corners retain their native size. */
silkroad-map.sro-map{font-family:Arial,Tahoma,sans-serif;border:12px solid transparent;border-image:url('/game-assets/silkroad/ui/map-ui/map-chrome-border.png') 10 / 12px repeat;box-shadow:0 12px 30px #0008;background:#080908;color:#e8dfc7}
.sro-map .sro-map-heading{padding:12px 18px;background:linear-gradient(#252a39,#171c29);border-bottom:1px solid #867c60}
.sro-map .sro-map-heading small{font:10px/1.5 Arial,sans-serif;color:#a79c7d;letter-spacing:.16em}
.sro-map .sro-map-heading h4{font:600 20px/1.3 Arial,Tahoma,sans-serif;color:#eee6ce;text-shadow:0 1px #000}
.sro-map .sro-map-tools{min-height:46px;padding:5px 8px;background:linear-gradient(180deg,#171813,#080907 78%);border-bottom:1px solid #7f7455;box-shadow:inset 0 1px #322f24,inset 0 -1px #020302}
.sro-map .sro-map-tools button,.sro-map .sro-map-actions button,.sro-map .sro-spawn-row>button{min-height:36px;border:1px solid #6d644c;border-radius:0;background:linear-gradient(#24241e,#0d0e0c);color:#eee5cf;box-shadow:inset 0 0 0 1px #11120f,0 1px #000;text-shadow:0 1px #000}
.sro-map .sro-map-tools button:hover,.sro-map .sro-map-actions button:hover,.sro-map .sro-spawn-row>button:hover{background:linear-gradient(#373426,#171712);border-color:#b09b62;color:#fff3ce}
.sro-map .sro-map-help{font:12px/1.4 Arial,sans-serif;color:#c2b99f}
.sro-map .sro-map-layout{grid-template-columns:minmax(0,1fr) 235px}
.sro-map .sro-map-canvas,.sro-map .sro-map-sidebar{height:480px}
.sro-map .sro-map-canvas{background:#4b4738;outline-offset:-3px}
.sro-map .sro-map-sidebar{background:linear-gradient(180deg,#11120f,#070806);border-left:2px solid #746c55;box-shadow:inset 2px 0 #191a15;color:#e6dcc3;scrollbar-color:#786d50 #0a0b09}
.sro-map .sro-map-selection{padding:14px;background:linear-gradient(135deg,#1a1a14,#090a08);border-bottom:1px solid #6d644c;box-shadow:inset 0 -1px #020302}
.sro-map .sro-map-selection h5{font:600 16px/1.4 Arial,sans-serif;color:#ead9a9}
.sro-map .sro-map-label--city .sro-map-place-name,.sro-map .sro-map-label--region{font-family:Arial,Tahoma,sans-serif;font-weight:400;text-shadow:1px 1px 1px #181708,-1px -1px 1px #504631}
.sro-map .sro-map-region-list{display:grid;grid-template-columns:1fr 1fr;padding:7px;gap:3px;background:#090a08}
.sro-map button.sro-map-region{display:block;min-height:44px;padding:6px;border-radius:0;color:#e8dfc7;font:12px/1.3 Arial,sans-serif}
.sro-map button.sro-map-region:hover{background:#242219;border-color:#756b50;color:#fff0bf}
.sro-map button.sro-map-region.is-selected{border-color:#ad9053;background:linear-gradient(135deg,#39301f,#171510);box-shadow:inset 3px 0 #d1ad5a}
.sro-map .sro-map-region span{display:block;font-size:12px}.sro-map .sro-map-region small{font-size:10px}
.sro-map .sro-map-legend{flex-wrap:wrap;background:linear-gradient(#151611,#080907);border-top:1px solid #756b50;color:#ded6bc;box-shadow:inset 0 1px #25251d}
.sro-map .sro-map-message{padding-top:8px;background:#080907;color:#bdb59f;border-top:1px solid #29271e}
.sro-map .sro-map-heading{min-height:32px;padding:4px 12px;background:linear-gradient(180deg,#1c1d19 0,#080907 72%,#020302 100%);border-bottom:1px solid #8a7d5a;box-shadow:inset 0 1px #343328,inset 0 -1px #000}
.sro-map .sro-map-heading>div{flex:1}.sro-map .sro-map-heading small{display:none}.sro-map .sro-map-heading h4{margin:0;text-align:center;font:14px/1.5 Arial,Tahoma,sans-serif}.sro-map .sro-map-count{font:11px/1.3 Arial,sans-serif;color:#c6c0aa}
.sro-map .sro-map-selection p,.sro-map .sro-map-region small,.sro-map-spawns small,.sro-map-spawns p{color:#aaa38f}
.sro-map-spawns{border-top:1px solid #71674f;padding:12px;display:grid;gap:8px;background:#090a08}
.sro-map-spawns h5{margin:0;font:600 14px Arial,sans-serif;color:#e7ca83}
.sro-map-spawns label{display:grid;gap:4px;color:#cbc5b6;font-size:12px}
.sro-map-spawns input,.sro-map-spawns textarea{min-width:0;width:100%;padding:8px;border:1px solid #655d47;border-radius:0;background:#050604;color:#f0e7cf;font:13px/1.4 Arial,sans-serif;box-shadow:inset 0 0 0 1px #171812}
.sro-map-spawns input:focus,.sro-map-spawns textarea:focus{outline:2px solid #d4b577;outline-offset:1px}
.sro-map-spawns small,.sro-map-spawns p{color:#aeb3c4;font:11px/1.5 Arial,sans-serif;margin:0}
.sro-map-spawns button:disabled{opacity:.55;cursor:default}
.sro-spawn-row{border-top:1px solid #363c4b;padding-top:6px}.sro-spawn-row>button{width:100%;text-align:left}
.sro-spawn-edit{padding:5px 2px}.sro-spawn-edit summary{cursor:pointer;font-size:12px;color:#d7c49a}.sro-spawn-edit label{margin:6px 0}
.sro-unique-pin{display:grid;place-items:center;width:32px;height:32px;background:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_monster_icon.png') center/32px no-repeat;border:0;filter:drop-shadow(0 2px 2px #000b)}
.sro-unique-pin>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.sro-map .leaflet-popup-content-wrapper,.sro-map .leaflet-popup-tip{background:#0b0c09;color:#f5e9c8;border:1px solid #8d7d56;border-radius:0}.sro-map .leaflet-popup-content{font:13px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.sro-unique-popup strong{color:#f4d386}.sro-unique-popup p{white-space:pre-line}
.sro-map .sro-unique-popup p{margin:8px 0 0;color:#ded9c9;font:13px/1.5 Arial,Tahoma,sans-serif}
.sro-map.sro-map .sro-map-heading h4{font-size:14px}
.sro-map.is-expanded .sro-map-canvas,.sro-map.is-expanded .sro-map-sidebar{height:100%}
@media(max-width:760px){.sro-map .sro-map-layout{grid-template-columns:1fr}.sro-map .sro-map-canvas{height:360px}.sro-map .sro-map-sidebar{height:auto;max-height:340px;border-left:0}.sro-map .sro-map-region-list{grid-template-columns:repeat(3,1fr)}.sro-map .sro-map-count{font-size:11px}.sro-map.is-expanded .sro-map-sidebar{height:210px}}
.sro-map .leaflet-control-zoom{border:1px solid #465363;box-shadow:0 3px 12px #0006}
.sro-map .leaflet-control-zoom a{background:#182330;color:#e8d6b9;border-color:#465363}
.sro-map .leaflet-control-zoom a:hover{background:#304054}
.sro-map .leaflet-control-zoom a.leaflet-disabled{background:#17202a;color:#5e6878}
.sro-map .leaflet-interactive:focus{outline:2px solid #ff926f}
.sro-map.is-expanded{position:fixed;z-index:11000;inset:18px;display:flex;flex-direction:column;box-shadow:0 0 0 40px #06090ddd}
.sro-map.is-expanded .sro-map-layout{flex:1;min-height:0}
.sro-map.is-expanded .sro-map-canvas,.sro-map.is-expanded .sro-map-sidebar{height:100%}
@media(max-width:760px){.starter-atlas{padding:12px}.sro-map-heading{padding:14px}.sro-map .sro-map-heading h4{font-size:21px}.sro-map-layout{grid-template-columns:1fr}.sro-map-canvas{height:360px}.sro-map-sidebar{height:auto;max-height:310px;border-left:0;border-top:1px solid #29313a}.sro-map-region-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sro-map-help{display:none}.sro-map.is-expanded{inset:6px}.sro-map.is-expanded .sro-map-layout{display:flex;flex-direction:column}.sro-map.is-expanded .sro-map-canvas{flex:1;min-height:230px}.sro-map.is-expanded .sro-map-sidebar{height:210px;flex-shrink:0}.sro-map-legend{gap:12px}}

/* The world-map window is assembled directly from the extracted Joymax client UI. */
silkroad-map.sro-map{
 position:relative;
 border:8px solid transparent;
 border-image:none;
 background:#050604;
 box-shadow:0 14px 34px #000a;
 isolation:isolate;
}
/* Map-specific beveled corners extracted from wmap_wnd_corner_02. */
silkroad-map.sro-map:after{
 content:"";
 position:absolute;
 inset:-8px;
 z-index:1200;
 pointer-events:none;
 border:10px solid transparent;
 border-image:url('/game-assets/silkroad/ui/map-ui/map-chrome-border.png') 10 / 10px / 0 stretch;
 background:none;
}
.sro-map .sro-map-heading{
 position:relative;
 z-index:6;
 min-height:36px;
 height:36px;
 padding:0 60px;
 background:#080907 url('/game-assets/silkroad/ui/map-ui/map-chrome-title.png') center/auto 100% repeat-x;
 border:0;
 border-bottom:3px ridge #847a5f;
 box-shadow:none;
}
.sro-map .sro-map-heading:before,.sro-map .sro-map-heading:after{display:none}
.sro-map .sro-map-heading:before{left:22px}.sro-map .sro-map-heading:after{right:30px;transform:scaleX(-1)}
.sro-map .sro-map-heading>div:first-child{position:relative;z-index:1;min-width:0}
.sro-map .sro-map-heading h4{margin:0;text-align:center;color:#f4f2e9;font:14px/24px Arial,Tahoma,sans-serif;text-shadow:1px 1px #000,-1px -1px #252820}
.sro-map-count{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sro-map-window-actions{position:absolute;z-index:3;top:4px;right:5px;display:flex;gap:2px}
.sro-map button.sro-map-tool{display:block;min-width:24px;width:24px;min-height:24px;height:24px;padding:0;border:0;border-radius:0;background-color:transparent;background-position:center;background-repeat:no-repeat;box-shadow:none;font-size:0}
.sro-map button.sro-map-tool--world{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_world.png');background-size:16px}
.sro-map button.sro-map-tool--world:hover,.sro-map button.sro-map-tool--world:focus-visible{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_world_focus.png')}
.sro-map button.sro-map-tool--world:active{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_world_press.png')}
.sro-map button.sro-map-tool--expand{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_windowsize.png');background-size:16px}
.sro-map button.sro-map-tool--expand:hover,.sro-map button.sro-map-tool--expand:focus-visible{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_windowsize_focus.png')}
.sro-map button.sro-map-tool--expand:active{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_windowsize_press.png')}
.sro-map .sro-map-layout{position:relative;display:block;overflow:hidden;background:#b29a67}
.sro-map .sro-map-canvas{width:100%;height:560px;background:#8c774d;outline:0}
.sro-map button.sro-map-panel-toggle{position:absolute;z-index:1001;top:10px;right:10px;width:44px;height:44px;min-height:44px;padding:4px;border:0;border-radius:0;background:transparent url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_passivity.png') center/36px no-repeat;box-shadow:none;font-size:0}
.sro-map button.sro-map-panel-toggle:hover,.sro-map button.sro-map-panel-toggle:focus-visible{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_passivity_focus.png')}
.sro-map button.sro-map-panel-toggle:active,.sro-map.is-panel-open button.sro-map-panel-toggle{background-image:url('/game-assets/silkroad/ui/map-ui/worldmap__wmap_button_passivity_press.png')}
.sro-map .sro-map-sidebar{position:absolute;z-index:1000;top:58px;right:9px;bottom:48px;width:min(304px,calc(100% - 70px));height:auto;max-height:none;overflow:auto;border:1px solid #817351;background:#080907ef;box-shadow:0 5px 18px #000b,inset 0 0 0 1px #1e1e18;visibility:hidden;opacity:0;transform:translateX(calc(100% + 20px));pointer-events:none;transition:transform .18s ease,opacity .18s ease}
.sro-map.is-panel-open .sro-map-sidebar{visibility:visible;opacity:1;transform:translateX(0);pointer-events:auto}
.sro-map .sro-map-legend{position:absolute;z-index:800;left:8px;bottom:8px;display:flex;width:max-content;max-width:calc(100% - 70px);padding:7px 10px;border:1px solid #6f6448;background:#070806db;box-shadow:0 2px 8px #0009;color:#e2dac2;pointer-events:none}
.sro-map .sro-map-message{min-height:36px;margin:0;padding:8px 24px;border:0;border-top:1px solid #746849;background:#080907;color:#c4bba4;font:12px/20px Arial,Tahoma,sans-serif}
.sro-map:not([editable]) .sro-map-message{padding:12px 18px;color:#bdb59f;font-size:13px;line-height:1.65;overflow-wrap:anywhere;flex-shrink:0}
.sro-map.is-expanded .sro-map-layout{display:block;flex:1;min-height:0}.sro-map.is-expanded .sro-map-canvas{height:100%}.sro-map.is-expanded .sro-map-sidebar{height:auto;bottom:48px}
@media(prefers-reduced-motion:reduce){.sro-map .sro-map-sidebar{transition:none}}


/* Compact planner cards: title, facts and actions keep separate visual levels. */
.sro-map .sro-atlas-plans{display:grid;gap:12px;padding:12px}
.sro-map .sro-atlas-plans>h5{margin:0;padding:0 0 4px;font:600 13px/1.5 Arial,sans-serif;color:var(--color-base-content)}
.sro-map .sro-atlas-plan-row{display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;padding:12px;border:1px solid var(--color-base-300);border-radius:var(--radius-box);background:var(--color-base-100)}
.sro-map .sro-atlas-plan-row>*{min-width:0;max-width:100%;flex-shrink:0}
.sro-map .sro-atlas-plan-row .sro-atlas-route-feedback{flex:0 0 auto;overflow-wrap:anywhere}
.sro-map .sro-plan-kind{font:600 10px/1.5 Arial,sans-serif;letter-spacing:.08em;color:var(--color-secondary)}
.sro-map .sro-atlas-plan-row button.sro-plan-title{flex:0 0 auto;min-height:32px;padding:0;background:transparent;border:0;color:var(--color-base-content);text-align:left;justify-content:flex-start;font:600 13px/1.5 Arial,sans-serif;white-space:normal;box-shadow:none}
.sro-map .sro-plan-actions{display:flex;flex-wrap:wrap;gap:6px;order:10;padding-top:8px;border-top:1px solid var(--color-base-300)}
.sro-map .sro-plan-actions button{min-height:30px;min-width:30px;padding:5px 7px;flex:1;font:12px/1.4 Arial,sans-serif;background:var(--color-base-200);border-color:var(--color-base-300);white-space:nowrap}
.sro-map .sro-plan-actions button.sro-action-danger,.sro-map button.sro-action-danger{color:var(--color-error)}
.sro-map .sro-atlas-plan-row p,.sro-map .sro-atlas-plan-row strong{margin:0;line-height:1.6;font-size:12px}
.sro-map .sro-atlas-plan-row .sro-caravan-price{font-size:15px;color:var(--color-accent)}
.sro-map .sro-atlas-route-info{font:12px/1.5 Arial,sans-serif}.sro-map .sro-atlas-route-info summary{padding:4px 0;color:var(--color-secondary)}
.sro-map .sro-unique-popup{display:grid;gap:8px}.sro-map .sro-unique-popup>strong{font:600 14px/1.5 Arial,sans-serif;color:var(--color-base-content)}
.sro-map .sro-unique-popup>p{margin:0;color:var(--color-secondary)}
.sro-map .sro-spawn-actions{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--color-base-300)}
.sro-map .sro-spawn-actions button{flex:1;min-height:36px;padding:7px 10px;font:12px/1.5 Arial,sans-serif;background:var(--color-base-100);border:1px solid var(--color-base-300);border-radius:var(--radius-field)}
@media(pointer:coarse){.sro-map .sro-plan-actions button,.sro-map .sro-spawn-actions button{min-height:44px}}

/* Interactive-map catalogue: a stable left rail, not a popup over the map. */
.sro-map.is-panel-open .sro-map-layout{display:grid;grid-template-columns:264px minmax(0,1fr)}
.sro-map.is-panel-open .sro-map-canvas{grid-column:2;grid-row:1}
.sro-map .sro-map-sidebar{left:0;right:auto;top:0;bottom:0;transform:translateX(-100%);border:0;border-right:1px solid var(--color-base-300);background:var(--color-base-200);box-shadow:none}
.sro-map.is-panel-open .sro-map-sidebar{position:relative;grid-column:1;grid-row:1;width:264px;height:560px;max-height:none;transform:none}
.sro-map button.sro-map-panel-toggle{left:8px;right:auto}
.sro-map.is-panel-open button.sro-map-panel-toggle{left:272px}
.sro-map .sro-map-sidebar-scroll{padding:0;overflow:auto;max-height:calc(100% - 44px)}
.sro-map .sro-map-sidebar-footer{padding:10px 12px;min-height:44px;font:11px/1.5 Arial,sans-serif;color:var(--color-secondary);border-top:1px solid var(--color-base-300);background:var(--color-base-200)}
.sro-map .sro-map-catalog,.sro-map .sro-map-create-tools{padding:12px;border-bottom:1px solid var(--color-base-300)}
.sro-map .sro-map-catalog h5,.sro-map .sro-map-create-tools h5{margin:0 0 8px;color:var(--color-base-content);font:bold 13px/1.5 Arial,sans-serif}
.sro-map .sro-map-catalog p{margin:0 0 12px;color:var(--color-secondary);font:12px/1.5 Arial,sans-serif}
.sro-catalog-search{display:grid;gap:6px;margin-bottom:12px;color:var(--color-secondary);font:12px/1.5 Arial,sans-serif}
.sro-map .sro-catalog-search input{box-sizing:border-box;width:100%;height:36px;padding:8px;border:1px solid var(--color-base-300);border-radius:3px;background:var(--color-base-100);color:var(--color-base-content);font:12px Arial,sans-serif}
.sro-map .sro-catalog-search input:focus-visible,.sro-map .sro-catalog-types summary:focus-visible,.sro-map .sro-map-cities summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.sro-map .sro-catalog-types summary,.sro-map .sro-map-cities summary{padding:10px 0;font:bold 12px/1.5 Arial,sans-serif;color:var(--color-base-content);cursor:pointer}
.sro-catalog-list{max-height:238px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--color-secondary) var(--color-base-200)}
.sro-map .sro-catalog-row{display:flex;align-items:center;gap:6px;min-height:36px;border-bottom:1px solid color-mix(in srgb,var(--color-base-300) 50%,transparent)}
.sro-map .sro-catalog-row label{display:flex;align-items:center;gap:8px;min-width:0;flex:1;cursor:pointer;color:var(--color-base-content);font:12px/1.5 Arial,sans-serif}
.sro-catalog-row img{width:20px;height:20px;object-fit:contain;flex:none}
.sro-catalog-row label span,.sro-catalog-layer span{flex:1;min-width:0;overflow-wrap:anywhere}
.sro-catalog-row small,.sro-catalog-layer small{font:11px/1.5 Arial,sans-serif;color:var(--color-secondary)}
.sro-map button.sro-catalog-add{width:30px;min-height:30px;padding:0;font-size:18px;background:var(--color-base-100);border:1px solid var(--color-base-300)}
.sro-map .sro-catalog-layer{display:flex;align-items:center;gap:8px;min-height:34px;margin:0;color:var(--color-base-content);font:12px/1.5 Arial,sans-serif;cursor:pointer}
.sro-map .sro-map-create-tools .atlas-menu{width:100%;padding:0;gap:4px}
.sro-map .sro-map-create-tools button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:36px;padding:6px 8px;font:12px/1.5 Arial,sans-serif}
.sro-tool-plus{color:var(--color-primary);font-size:17px}
.sro-map .sro-map-cities{padding:0 12px 12px;border-bottom:1px solid var(--color-base-300)}
.sro-map .sro-map-cities .sro-map-region-list{padding:0;background:transparent;grid-template-columns:1fr;gap:3px}
.sro-map .sro-map-cities .sro-map-region{min-height:34px;background:var(--color-base-200);color:var(--color-base-content);border:1px solid transparent;font:12px/1.5 Arial,sans-serif}
.sro-map .sro-map-cities .sro-map-region.is-selected{border-color:var(--color-base-300);background:var(--color-neutral)}
.sro-map .sro-map-cities .sro-map-selection{margin-top:8px;padding:10px;border:1px solid var(--color-base-300);background:var(--color-base-100);box-shadow:none}
.sro-map.is-panel-open .sro-map-legend{left:272px}
.sro-map.is-expanded.is-panel-open .sro-map-sidebar{height:100%}
@media(max-width:760px){
 .sro-map.is-panel-open .sro-map-layout{display:block}.sro-map.is-panel-open .sro-map-sidebar{position:absolute;left:0;top:0;bottom:0;width:min(264px,calc(100% - 50px));height:100%;z-index:1000}
 .sro-map.is-panel-open button.sro-map-panel-toggle{left:auto;right:4px}.sro-map.is-panel-open .sro-map-legend{left:8px;z-index:700}.sro-map .sro-catalog-row,.sro-map .sro-catalog-layer{min-height:44px}.sro-map button.sro-catalog-add{min-height:44px;width:40px}.sro-map .sro-map-create-tools button{min-height:44px}
 .sro-map.is-expanded.is-panel-open .sro-map-layout{display:block}
}

/* Owner-only tools use the same semantic palette as the map menu. */
.sro-map .pvp-select>button.pvp-select-trigger{min-height:36px;padding:7px 9px;gap:8px;border-radius:3px;border-color:var(--color-base-300);background:var(--color-base-200);color:var(--color-base-content);font:12px/1.4 Arial,sans-serif}
.sro-map .pvp-select-trigger:after{border-color:var(--color-primary)}
.sro-map .pvp-select>button.pvp-select-trigger:focus-visible,.sro-map .pvp-select>button.pvp-select-trigger[aria-expanded=true]{border-color:var(--color-primary);background:var(--color-base-200);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 15%,transparent)}
.pvp-select-panel.is-map-select{padding:6px;border-radius:4px;border-color:var(--color-base-300);background:var(--color-base-200);color:var(--color-base-content);font:12px/1.4 Arial,sans-serif;box-shadow:0 8px 24px #0006}
.pvp-select-panel.is-map-select input.pvp-select-search{height:32px;margin:0 0 6px;padding:6px 8px;border-radius:3px;border-color:var(--color-base-300);background:var(--color-base-100);color:var(--color-base-content);font:inherit}
.pvp-select-panel.is-map-select input.pvp-select-search:focus{border-color:var(--color-primary)}
.pvp-select-panel.is-map-select .pvp-select-option{min-height:34px;padding:6px 7px;gap:8px;border-radius:3px;color:var(--color-base-content)}
.pvp-select-panel.is-map-select .pvp-select-option[aria-selected=true],.pvp-select-panel.is-map-select .pvp-select-option.is-active{border-color:color-mix(in srgb,var(--color-primary) 35%,transparent);background:var(--color-neutral)}
.pvp-select-panel.is-map-select .pvp-select-option[aria-selected=true]:after{color:var(--color-primary)}
.pvp-select-panel.is-map-select .pvp-select-options{scrollbar-color:var(--color-secondary) var(--color-base-200)}
.pvp-select-icon{flex:0 0 20px;width:20px;height:20px;max-width:20px;max-height:20px;object-fit:contain}
@media(pointer:coarse){.sro-map .pvp-select>button.pvp-select-trigger,.pvp-select-panel.is-map-select .pvp-select-option{min-height:44px}}
.sro-map svg.sro-closed-overlay{max-width:none!important;max-height:none!important;pointer-events:none}
.sro-map .sro-icon-editor{display:grid;gap:10px;padding:12px;background:var(--color-base-200);border-top:1px solid var(--color-base-300);font:12px/1.5 Arial,sans-serif;color:var(--color-base-content)}
.sro-icon-editor h5{margin:0;color:var(--color-accent);font-size:14px}.sro-icon-editor p{margin:0;color:var(--color-secondary)}
.sro-map .sro-icon-editor select,.sro-map .sro-atlas-form select{width:100%;min-height:40px;background:var(--color-neutral);color:var(--color-base-content);border-color:var(--color-base-300);font:12px/1.5 Arial,sans-serif}
.sro-icon-bulk{display:flex;gap:6px;flex-wrap:wrap}.sro-icon-bulk output{flex:1 1 100%;color:var(--color-accent)}
.sro-icon-list{display:grid;max-height:256px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-secondary) var(--color-base-200)}
.sro-icon-row{display:grid;grid-template-columns:24px 32px minmax(0,1fr);align-items:center;gap:8px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--color-base-300);cursor:pointer}
.sro-icon-row>img{width:32px;height:32px;object-fit:contain}.sro-icon-row>span{min-width:0;overflow-wrap:anywhere}.sro-icon-row strong,.sro-icon-row small{display:block}.sro-icon-row small{color:var(--color-secondary);font-size:11px}
.sro-icon-row>button{grid-column:2/-1;justify-self:start}.sro-icon-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sro-map .sro-native-icon{pointer-events:auto!important}.sro-native-icon img{pointer-events:none}.sro-native-icon.is-icon-selected{outline:2px solid var(--color-primary);outline-offset:3px;filter:drop-shadow(0 2px 3px #0008)}
.sro-icon-choice{width:64px;height:64px;object-fit:contain;justify-self:center}
.sro-map .sro-atlas-popup input{box-sizing:border-box;width:100%;padding:8px;background:var(--color-neutral);border:1px solid var(--color-base-300);color:var(--color-base-content);font:13px/1.5 Arial,sans-serif}
.sro-map .sro-map-reset{padding:16px;background:transparent;border:0;max-width:min(480px,calc(100vw - 32px));color:var(--color-base-content)}
.sro-map-reset::backdrop{background:#000b}.sro-map .sro-map-reset .atlas-modal-box{background:var(--color-base-100);border:1px solid var(--color-base-300);padding:24px;border-radius:var(--radius-box);max-width:100%;font:14px/1.6 Arial,sans-serif}
.sro-map-reset h5{margin:0 0 12px;color:var(--color-accent);font-size:18px}.sro-map-reset p{margin:0 0 18px}.sro-map-reset .atlas-modal-action{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.sro-map .sro-waypoint-body{position:relative;display:grid;place-items:center;width:100%;height:100%;cursor:grab}
.sro-map button.sro-waypoint-remove{position:absolute;top:-16px;right:-16px;display:grid;place-items:center;min-width:28px;min-height:28px;width:28px;height:28px;padding:0;opacity:0;pointer-events:none;background:var(--color-base-200);border:1px solid var(--color-base-300);color:var(--color-base-content);border-radius:50%;font:20px/1 Arial,sans-serif;transition:opacity .12s}
.sro-map .sro-atlas-waypoint:hover .sro-waypoint-remove,.sro-map .sro-atlas-waypoint:focus-within .sro-waypoint-remove{opacity:1;pointer-events:auto}
@media(pointer:coarse){.sro-map .sro-icon-editor select{min-height:44px}.sro-map button.sro-waypoint-remove{width:36px;height:36px;opacity:1;pointer-events:auto;top:-22px;right:-22px}}
@media(prefers-reduced-motion:reduce){.sro-map button.sro-waypoint-remove{transition:none}}
@media(max-width:760px){
 silkroad-map.sro-map{border-width:8px}
 .sro-map .sro-map-heading{padding-right:56px;padding-left:56px}
 .sro-map .sro-map-heading:before{left:14px}.sro-map .sro-map-heading:after{right:28px}
 .sro-map .sro-map-heading h4{font-size:13px}
 .sro-map .sro-map-canvas{height:390px}
 .sro-map .sro-map-sidebar{top:58px;right:7px;bottom:46px;width:calc(100% - 56px);height:auto;max-height:none;border:1px solid #817351}
 .sro-map .sro-map-region-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sro-map .sro-map-legend{left:6px;bottom:6px;gap:10px;padding:6px 8px;font-size:11px}
 .sro-map .sro-map-message{padding-inline:15px;background-size:auto 44px}
}

/* The catalogue replaces the old sprite-based slide-out directory. */
.sro-map .sro-map-layout{margin-left:0;padding-left:0}
.sro-map .sro-map-layout:before{display:none}
.sro-map button.sro-map-panel-toggle{top:8px;width:32px;min-width:32px;height:36px;min-height:36px;padding:0;border:1px solid var(--color-base-300);border-radius:4px;background:var(--color-base-200);z-index:1003;box-shadow:0 2px 8px #0004}
.sro-map button.sro-map-panel-toggle:after{content:'›';display:block;position:static;width:auto;height:auto;background:none;font:24px/1 Arial,sans-serif;color:var(--color-base-content);transform:none}
.sro-map.is-panel-open button.sro-map-panel-toggle:after{content:'‹'}
.sro-map button.sro-map-panel-toggle:hover,.sro-map button.sro-map-panel-toggle:focus-visible{background:var(--color-neutral);outline:2px solid var(--color-primary);outline-offset:1px}
.sro-map .sro-map-sidebar{display:flex;flex-direction:column;overflow:hidden}
.sro-map-sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#847954 #12140e}
.sro-map .sro-map-sidebar-footer{flex:0 0 44px;display:flex;align-items:center;justify-content:center;padding:8px 12px;background:var(--color-base-200);color:var(--color-secondary);font:11px/16px Arial,sans-serif;text-align:center}
.sro-map .sro-map-region-list{grid-template-columns:1fr;gap:1px;padding:6px 10px}
.sro-map .sro-map-region{min-height:34px;background:transparent;border-color:transparent;border-bottom:1px solid #39382a;font:13px/1.4 Arial,sans-serif}
.sro-map .sro-map-region:hover,.sro-map .sro-map-region:focus-visible{background:#27271b;color:#f3dda2}
.sro-map .sro-map-legend{left:32px;max-width:calc(100% - 40px)}
.sro-map .sro-atlas-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #706447;background:linear-gradient(#222219,#11120e);font:12px/1.4 Arial,sans-serif}
.sro-map button.atlas-btn{min-height:40px;height:auto;padding:8px 12px;border:1px solid #635d43;border-radius:4px;background:#26271e;color:#e8dfc9;font:12px/1.4 Arial,sans-serif;box-shadow:inset 0 1px #ffffff09;white-space:normal}
.sro-map button.atlas-btn:hover{background:#383727;border-color:#ad925c;color:#fff4d5}
.sro-map button.atlas-btn[aria-pressed=true]{background:#40361f;border-color:#c8a56b;color:#ffe6a5}
.sro-map button.atlas-btn:focus-visible,.sro-map .atlas-menu button:focus-visible{outline:2px solid #f0ca76;outline-offset:2px}
.sro-map button.atlas-btn:disabled{opacity:.45;cursor:not-allowed}
.sro-map .sro-atlas-status{margin:0;padding:10px 16px;border-top:1px solid #4a442e;background:#15160f;color:#d4c7a5;font:12px/1.6 Arial,sans-serif;overflow-wrap:anywhere}
.sro-map .sro-atlas-legend{display:flex;flex-wrap:wrap;gap:10px 18px;padding:10px 16px;background:#1b1c14;color:#e1dccb;border-top:1px solid #635b42;font:12px/1.5 Arial,sans-serif}
.sro-map [hidden]{display:none!important}
.sro-atlas-legend span:before{content:'';display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px;background:#707477;box-shadow:0 0 0 1px #d4d7d040}
.sro-atlas-legend .walkable:before{background:#2fa76b}.sro-atlas-legend .terrain:before{background:#d44b43}.sro-atlas-legend .object:before{background:#87232f}
.sro-atlas-hud{position:absolute;z-index:800;bottom:43px;right:10px;max-width:calc(100% - 45px);padding:6px 9px;background:#10120ee8;border:1px solid #6c6246;color:#ebdfbc;pointer-events:none;font:11px/1.5 monospace;overflow-wrap:anywhere}
.sro-atlas-hud:empty{display:none}
.sro-map .sro-source-label{background:none;border:0;text-align:center;pointer-events:none}
.sro-source-place-name{display:block;color:#f2ead1;white-space:nowrap;font:13px/24px Arial,Tahoma,sans-serif;text-shadow:1px 1px 2px #181708,-1px -1px 1px #403822}
.sro-source-icon{background:none;border:0;pointer-events:none}.sro-source-icon img{display:block;width:100%;height:100%;object-fit:contain}
.sro-nav-overlay{image-rendering:pixelated}
.sro-atlas-plans{padding:12px;border-top:1px solid #605940;display:grid;gap:8px;background:#15160f;color:#ded5bc;font:12px/1.5 Arial,sans-serif}
.sro-atlas-plans h5{margin:0;font-size:14px;color:#e4c482}.sro-atlas-plans p{margin:0;color:#bcb59f}
.sro-atlas-plan-row{display:flex;flex-wrap:wrap;gap:5px;padding-top:5px;border-top:1px solid #37392a}
.sro-atlas-plan-row>button:first-child{flex:1 1 100%;text-align:left;overflow-wrap:anywhere}
.sro-atlas-point{display:grid;place-items:center;border:2px solid #e0c780;border-radius:50%;background:#253c24;color:#fff2c9;box-shadow:0 2px 6px #0009;font:bold 12px Arial}
.sro-atlas-point.mob{background:#783a2e;border-color:#f0b87b}
.sro-atlas-waypoint{display:grid;place-items:center;border:1px solid #dfbf75;border-radius:50%;background:#302b1d;color:#fff1c9;box-shadow:0 2px 5px #0009;font:bold 11px/1 Arial,sans-serif}
.sro-map .sro-atlas-popup{min-width:0;color:var(--color-base-content)}.sro-atlas-popup>strong{display:block;color:var(--color-accent);font-size:14px;margin-bottom:5px}
.sro-atlas-coordinate{margin:0 0 6px!important;padding:0 18px 6px 0;border-bottom:1px solid var(--color-base-300);color:var(--color-secondary);font:10px/1.6 monospace}
.sro-map .atlas-menu{display:flex;flex-direction:column;gap:3px;margin:0;padding:0;width:100%;list-style:none}
.sro-map .atlas-menu>li{padding:0;display:block}.sro-map .atlas-menu>li>button,.sro-map .atlas-menu summary{box-sizing:border-box;width:100%;min-height:32px;padding:5px 8px;text-align:left;justify-content:flex-start;background:transparent;border:1px solid transparent;color:var(--color-base-content);font:12px/1.4 Arial,sans-serif;cursor:pointer}
.sro-map .atlas-menu svg{width:16px;height:16px;flex:0 0 16px;color:var(--color-accent)}
.sro-map .atlas-menu>li>button:hover,.sro-map .atlas-menu>li>button:focus-visible,.sro-map .atlas-menu summary:hover{background:var(--color-neutral);border-color:var(--color-base-300);color:var(--color-accent)}
.sro-map .atlas-menu summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}
.sro-map .atlas-menu details>ul{padding:4px 0 0 8px;margin:0;border-left:1px solid var(--color-base-300)}
.sro-map .sro-context-popup .leaflet-popup-content{margin:10px 12px!important}
.sro-map .sro-atlas-draft{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 12px;background:var(--color-base-200);border-bottom:1px solid var(--color-base-300)}
.sro-atlas-draft-message{flex:1 1 180px;color:var(--color-accent);font:12px/1.5 Arial,sans-serif}
.sro-atlas-route-feedback{flex:1 1 100%;color:var(--color-secondary)!important}
.sro-atlas-route-feedback[data-state=found],.sro-atlas-draft-message[data-state=found]{color:var(--color-success)!important}
.sro-atlas-route-feedback[data-state]:not([data-state=found]):not([data-state=pending]),.sro-atlas-draft-message[data-state]:not([data-state=found]):not([data-state=pending]):not([data-state=selecting]){color:var(--color-error)!important}
@media(pointer:coarse){.sro-map .atlas-menu>li>button,.sro-map .atlas-menu summary{min-height:44px}}
.sro-map .leaflet-popup-scrolled{scrollbar-width:thin;scrollbar-color:#ab945e #191b13;overscroll-behavior:contain}
.sro-map .leaflet-popup-scrolled::-webkit-scrollbar{width:7px}
.sro-map .leaflet-popup-scrolled::-webkit-scrollbar-track{background:#191b13}
.sro-map .leaflet-popup-scrolled::-webkit-scrollbar-thumb{background:#ab945e;border:2px solid #191b13;border-radius:4px}
.sro-map .sro-context-popup .leaflet-popup-tip-container{display:none}
.sro-atlas-form,.sro-atlas-form label,.sro-atlas-route-info label{display:grid;gap:6px}.sro-atlas-form{gap:12px}
.sro-atlas-form input,.sro-atlas-form textarea,.sro-atlas-route-info input{box-sizing:border-box;min-width:0;width:100%;background:#24261d;border:1px solid #75694b;color:#f0e6cc;padding:9px;border-radius:3px;font:13px/1.5 Arial,sans-serif}
.sro-atlas-form input:focus,.sro-atlas-form textarea:focus,.sro-atlas-route-info input:focus{outline:2px solid #d5b572;outline-offset:1px}
.sro-atlas-route-info summary{padding:6px 0;cursor:pointer;color:#d5b572}.sro-atlas-route-info ol{margin:8px 0;padding-left:18px;overflow-wrap:anywhere;font:11px/1.6 monospace}
.sro-map-source-note{color:var(--muted,#aaa38f);font-size:12px;line-height:1.7;margin:12px 0 0}
.sro-map .sro-catalog-row input[type=checkbox],.sro-map .sro-catalog-layer input[type=checkbox]{--size:18px;width:18px;height:18px;min-width:18px;max-width:18px;min-height:18px;max-height:18px;padding:0;margin:0;flex:0 0 18px}
.sro-map .sro-atlas-form label{font:500 12px/1.5 Arial,sans-serif;color:var(--color-base-content)}
.sro-map .sro-atlas-form input,.sro-map .sro-atlas-form textarea{background:var(--color-base-200);border:1px solid var(--color-base-300);color:var(--color-base-content)}
.sro-map .sro-atlas-form input:focus,.sro-map .sro-atlas-form textarea:focus{--atlas-input-color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:none;border-color:var(--color-primary)}
.sro-map .sro-atlas-form [hidden]{display:none!important}
.sro-map .sro-form-help{margin:0;color:var(--color-base-content);opacity:.8;font:12px/1.6 Arial,sans-serif}
.sro-map .sro-form-error{margin:0;color:var(--color-error);font:12px/1.5 Arial,sans-serif}
.sro-map .sro-caravan-dialog .atlas-modal-box{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;background:var(--color-base-100);border:1px solid var(--color-base-300);color:var(--color-base-content)}
.sro-caravan-dialog::backdrop{background:#000b}
.sro-map .sro-caravan-dialog h5{margin:0 0 8px;font-size:18px;color:var(--color-accent)}
.sro-caravan-dialog .sro-atlas-form{margin-top:20px;gap:14px}
.sro-map .sro-caravan-dialog .atlas-modal-action{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.sro-map .sro-caravan-dialog .atlas-btn-primary{background:var(--color-primary);color:var(--color-primary-content);border-color:var(--color-primary)}
.sro-map .sro-caravan-price{display:block;width:100%;color:var(--color-accent);font:600 13px/1.5 Arial,sans-serif}
.sro-caravan-badge{padding:6px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-field);background:var(--color-base-200);color:var(--color-base-content);text-align:center;box-shadow:0 2px 8px #0005;font:11px/1.4 Arial,sans-serif;pointer-events:none}
.sro-caravan-badge span{display:block}.sro-caravan-badge strong{display:block;color:var(--color-accent)}
.sro-caravan-badge.is-closed{border-color:var(--color-error)}.sro-caravan-badge.is-closed strong{color:var(--color-error)}
.sro-caravan-route{animation:sro-caravan-flow 1.2s linear infinite;filter:drop-shadow(0 1px 2px #151611)}
@keyframes sro-caravan-flow{to{stroke-dashoffset:-18}}
.sro-map.is-caravan-view .sro-map-boundary{visibility:hidden}
.sro-map.is-caravan-view .sro-map-catalog,.sro-map.is-caravan-view .sro-map-create-tools,.sro-map.is-caravan-view .sro-map-cities,.sro-map.is-caravan-view .sro-icon-editor{display:none}
.sro-caravan-badge small{display:block;margin-top:3px;color:var(--color-warning)}
@media(prefers-reduced-motion:reduce){.sro-caravan-route{animation:none}}
@media(pointer:coarse){.sro-map .sro-atlas-form input,.sro-map .sro-atlas-form textarea{font-size:16px}.sro-map .sro-caravan-dialog button{min-height:44px}}
.sro-map.is-panel-open button.sro-map-panel-toggle{background:var(--color-base-200)}
.sro-map.is-panel-open button.sro-map-panel-toggle:hover,.sro-map.is-panel-open button.sro-map-panel-toggle:focus-visible{background:var(--color-neutral)}
.sro-map button.sro-catalog-add{min-height:32px;padding:0;box-shadow:none}
@media(max-width:760px){.sro-map .sro-atlas-tools{padding:8px;gap:5px}.sro-map button.atlas-btn{min-height:44px;padding:8px}.sro-map .sro-atlas-tools>button:nth-child(2){flex:1 1 100%;order:2}.sro-map .sro-atlas-hud{font-size:10px}.sro-map .sro-atlas-legend{padding:8px;gap:7px 14px}.sro-map .leaflet-popup-content{margin:12px!important;max-width:calc(100vw - 80px)}.sro-map .sro-atlas-status{padding:10px}}
@media(prefers-reduced-motion:reduce){.sro-map .sro-map-sidebar{transition:none}}

/* Project-native map chrome: compact tools, aligned catalogue, unchanged art. */
silkroad-map.sro-map{border:1px solid var(--color-base-300);border-radius:12px;background:var(--color-base-100);box-shadow:0 8px 28px #0003;overflow:hidden;container-type:inline-size}
silkroad-map.sro-map:after{display:none}
.sro-map .sro-ui-icon{display:block;width:17px;height:17px;max-width:17px;max-height:17px;flex:0 0 17px;pointer-events:none}
.sro-map .sro-map-heading{height:auto;min-height:60px;padding:12px 16px;gap:16px;border:0;border-bottom:1px solid var(--color-base-300);background:var(--color-base-100);box-shadow:none}
.sro-map .sro-map-heading .sro-map-identity{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.sro-map .sro-map-identity>.sro-ui-icon{width:22px;height:22px;max-width:22px;max-height:22px;flex-basis:22px;color:var(--color-primary)}
.sro-map .sro-map-heading small{display:block;font:600 10px/1.4 var(--body,Arial,sans-serif);letter-spacing:.12em;color:var(--color-secondary)}
.sro-map.sro-map .sro-map-heading h4{margin:2px 0 0;text-align:left;font:600 16px/1.3 var(--body,Arial,sans-serif);color:var(--color-base-content);text-shadow:none}
.sro-map .sro-map-count{position:static!important;width:auto!important;height:auto!important;margin:0!important;padding:5px 9px!important;overflow:visible!important;clip:auto!important;border:1px solid var(--color-base-300)!important;border-radius:6px;background:var(--color-base-200);color:var(--color-secondary);font:500 11px/1.5 var(--body,Arial,sans-serif);flex-shrink:0}
.sro-map .sro-atlas-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:9px 12px;background:var(--color-base-200);border-bottom:1px solid var(--color-base-300);font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-toolbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}
.sro-map .sro-toolbar-owner{padding-left:12px;border-left:1px solid var(--color-base-300)}
.sro-map .sro-toolbar-owner:empty{display:none}
.sro-map .sro-toolbar-navigation{margin-left:auto;flex-wrap:nowrap}
.sro-map .sro-map-window-actions{position:static;display:flex;align-items:center;gap:4px;flex:0 0 auto}
.sro-map .sro-atlas-tools .atlas-btn,.sro-map button.sro-map-tool{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:34px;height:34px;min-width:34px;width:auto;padding:0 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--color-secondary);box-shadow:none;font:500 12px/1.4 var(--body,Arial,sans-serif);white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s}
.sro-map button.sro-map-tool{width:34px;padding:0;background-image:none!important}
.sro-map .sro-toolbar-navigation>button{width:34px;padding:0}
.sro-map .sro-atlas-tools .atlas-btn:hover,.sro-map button.sro-map-tool:hover{background:var(--color-neutral);border-color:var(--color-base-300);color:var(--color-base-content)}
.sro-map .sro-atlas-tools .atlas-btn[aria-pressed=true]{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-base-100));border-color:color-mix(in srgb,var(--color-primary) 28%,var(--color-base-300));color:var(--color-primary)}
.sro-map .sro-atlas-tools .atlas-btn:disabled{opacity:.4;background:transparent;cursor:not-allowed}
.sro-map button:focus-visible,.sro-map .sro-atlas-tools a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.sro-map .sro-map-sidebar{background:var(--color-base-100);border-color:var(--color-base-300);font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-map-sidebar-scroll{max-height:none;scrollbar-color:var(--color-base-300) var(--color-base-100)}
.sro-map .sro-map-catalog,.sro-map .sro-map-create-tools{padding:14px 12px;border-bottom:1px solid var(--color-base-300)}
.sro-map .sro-map-catalog h5,.sro-map .sro-map-create-tools h5{display:flex;align-items:center;gap:8px;margin:0 0 10px;font:600 12px/1.5 var(--body,Arial,sans-serif);color:var(--color-base-content)}
.sro-map .sro-map-catalog h5 .sro-ui-icon,.sro-map .sro-map-create-tools h5 .sro-ui-icon{color:var(--color-accent);width:15px;height:15px;flex-basis:15px}
.sro-map .sro-map-catalog>p:not(.sro-catalog-hint){display:none}
.sro-map .sro-catalog-search{gap:0;margin:0 0 12px}
.sro-map .sro-search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.sro-map .sro-search-field{position:relative;display:flex;align-items:center}
.sro-map .sro-search-field>.sro-ui-icon{position:absolute;z-index:1;left:10px;color:var(--color-secondary)}
.sro-map .sro-catalog-search input{height:36px;min-height:36px;padding:0 9px 0 34px;border-radius:6px;background:var(--color-base-200);border-color:var(--color-base-300);font:12px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-catalog-layers{display:grid;grid-template-columns:1fr;gap:4px;margin-bottom:8px}
.sro-map .sro-catalog-layer{display:grid;grid-template-columns:16px minmax(0,1fr) 20px 18px;gap:8px;min-height:34px;padding:7px 8px;border:1px solid var(--color-base-300);border-radius:6px;background:var(--color-base-200);font:12px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-catalog-layer input{grid-column:4;grid-row:1;align-self:center}
.sro-map .sro-catalog-layer>.sro-ui-icon{grid-column:1;grid-row:1;width:15px;height:15px;flex-basis:15px;color:var(--color-accent)}
.sro-map .sro-catalog-layer>span{grid-column:2;grid-row:1;overflow-wrap:normal;font-size:12px}
.sro-map .sro-catalog-layer>small{grid-column:3;grid-row:1;padding:2px 4px;border-radius:4px;background:var(--color-base-100);text-align:center;font-size:10px;line-height:1.4;color:var(--color-secondary)}
.sro-map .sro-catalog-layer:has(input:not(:checked)){opacity:.6}
.sro-map .sro-catalog-types summary,.sro-map .sro-map-cities summary{display:flex;align-items:center;gap:8px;padding:12px 0;font:600 12px/1.5 var(--body,Arial,sans-serif);list-style:none;color:var(--color-base-content)}
.sro-map .sro-catalog-types summary::-webkit-details-marker,.sro-map .sro-map-cities summary::-webkit-details-marker{display:none}
.sro-map .sro-catalog-types summary:after,.sro-map .sro-map-cities summary:after{content:'';width:6px;height:6px;margin-left:auto;border-right:1.5px solid var(--color-secondary);border-bottom:1.5px solid var(--color-secondary);transform:rotate(45deg)}
.sro-map .sro-catalog-types[open] summary:after,.sro-map .sro-map-cities[open] summary:after{transform:rotate(225deg)}
.sro-map .sro-catalog-list{max-height:190px;border-top:1px solid var(--color-base-300);scrollbar-color:var(--color-base-300) var(--color-base-100)}
.sro-map .sro-catalog-row{gap:6px;min-height:38px;padding:3px 0;border-bottom:1px solid color-mix(in srgb,var(--color-base-300) 50%,transparent)}
.sro-map .sro-catalog-row:hover{background:var(--color-neutral)}
.sro-map .sro-catalog-row label{gap:8px;font:12px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-catalog-row label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sro-map .sro-catalog-row small{min-width:20px;padding:1px 4px;border-radius:4px;background:var(--color-base-200);text-align:center;font:10px/1.5 var(--body,Arial,sans-serif)}
.sro-map button.sro-catalog-add{display:grid;place-items:center;min-width:26px;width:26px;min-height:26px;height:26px;padding:0;border-color:transparent;background:transparent;color:var(--color-secondary);font:18px/1 var(--body,Arial,sans-serif)}
.sro-map button.sro-catalog-add:hover,.sro-map button.sro-catalog-add[aria-pressed=true]{background:var(--color-neutral);border-color:var(--color-base-300);color:var(--color-primary)}
.sro-map .sro-catalog-hint{margin:10px 0 0;color:var(--color-secondary);font:11px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-map-create-tools .atlas-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.sro-map .sro-map-create-tools .atlas-menu>li>button{display:flex;align-items:center;gap:7px;width:100%;height:100%;min-height:36px;padding:7px 8px;border:1px solid var(--color-base-300);border-radius:6px;background:var(--color-base-200);font:500 11px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-map-create-tools .atlas-menu>li>button .sro-ui-icon{width:15px;height:15px;flex-basis:15px;color:var(--color-accent)}
.sro-map .sro-map-create-tools .atlas-menu>li>button:hover{color:var(--color-primary);border-color:var(--color-accent);background:var(--color-neutral)}
.sro-map .sro-map-create-tools .atlas-menu>li>button[aria-pressed=true]{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-neutral)}
.sro-map .sro-map-cities{padding:0 12px 14px}
.sro-map .sro-map-cities button.sro-map-region{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:40px;margin:0;padding:5px 7px;border:1px solid transparent;border-radius:6px;background:transparent;box-shadow:none;color:var(--color-base-content);font:12px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-city-thumbnail{display:block;width:28px;height:28px;object-fit:contain;pointer-events:none}
.sro-map .sro-map-region .sro-city-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sro-map .sro-map-region .sro-city-status{padding:3px 5px;border-radius:4px;background:var(--color-base-200);font:10px/1.3 var(--body,Arial,sans-serif);color:var(--color-secondary)}
.sro-map .sro-map-region[data-status=open] .sro-city-status{color:var(--color-success)}
.sro-map .sro-map-region[data-status=closed] .sro-city-status{color:var(--color-secondary)}
.sro-map .sro-map-cities button.sro-map-region:hover{background:var(--color-neutral);border-color:var(--color-base-300)}
.sro-map .sro-map-cities button.sro-map-region.is-selected{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-base-300));background:color-mix(in srgb,var(--color-primary) 8%,var(--color-base-100));box-shadow:none}
.sro-map .sro-map-cities .sro-map-selection{padding:12px;border-radius:8px;background:var(--color-base-200);font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-map-selection h5{font:600 14px/1.4 var(--body,Arial,sans-serif);color:var(--color-base-content)}
.sro-map .sro-map-selection p{font:12px/1.6 var(--body,Arial,sans-serif);color:var(--color-secondary)}
.sro-map .sro-map-kicker{font:500 9px/1.5 var(--body,Arial,sans-serif);color:var(--color-accent)}
.sro-map .sro-map-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 8px;border-color:var(--color-base-300);background:var(--color-base-100);color:var(--color-base-content);box-shadow:none;font:500 11px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-map-actions button[aria-pressed=true]{color:var(--color-primary);background:var(--color-neutral);border-color:var(--color-accent)}
.sro-map .sro-city-state-actions{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:4px}
.sro-map .sro-map-sidebar-footer{min-height:40px;flex:0 0 auto;background:var(--color-base-200);color:var(--color-secondary);font:11px/1.5 var(--body,Arial,sans-serif)}
.sro-map button.sro-map-panel-toggle{display:grid;place-items:center;width:34px;min-width:34px;height:34px;min-height:34px;background:var(--color-base-100);border-color:var(--color-base-300);border-radius:6px}
.sro-map button.sro-map-panel-toggle:after{display:none}
.sro-map .sro-atlas-status,.sro-map .sro-atlas-plans,.sro-map .sro-atlas-legend,.sro-map .sro-map-message{background:var(--color-base-200);border-color:var(--color-base-300);color:var(--color-secondary);font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-atlas-status{padding:8px 14px;font-size:11px}
.sro-map .sro-map-legend{background:color-mix(in srgb,var(--color-base-200) 94%,transparent);border-color:var(--color-base-300);border-radius:6px;color:var(--color-base-content)}
.sro-map .sro-icon-editor h5,.sro-map .sro-atlas-plans h5{color:var(--color-base-content)}
@media(max-width:760px){
 silkroad-map.sro-map{border-width:1px;border-radius:8px}
 .sro-map .sro-map-heading{padding:12px;min-height:56px}
 .sro-map .sro-map-count{font-size:10px;padding:4px 6px!important}
 .sro-map .sro-atlas-tools{padding:6px;gap:6px}
 .sro-map .sro-toolbar-views{flex:1 1 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 .sro-map .sro-toolbar-owner{flex:1;border-left:0;padding-left:0;gap:4px}
 .sro-map .sro-atlas-tools .atlas-btn{min-height:44px;height:44px;padding:0 7px;font-size:11px;gap:5px}
 .sro-map .sro-toolbar-navigation{margin-left:auto}
 .sro-map .sro-toolbar-navigation>button,.sro-map button.sro-map-tool{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
 .sro-map .sro-toolbar-owner .atlas-btn{flex:1 1 auto}
 .sro-map .sro-catalog-row{min-height:44px}
 .sro-map button.sro-catalog-add{width:44px;min-width:44px;height:44px;min-height:44px}
 .sro-map .sro-map-cities button.sro-map-region,.sro-map .sro-map-create-tools .atlas-menu>li>button,.sro-map .sro-map-actions button{min-height:44px}
 .sro-map button.sro-map-panel-toggle{width:44px;height:44px;min-width:44px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.sro-map .sro-atlas-tools .atlas-btn,.sro-map button.sro-map-tool{transition:none}}
@container(max-width:600px){
 .sro-map .sro-map-count{display:none}
 .sro-map .sro-toolbar-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1 1 100%}
 .sro-map .sro-toolbar-views [data-short-label] .sro-ui-button-label{display:none}
 .sro-map .sro-toolbar-views [data-short-label]:after{content:attr(data-short-label)}
 .sro-map .sro-toolbar-owner{flex:1 1 100%;border-left:0;padding-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 .sro-map .sro-toolbar-owner .atlas-btn{flex-direction:column;padding:6px 4px;gap:4px;min-width:0;height:auto;min-height:56px;white-space:normal;font-size:10px}
 .sro-map .sro-toolbar-owner .sro-ui-button-label{min-width:0;max-width:100%;text-align:center;overflow-wrap:anywhere}
 .sro-map .sro-toolbar-navigation{margin:0 auto}
 .sro-map .sro-map-heading{min-height:56px}
 .sro-map .sro-map-heading .sro-map-identity{flex:1}
 .sro-map .sro-map-cities button.sro-map-region{grid-template-columns:24px minmax(0,1fr);gap:3px 8px}
 .sro-map .sro-city-thumbnail{grid-row:1/3;width:24px;height:24px}
 .sro-map .sro-map-region .sro-city-status{grid-column:2;justify-self:start;padding:1px 4px;font-size:9px}
 .sro-map .sro-map-create-tools .atlas-menu>li>button{font-size:10px;gap:5px}
}

/* Popup and dialog surfaces share the project-native map chrome. */
.sro-map .leaflet-popup-content-wrapper,.sro-map .leaflet-popup-tip{background:var(--color-base-100);color:var(--color-base-content);border:1px solid var(--color-base-300);box-shadow:0 8px 28px #0005}
.sro-map .leaflet-popup-content-wrapper{border-radius:12px;padding:0;overflow:hidden}
.sro-map .leaflet-popup-content{margin:14px!important;font:13px/1.55 var(--body,Arial,sans-serif)}
.sro-map .leaflet-popup-content p{margin:6px 0 12px;color:var(--color-secondary);font:13px/1.55 var(--body,Arial,sans-serif);overflow-wrap:anywhere}
.sro-map .leaflet-container a.leaflet-popup-close-button{top:7px;right:7px;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--color-base-200);color:var(--color-secondary);font:20px/1 var(--body,Arial,sans-serif);z-index:5}
.sro-map .leaflet-container a.leaflet-popup-close-button:hover{background:var(--color-neutral);color:var(--color-base-content)}
.sro-map .leaflet-popup button.atlas-btn,.sro-map .sro-caravan-dialog button.atlas-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;height:auto;padding:7px 10px;border:1px solid var(--color-base-300);border-radius:6px;background:var(--color-base-200);color:var(--color-base-content);box-shadow:none;font:500 12px/1.4 var(--body,Arial,sans-serif);white-space:normal}
.sro-map .leaflet-popup button.atlas-btn:hover,.sro-map .sro-caravan-dialog button.atlas-btn:hover{background:var(--color-neutral);border-color:var(--color-accent);color:var(--color-primary)}
.sro-map .sro-caravan-dialog button.atlas-btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-content)}
.sro-map .sro-caravan-dialog button.atlas-btn-primary:hover{background:color-mix(in srgb,var(--color-primary) 88%,white);color:var(--color-primary-content)}
.sro-map .leaflet-popup button.sro-action-danger{color:var(--color-error)}
.sro-map .leaflet-popup button.sro-action-danger:hover{background:color-mix(in srgb,var(--color-error) 8%,var(--color-base-200));border-color:var(--color-error);color:var(--color-error)}
.sro-map .leaflet-popup :is(button,a,input,textarea):focus-visible,.sro-map .sro-caravan-dialog :is(button,input,textarea):focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
.sro-map .leaflet-popup :is(input,textarea),.sro-map .sro-caravan-dialog :is(input,textarea){background:var(--color-base-200);border:1px solid var(--color-base-300);border-radius:6px;color:var(--color-base-content);font:13px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-context-popup .leaflet-popup-content{margin:12px!important}
.sro-map .sro-context-menu .sro-atlas-coordinate{padding:0 28px 10px 0;border-color:var(--color-base-300);color:var(--color-secondary);font-size:10px;line-height:1.65}
.sro-map .sro-context-menu .atlas-menu{gap:3px;padding:0}
.sro-map .sro-context-menu .atlas-menu li>button,.sro-map .sro-context-menu .atlas-menu li>a,.sro-map .sro-context-menu summary{justify-content:flex-start;gap:9px;min-height:36px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:var(--color-base-content);font:500 12px/1.45 var(--body,Arial,sans-serif);padding:7px 8px}
.sro-map .sro-context-menu .atlas-menu li>button:hover,.sro-map .sro-context-menu .atlas-menu li>a:hover,.sro-map .sro-context-menu summary:hover{background:var(--color-neutral);color:var(--color-primary)}
.sro-map .sro-context-menu .atlas-menu li>button:disabled{color:var(--color-secondary);opacity:.5;cursor:not-allowed}
.sro-map .sro-context-menu .atlas-menu .sro-ui-icon{width:17px;height:17px;flex:0 0 17px;color:var(--color-accent)}
.sro-map .sro-context-menu .atlas-menu ul{border-color:var(--color-base-300);margin-left:8px;padding-left:7px}
.sro-map .sro-unique-leaflet-popup .leaflet-popup-content{margin:0!important;max-width:100%}
.sro-map .sro-unique-popup{display:block;border:0;border-radius:0;background:transparent;overflow:hidden}
.sro-map .sro-unique-model{position:relative;display:block;margin:0;width:100%;height:200px;background:radial-gradient(ellipse at 50% 70%,color-mix(in srgb,var(--color-accent) 13%,transparent),transparent 65%),var(--color-base-200);border-bottom:1px solid var(--color-base-300);overflow:hidden}
.sro-map .sro-unique-model-frame,.sro-map .sro-unique-model-poster{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:transparent;object-fit:contain}
.sro-map .sro-unique-model-frame{opacity:0}
.sro-map .sro-unique-model[data-state=ready] .sro-unique-model-frame{opacity:1}
.sro-map .sro-unique-model [hidden]{display:none!important}
.sro-map .sro-unique-model-badge{position:absolute;top:12px;left:14px;z-index:2;padding:3px 6px;border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);border-radius:4px;background:var(--color-base-100);color:var(--color-accent);font:600 9px/1.4 var(--body,Arial,sans-serif);letter-spacing:.08em;pointer-events:none}
.sro-map .leaflet-popup-content .sro-unique-model-status{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;margin:0;text-align:center;font-size:11px;color:var(--color-secondary)}
.sro-map .sro-unique-model-empty{position:absolute;left:calc(50% - 21px);top:55px;width:42px;height:42px;color:var(--color-accent)}
.sro-map .sro-unique-model[data-state=unavailable]{height:155px}
.sro-map .sro-unique-model-poster:not([hidden])~.sro-unique-model-status{padding:5px;background:color-mix(in srgb,var(--color-base-200) 92%,transparent);border-radius:4px}
.sro-map .leaflet-popup button.sro-model-play{position:absolute;right:10px;bottom:10px;z-index:3;padding:5px 8px;min-height:30px;font-size:10px;background:var(--color-base-100)}
.sro-map .sro-model-play .sro-ui-icon{width:13px;height:13px}
.sro-map .sro-model-hint{position:absolute;left:14px;bottom:17px;z-index:2;max-width:calc(100% - 100px);font:10px/1.4 var(--body,Arial,sans-serif);color:var(--color-secondary);pointer-events:none}
.sro-map .sro-unique-body.atlas-card-body{display:grid;gap:6px;padding:14px}
.sro-map .sro-popup-kicker{display:flex;align-items:center;gap:5px;color:var(--color-accent);font:500 9px/1.5 var(--body,Arial,sans-serif);letter-spacing:.04em}
.sro-map .sro-popup-kicker .sro-ui-icon{width:12px;height:12px;flex:0 0 12px}
.sro-map .sro-unique-body .atlas-card-title{margin:0;color:var(--color-base-content);font:600 17px/1.4 var(--body,Arial,sans-serif);overflow-wrap:anywhere}
.sro-map .leaflet-popup-content .sro-unique-body p{margin:0;font-size:12px}
.sro-map .sro-unique-body .sro-spawn-actions{display:flex;gap:7px;margin-top:7px;padding-top:12px;border-top:1px solid var(--color-base-300)}
.sro-map .sro-unique-body .sro-spawn-actions>button{flex:1;min-width:0}
.sro-map .leaflet-popup .sro-atlas-popup>strong{display:block;padding-right:25px;margin-bottom:10px;font:600 15px/1.4 var(--body,Arial,sans-serif);overflow-wrap:anywhere}
.sro-map .leaflet-popup .sro-icon-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-base-300)}
.sro-map .leaflet-popup .sro-icon-actions>button{flex:1 1 85px}
.sro-map .sro-caravan-dialog .atlas-modal-box{max-width:440px;padding:20px;border:1px solid var(--color-base-300);border-radius:12px;background:var(--color-base-100);box-shadow:0 16px 64px #0006;font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-caravan-dialog h5{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--color-base-content);font:600 17px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-caravan-dialog h5>.sro-ui-icon{color:var(--color-accent)}
.sro-map .sro-spawn-dialog .sro-spawn-coordinates{margin:0;padding:8px 10px;border:1px solid var(--color-base-300);border-radius:6px;background:var(--color-base-200);color:var(--color-secondary);font:10px/1.6 ui-monospace,monospace}
.sro-map .sro-spawn-dialog .sro-atlas-form{gap:14px;margin-top:18px}
.sro-map .sro-caravan-dialog .sro-atlas-form label{gap:7px;color:var(--color-base-content);font:500 12px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-caravan-dialog :is(input,textarea){padding:9px 10px;min-height:38px}
.sro-map .sro-spawn-dialog textarea{min-height:88px;max-height:180px;resize:vertical}
.sro-map .sro-spawn-dialog .sro-spawn-form-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:8px;margin:2px 0 0;padding-top:14px;border-top:1px solid var(--color-base-300)}
.sro-map .sro-spawn-form-actions button{width:auto!important;flex:0 1 auto}
.sro-map .sro-caravan-dialog .pvp-select-trigger{min-height:38px;padding:9px 10px;border-radius:6px;border-color:var(--color-base-300);background:var(--color-base-200);font:13px/1.4 var(--body,Arial,sans-serif)}
@media(max-width:760px){
 .sro-map .leaflet-popup button.atlas-btn,.sro-map .sro-caravan-dialog button.atlas-btn,.sro-map .sro-context-menu .atlas-menu li>button,.sro-map .sro-context-menu summary{min-height:44px}
 .sro-map .leaflet-container a.leaflet-popup-close-button{width:36px;height:36px}
 .sro-map .sro-caravan-dialog .atlas-modal-box{padding:16px;max-width:calc(100vw - 32px)}
 .sro-map .sro-unique-model{height:170px}
 .sro-map .sro-unique-body.atlas-card-body{padding:12px}
 .sro-map .sro-unique-body .sro-spawn-actions{gap:5px}
 .sro-map .sro-unique-body .sro-spawn-actions>button{font-size:11px;padding:6px}
 .sro-map .sro-model-hint{bottom:14px;font-size:9px;max-width:calc(100% - 88px)}
 .sro-map:has(.sro-unique-leaflet-popup) .sro-map-panel-toggle{visibility:hidden}
}

/* Compact icon manager: controls occupy separate, bounded grid columns. */
.sro-map .sro-icon-editor{gap:12px;background:var(--color-base-100);font-family:var(--body,Arial,sans-serif)}
.sro-map .sro-icon-editor h5{display:flex;align-items:center;gap:7px;font:600 13px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-editor h5 .sro-ui-icon{color:var(--color-accent);width:15px;height:15px}
.sro-map .sro-icon-editor>p{font:11px/1.6 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sro-map .sro-icon-filter{display:grid;gap:5px;min-width:0;font:500 10px/1.5 var(--body,Arial,sans-serif);color:var(--color-secondary)}
.sro-map .sro-icon-filter .pvp-select{min-width:0;width:100%}
.sro-map .sro-icon-editor .pvp-select>button.pvp-select-trigger{width:100%;min-width:0;min-height:34px;height:34px;padding:6px 7px;border-color:var(--color-base-300);border-radius:6px;background:var(--color-base-200);font:11px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-editor button.atlas-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:34px;height:auto;padding:6px 8px;border:1px solid var(--color-base-300);border-radius:6px;background:var(--color-base-200);color:var(--color-base-content);box-shadow:none;font:500 11px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-editor button.atlas-btn:hover:not(:disabled){background:var(--color-neutral);border-color:var(--color-accent);color:var(--color-primary)}
.sro-map .sro-icon-editor button:disabled{opacity:.45;cursor:not-allowed}
.sro-map .sro-icon-editor button.sro-action-danger{color:var(--color-error)}
.sro-map .sro-icon-editor button.sro-action-danger:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error)}
.sro-map .sro-icon-editor .sro-ui-icon{width:15px;height:15px;flex:0 0 15px}
.sro-map .sro-icon-bulk{display:grid;gap:8px}
.sro-map .sro-icon-selection-tools,.sro-map .sro-icon-bulk-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sro-map .sro-icon-selection-tools button.atlas-btn{padding:4px 6px;border-color:transparent;background:transparent;min-height:28px;color:var(--color-secondary);font-size:10px}
.sro-map .sro-icon-bulk output{font:500 11px/1.5 var(--body,Arial,sans-serif);color:var(--color-accent)}
.sro-map .sro-icon-list{gap:3px;max-height:260px;padding-right:4px;scrollbar-gutter:stable;scrollbar-color:var(--color-base-300) var(--color-base-100)}
.sro-map .sro-icon-row{display:grid;grid-template-columns:18px 28px minmax(0,1fr) 30px;align-items:center;gap:7px;min-width:0;min-height:52px;padding:5px 4px;border:1px solid transparent;border-radius:6px;cursor:default}
.sro-map .sro-icon-row:has(input:checked){background:var(--color-neutral);border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-base-300))}
.sro-map .sro-icon-row:focus-within{border-color:var(--color-accent)}
.sro-map .sro-icon-row input[type=checkbox]{--size:18px;display:block;position:static;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;padding:0;margin:0;justify-self:start;align-self:center;flex:0 0 18px}
.sro-map .sro-icon-row>img{display:block;width:28px;height:28px;max-width:28px;object-fit:contain;pointer-events:none}
.sro-map .sro-icon-row .sro-icon-row-label{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:40px;margin:0;padding:0;cursor:pointer;text-align:left}
.sro-map .sro-icon-row strong{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-base-content);font:500 11px/1.5 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-row small{display:block;color:var(--color-secondary);font:10px/1.4 var(--body,Arial,sans-serif)}
.sro-map .sro-icon-row>button.sro-icon-locate{grid-column:4;grid-row:1;justify-self:end;display:grid;place-items:center;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;background:transparent;border-color:transparent;color:var(--color-secondary)}
.sro-map .sro-icon-row>button.sro-icon-locate:hover{background:var(--color-base-200)}
@media(max-width:760px){
 .sro-map .sro-icon-editor button.atlas-btn,.sro-map .sro-icon-editor .pvp-select>button.pvp-select-trigger{min-height:44px}
 .sro-map .sro-icon-row{grid-template-columns:18px 24px minmax(0,1fr) 44px;gap:6px}
 .sro-map .sro-icon-row>img{width:24px;height:24px}
 .sro-map .sro-icon-row>button.sro-icon-locate{width:44px;min-width:44px;height:44px}
 .sro-map .sro-icon-list{max-height:224px}
}
