/* One explicit drag target: form scrolling, map gestures and close buttons stay independent. */
.movable-panel .panel-move-handle {
  display: inline-grid !important; place-items: center; flex: 0 0 44px;
  width: 44px !important; height: 44px !important; min-height: 44px !important;
  padding: 10px !important; border: 1px solid #a8bbae; border-radius: 8px;
  background: #f3f7f2; color: #285c42; cursor: grab; touch-action: none; user-select: none;
}
.panel-move-handle svg, #sidebarToggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.panel-move-handle:focus-visible, #sidebarResizeHandle:focus-visible { outline: 3px solid #63a77b; outline-offset: 2px; }
.panel-moving .panel-move-handle { cursor: grabbing; background: #dcebcf; }
.movable-panel .panel-move-heading { gap: 8px; }
.panel-move-heading > div:not(.panel-move-bar) { min-width: 0; }
.panel-move-bar { display: flex; justify-content: center; margin-bottom: 8px; }
.map-edit-toolbar .panel-move-handle { color: #fff; border-color: #91aa9b; background: #ffffff12; }
.map-edit-toolbar > * { min-width: 0; }
.map-edit-toolbar .panel-move-heading { min-width: 0; width: 100%; }
.map-edit-toolbar .panel-move-heading > strong { min-width: 0; flex: 1 1 0; overflow: hidden; text-overflow: ellipsis; }
/* Tall forms must remain scrollable when the draggable outer frame is shorter.
   The owner review form keeps its own scroll body and visible action row. */
dialog.movable-panel { max-height: min(85dvh, calc(100dvh - 24px)); overflow: auto; overscroll-behavior: contain; }
dialog.owner-contract-dialog.movable-panel > form { max-height: calc(85dvh - 2px); }
dialog.movable-panel.panel-positioned, .raivis-panel.panel-positioned {
  position: fixed !important; inset: auto !important; margin: 0 !important;
  top: var(--panel-top) !important; left: var(--panel-left) !important;
  width: var(--panel-width) !important; max-width: calc(100vw - 12px) !important; transform: none !important;
}
.map-edit-toolbar.panel-positioned, #mapLayersPanel.panel-positioned {
  inset: auto !important; top: var(--panel-top) !important; left: var(--panel-left) !important;
  width: var(--panel-width) !important; max-width: calc(100% - 12px) !important; transform: none !important;
}
.club-work-map-dialog.movable-panel { overflow: hidden; width: min(1440px, calc(100vw - 24px)); height: min(950px, 85dvh); border-radius: 14px; }
.raivis-panel.movable-panel { max-height: 85dvh; }
.raivis-panel.panel-positioned, #mapLayersPanel.panel-positioned { height: var(--panel-height); max-height: 85dvh; }
#sidebarResizeHandle, #sidebarToggle { display: none; }
@media (min-width: 801px) {
  .map-body:not(.map-popup-mode) .workspace { position: relative; grid-template-columns: var(--sidebar-width, 390px) minmax(0, 1fr); }
  .map-body .sidebar { min-width: 0; }
  .sidebar > .panel-move-bar { display: none; }
  #sidebarResizeHandle { display: block; position: absolute; z-index: 701; left: calc(var(--sidebar-width, 390px) - 5px); top: 0; bottom: 0; width: 10px; cursor: ew-resize; touch-action: none; }
  #sidebarResizeHandle::after { content: ''; position: absolute; width: 3px; height: 54px; top: calc(50% - 27px); left: 3px; border-radius: 3px; background: #8da893; }
  #sidebarResizeHandle:hover, .sidebar-resizing #sidebarResizeHandle { background: #91b09a55; }
  #sidebarToggle { position: absolute; display: grid; place-items: center; z-index: 702; left: calc(var(--sidebar-width, 390px) - 44px); top: 4px; width: 40px; height: 44px; padding: 8px; border: 1px solid #a9bcac; border-radius: 8px 0 0 8px; background: #fff; color: #285c42; box-shadow: 0 2px 8px #183c2a22; }
  .map-body:not(.map-popup-mode).map-sidebar-collapsed .workspace { grid-template-columns: 0 minmax(0, 1fr); }
  .map-sidebar-collapsed #mobilePanel { visibility: hidden; overflow: hidden; }
  .map-sidebar-collapsed #sidebarResizeHandle { display: none; }
  .map-sidebar-collapsed #sidebarToggle { left: 0; top: 100px; border-radius: 0 8px 8px 0; }
  .sidebar-resizing { user-select: none; cursor: ew-resize; }
  .map-body .sidebar .summary-group:first-child h2 { padding-right: 48px; }
}
@media (max-width: 800px) {
  #mobilePanel > .panel-move-bar { position: sticky; top: 6px; height: 0; z-index: 5; margin: 0; }
  #mobilePanel > .panel-move-bar .panel-move-handle { position: absolute; left: calc(50% - 22px); }
  #mobilePanel.panel-positioned { position: fixed; inset: auto; left: var(--panel-left); top: var(--panel-top); width: var(--panel-width); max-width: calc(100vw - 12px); }
  .movable-panel .panel-move-heading { flex-wrap: nowrap; }
  .map-edit-toolbar .panel-move-heading { gap: 4px; }
  .movable-panel .panel-move-heading h2 { overflow-wrap: anywhere; }
}
