/* Tactical-map composition, informed by the installed S_TacticalDeviceScreen. */
.task-vendor-group>summary{font-size:15px;color:#e4db83;letter-spacing:1px;padding:14px 0 6px;border-bottom:1px solid #65765c;margin:10px 0 0;cursor:pointer}.task-catalog-note{font-size:11px;line-height:1.5;color:var(--muted)}
.tactical-map .map-top{gap:8px}.tactical-map #open-tasks{margin-right:auto}
.tasks-panel{position:absolute;z-index:950;left:22px;top:70px;bottom:60px;width:min(440px,calc(100vw - 44px));background:#111b19f5;border:1px solid #7a847769;overflow-y:auto;padding:17px;color:var(--text)}.tasks-panel[hidden]{display:none}.tasks-heading{display:flex;justify-content:space-between;align-items:center}.tasks-heading h2{font-size:18px;margin:0 0 12px}.tasks-panel .search-box{margin:5px 0 12px}.tasks-panel input{width:100%;min-width:0}.task-type-label{font-size:12px;display:grid;gap:6px}.tasks-panel #task-count{font-size:12px;color:var(--muted)}.task-card{border-top:1px solid #5b666077;padding:12px 0}.task-card>summary{cursor:pointer;line-height:1.5;font-size:14px;color:#e4db83}.task-card>summary small{display:block;font-size:11px;color:#a0aaa3;margin-left:15px}.tasks-panel .task-guide{font-size:12px;line-height:1.6}.tasks-panel .task-guide h3{font-size:14px}.tasks-panel .task-guide h4{font-size:13px}.task-location-entry{margin:12px 0;padding-bottom:10px;border-bottom:1px solid #5b66604d}.task-location-entry .location-photos{margin-top:8px;padding-top:0;border:0}.tasks-panel .task-briefing{white-space:pre-line}.tasks-panel .task-warning{border-left:2px solid #dfb75a;padding-left:9px}.tasks-panel .source-note{font-size:11px}.tasks-panel .task-location{width:100%;text-align:left}
@media(max-width:700px){.tasks-panel{left:12px;top:60px;bottom:45px;width:calc(100vw - 24px)}}
body.tactical-map{--accent:#e4db83;--bg:#151c1b;--panel:#1b2422;--line:#5b66604d;--text:#d5d9d5;--muted:#a0aaa3;font-family:Arial,sans-serif}
.tactical-map .app-shell{display:block;position:relative}
.tactical-map .map-shell{width:100%;height:100%;min-height:100dvh}
.tactical-map .sidebar{position:absolute;left:22px;top:70px;bottom:60px;width:min(330px,calc(100vw - 44px));min-width:0;z-index:950;background:#111b19ed;border:1px solid #7a847769;transform:translateX(-120%);visibility:hidden;transition:transform .16s,visibility .16s}
.tactical-map .sidebar.open{transform:translateX(0);visibility:visible}
.tactical-map .brand{height:65px;min-height:65px;padding:16px 18px;justify-content:space-between}
.tactical-map .brand-mark{display:none}
.tactical-map .brand h1{font-size:13px;font-weight:500;letter-spacing:2px}
.tactical-map .brand p{font-size:9px;letter-spacing:1px;margin-top:4px}
.tactical-map .brand .mobile-only{display:block;margin-left:auto}
.tactical-map .sidebar-body{padding:15px 17px}
.tactical-map .sidebar-footer{background:#111b19f5}
.tactical-map .map-top{left:28px;right:22px;top:22px;justify-content:space-between;pointer-events:none}
.tactical-map .map-top>button{pointer-events:auto}
.tactical-map #open-sidebar{display:block}
.tactical-map .location-heading,.tactical-map .map-notice,.tactical-map .north-indicator,.tactical-map .interaction-hint{display:none}
.tactical-map .map-pill{background:#111b19d9;border:1px solid #7b887169;border-radius:0;font-size:11px;padding:8px 11px;color:#b6c0b6}
.tactical-map .map-pill:hover{background:#354339e6;color:#f3f0ce}
.tactical-map .map-tools{top:auto;bottom:68px;right:22px;background:#111b19d9;border:1px solid #7b887169;border-radius:0}
.tactical-map .map-tools button{width:29px;height:29px;font-size:18px;color:#bac6bb}
.tactical-map .map-bottom{height:35px;background:#111b194d;border:0;padding:0 25px;pointer-events:none}
.tactical-map .coordinate-readout strong{color:#a7b39d}
.tactical-map .grid-label{font:10px Arial,sans-serif;color:#d0dac9;text-shadow:0 1px 2px #08110d,0 0 3px #08110d}
/* Color balance sampled against the user's in-game reference, in sRGB.
   Apply ONLY to terrain; UI icons and the hazard canvas retain their own colors. */
.tactical-map.game-terrain .leaflet-tile-pane{filter:url("#game-terrain-colors")}
.tactical-map #map{background:#15191b}
.category-symbol .native-symbol{width:23px;height:23px;object-fit:contain}
.tactical-map .details:has(.task-guide){width:min(440px,calc(100vw - 44px))}
.task-guide{border-top:1px solid var(--line);margin:16px 0;padding-top:12px}
.task-guide h3{font-size:15px;margin:0 0 10px;color:#efdda0}
.task-guide h4{font-size:12px;margin:14px 0 7px;color:#dce2d8}
.task-guide ol{padding-left:23px;margin:8px 0 14px}
.task-guide li{font-size:12px;margin:7px 0;color:#d2ddcb}
.task-guide summary{cursor:pointer;color:#e4db83;font-size:12px;margin:12px 0 6px}
.task-guide .task-briefing{white-space:pre-line;line-height:1.65}
.task-guide .task-warning{border-left:3px solid #d6a46f;padding:8px 10px;background:#bd823018;color:#edc99c}
.task-variant+.task-variant{border-top:1px solid var(--line);margin-top:15px;padding-top:10px}
.task-locations{display:grid;gap:5px;margin-bottom:14px}
.task-location{text-align:left;font-size:11px;background:#22302a;border:1px solid #5b66604d;color:#d5d9d5;padding:8px}
.task-location:hover{background:#354339}
.tactical-map .details:has(.location-relations){width:min(440px,calc(100vw - 44px))}
.location-relations{border-top:1px solid var(--line);padding-top:12px;margin:15px 0}
.location-relations h3{font-size:15px;color:#e4db83;margin:0 0 12px}
.location-relations h4{font-size:12px;margin:15px 0 7px;color:#d8e4d2}
.relation-location,.relation-overview{display:block;width:100%;text-align:left;padding:8px 10px;margin:5px 0;background:#22332d;color:#c4e5df;border:1px solid #59786c;font-size:11px}
.relation-location:hover,.relation-overview:hover{background:#34483e}
.relation-location:disabled{cursor:default;color:#a3aca2}
.account-bar{position:absolute;right:125px;top:22px;z-index:510;display:flex;gap:6px;align-items:center}.account-bar a{text-decoration:none;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-bar form{margin:0}.account-bar .map-pill{font-size:11px;padding:8px 10px;display:block}.account-panel{border:1px solid #65765c;padding:10px;margin-bottom:18px;color:#b9cbb3;font-size:11px}.account-panel p{margin:0 0 8px}.account-panel small{display:block;line-height:1.5;color:#96aa90;margin-top:9px}.account-panel button{background:#293a2c;border:1px solid #61765a;padding:6px 8px;font-size:10px;color:#dce6d4}.account-actions{display:flex;gap:6px;margin-bottom:7px}
@media(max-width:700px){.account-bar{top:16px;right:110px;gap:3px}.account-bar a{max-width:90px}.account-bar .map-pill{font-size:10px;padding:8px 6px}}
.tactical-map .details{top:80px;right:22px;max-height:calc(100% - 150px);background:#111b19ed;border:1px solid #7a847769;border-radius:0}
.tactical-map .details h2{font-size:17px}
.tactical-map .search-box,.tactical-map select,.tactical-map button.primary-button{border-radius:0}
.tactical-map .leaflet-control-attribution{background:#111b1977!important;color:#99a499!important}
@media(max-width:700px){
    .tactical-map .sidebar{left:12px;top:60px;bottom:45px;width:min(330px,calc(100vw - 24px))}
    .tactical-map .map-top{left:16px;top:16px;right:16px}
    .tactical-map .details{top:auto;bottom:63px;left:12px;right:52px;width:auto;max-height:45dvh}
    .tactical-map .map-tools{right:12px;bottom:60px}
}
/* One shared toolbar owns all horizontal spacing; no fixed account/pin offsets. */
.tactical-map #open-tasks{margin-right:0}
.tactical-map #open-crafting{margin-right:auto}
.tactical-map .map-top>.map-pill{pointer-events:auto;flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;text-decoration:none}
.tactical-map .map-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px}
.tactical-map .account-bar{position:static;inset:auto;display:flex;gap:6px;min-width:0;pointer-events:auto}
.tactical-map .map-top>button,.tactical-map .account-bar>*{flex-shrink:0;white-space:nowrap}
.tactical-map .account-bar #account-link{flex-shrink:1;min-width:0}
@media(max-width:700px){
    .tactical-map .account-bar{order:5;flex-basis:100%;justify-content:flex-end;gap:6px}
    .tactical-map .sidebar,.tactical-map .tasks-panel{top:104px}
}
.tactical-map .sidebar,.tactical-map .tasks-panel{top:var(--map-panel-top,70px)}
@media(max-width:700px){.tactical-map .sidebar,.tactical-map .tasks-panel{top:var(--map-panel-top,150px)}}
.tactical-map .map-help{margin:15px 0;color:var(--muted);font-size:11px;line-height:1.7}.tactical-map .map-help summary{cursor:pointer;color:var(--accent)}
.tactical-map #map-menu{display:none}
@media(max-width:900px),(max-height:500px) and (max-width:1000px){
 body.tactical-map{overflow:hidden;overscroll-behavior:none}
 .tactical-map .map-top{top:max(10px,env(safe-area-inset-top));left:12px;right:12px;gap:6px;z-index:1000}
 .tactical-map .map-top>.map-pill{min-height:44px;font-size:13px;padding:10px 14px}
 .tactical-map #map-menu{display:inline-flex;margin-left:auto}
 .tactical-map:not(.interior-atlas) .map-top:not(.more-open)>.map-pill:not(#open-sidebar):not(#open-tasks):not(#map-menu),.tactical-map:not(.interior-atlas) .map-top:not(.more-open)>.account-bar{display:none}
 .tactical-map .map-top.more-open{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;background:#111b19fa;border:1px solid #7b887169;max-height:calc(100dvh - 28px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 35px #0008}
 .tactical-map .map-top.more-open>.map-pill{display:flex;justify-content:center;white-space:normal;text-align:center;overflow-wrap:anywhere;min-width:0;margin:0;font-size:12px;padding:8px}
 .tactical-map .map-top.more-open>.account-bar{display:flex;grid-column:1/-1;flex-wrap:wrap;justify-content:flex-start;order:0;border-top:1px solid var(--line);padding-top:8px}
 .tactical-map .map-top.more-open #add-pin{grid-column:1/-1}
 .tactical-map .account-bar .map-pill{min-height:44px;display:flex;align-items:center;font-size:12px;max-width:none}
 .tactical-map .sidebar,.tactical-map .tasks-panel{left:12px;right:12px;width:auto;top:var(--map-panel-top,66px);bottom:calc(52px + env(safe-area-inset-bottom));max-height:none;overscroll-behavior:contain}
 .tactical-map .sidebar-body{padding:14px;min-height:0}.tactical-map .sidebar-footer{padding:10px 14px}
 .tactical-map .category{min-height:44px}.tactical-map .category input{width:18px;height:18px}
 .tactical-map .category-group summary{min-height:40px;align-items:center}
 .tactical-map .search-box input,.tactical-map input,.tactical-map select,.tactical-map textarea{font-size:16px}
 .tactical-map .search-box{min-height:44px}.tactical-map .icon-button{min-width:44px;min-height:44px}
 .tactical-map .map-tools{right:12px;bottom:calc(48px + env(safe-area-inset-bottom))}.tactical-map .map-tools button{width:44px;height:44px}
 .tactical-map .details{left:12px;right:64px;top:auto;bottom:calc(48px + env(safe-area-inset-bottom));max-height:52dvh;padding:14px;overscroll-behavior:contain;overflow-wrap:anywhere}
 .tactical-map .details:has(.task-guide),.tactical-map .details:has(.location-relations){width:auto}
 .tactical-map .detail-actions button,.tactical-map .relation-location,.tactical-map .task-location{min-height:44px;font-size:12px}
 .tactical-map .map-bottom{height:calc(35px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
 .tactical-map dialog{padding:16px;max-height:calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto}
 .tactical-map .dialog-heading h2{font-size:21px}.tactical-map .keyring-row{min-height:48px}.tactical-map .keyring-row input{width:20px;height:20px;flex-shrink:0}
}
