/* Shared by live AGV3 work maps and immutable Portfolio/flight previews. */
.agv3-work-draw-tools{display:inline-flex;gap:5px}
/* Jobs and standalone plans use the same embedded workspace. Placement controls
   occupy their own row below the map, never the bottom of a long details list. */
.work-map-workspace{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:10px;align-items:start;min-width:0}
.work-map-stage{position:sticky;top:0;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;height:min(max(260px,58vh),var(--work-map-available-height,100vh));height:min(max(260px,58dvh),var(--work-map-available-height,100dvh));z-index:0}
.work-map-stage .work-map-canvas{height:100%;min-height:0;min-width:0;box-sizing:border-box;border:1px solid var(--pf-line,#9da9a1)}
.work-map-editor{min-width:0}
.agv3-work-brief.agv3-work-embedded{position:static;width:auto;max-width:none;max-height:none;margin:0;box-shadow:none;border-width:1px;z-index:auto}
.agv3-work-embedded .agv3-work-body{overflow:visible;max-height:none}
.agv3-work-embedded [data-close],.agv3-work-embedded [data-view-work]{display:none}
.work-map-workspace.is-map-placing .work-map-stage{height:var(--work-map-available-height,60vh);height:var(--work-map-available-height,60dvh)}
@media(max-width:999px){
  .work-map-workspace{grid-template-columns:1fr}
  .work-map-stage{position:relative;height:min(max(260px,36vh),var(--work-map-available-height,100vh));height:min(max(260px,36dvh),var(--work-map-available-height,100dvh))}
  .work-map-workspace.is-map-placing .work-map-editor{display:none}
  .agv3-work-embedded .agv3-work-draw-tools{position:absolute;top:10px;right:10px;z-index:1;padding:4px;margin:0;background:#fff;border:1px solid #83978b;border-radius:4px;box-shadow:0 2px 8px #0003}
  .agv3-work-embedded .agv3-work-draw-tools button{min-width:44px;min-height:44px;margin:0}
}
.agv3-work-tools [data-work-boundary]{min-width:44px;min-height:44px}
.agv3-work-pin { border:2px solid #fff;border-radius:50%;color:white;text-align:center;line-height:22px;font-weight:bold;box-shadow:0 1px 4px #2228; }
.agv3-work-pin > span { display:block;width:100%;height:100%;border-radius:inherit; }
.agv3-work-pin sup { position:absolute;right:-5px;top:-8px;background:#fff;color:#265837;border-radius:50%;line-height:14px; }
.agv3-work-pin.is-selected { outline:3px solid #111;outline-offset:2px; }
.agv3-work-pin.is-shared { outline:3px dashed #267ccd;outline-offset:3px; }
.agv3-work-map-label small,.agv3-work-brief [data-measurement]{display:block;margin-left:0;white-space:pre-line;font-size:11px;line-height:1.35;color:#526358;font-weight:normal}
.agv3-work-map-label{display:block;max-width:min(260px,65vw);white-space:normal}
.agv3-work-brief [data-measurement-options] small{font-size:11px;color:#526358}
.agv3-work-brief[hidden],.agv3-work-resume[hidden]{display:none!important}
.agv3-work-brief header .agv3-work-selector{position:relative;flex:1;min-width:90px;border:0;padding:0}
.agv3-work-selector>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agv3-work-picker{position:absolute;top:100%;left:0;width:290px;max-width:calc(100vw - 40px);max-height:45vh;max-height:45dvh;overflow:auto;background:white;border:1px solid #59665c;padding:6px;box-shadow:0 4px 14px #15271d40;z-index:2}
.agv3-work-picker .agv3-work-choices{max-height:none;overflow:visible}
.agv3-work-brief .agv3-work-picker button{margin:0;text-align:left}
.agv3-work-brief .agv3-work-picker .agv3-work-choices>button{width:100%}
.agv3-work-brief>header,.agv3-work-brief>footer{flex-shrink:0}
.agv3-work-brief header button{margin-left:0;flex-shrink:0}
.agv3-work-brief header .agv3-work-flight{background:#285a37;color:#fff;border-color:#285a37;font-weight:600}
.agv3-work-brief header .agv3-work-flight:disabled{opacity:.55}
.agv3-work-brief>header{flex-wrap:wrap}
.agv3-work-brief footer{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.agv3-work-brief [data-count]{font-size:11px;color:#536457}
.agv3-work-resume{position:fixed;z-index:1500;right:12px;bottom:76px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #59665c;border-radius:3px;background:#fff;color:#203128;box-shadow:0 3px 12px #15271d40;padding:7px 10px}
.agv3-work-brief [data-import-rows]>div{display:flex;align-items:center;gap:5px}
.agv3-work-brief [data-import-rows] label{flex:1;min-width:0;overflow-wrap:anywhere}
.agv3-work-brief .agv3-work-mission-choices{display:flex;flex-wrap:wrap;gap:5px;padding:6px;border:1px solid #84918a}
.agv3-leave-dialog{max-width:calc(100vw - 32px);border:1px solid #7d8a80;border-radius:5px;padding:16px;color:#203128;background:white}
.agv3-leave-dialog::backdrop{background:#15271d60}
.agv3-leave-dialog h3{margin:0 0 12px}
.agv3-leave-dialog>div{display:flex;flex-wrap:wrap;gap:8px}
.agv3-leave-dialog button{padding:8px;border:1px solid #7d8a80;border-radius:3px;background:#f7f9f7;color:inherit}
.agv3-leave-dialog [data-choice=save]{background:#285a37;color:white}
#agJobsHost{display:flex;flex:1;min-height:0;min-width:0}
#agJobsHost>.agv3-work-card{position:static;inset:auto;z-index:auto;width:100%;max-width:none;max-height:none;min-height:0;flex:1;margin:0;box-shadow:none;border:0;border-radius:0}
#agJobsHost .agv3-work-body{flex:1;min-height:0}
#agJobsHost .agv3-work-selector{min-width:90px}
#agv3App.agv3-sheet-jobs .agv3-sheet-header{display:none!important}
@media(max-width:820px){
  #agv3App.agv3-sheet-visible.agv3-sheet-jobs:not(.agv3-header-collapsed) .agv3-bottom-nav{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  #agv3App.agv3-sheet-visible.agv3-sheet-jobs .agv3-toolbar{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  #agv3App.agv3-sheet-visible.agv3-sheet-jobs:not(.agv3-header-collapsed){--agv3-sheet-bottom-gap:calc(var(--agv3-bottom-stack-h) - 10px)}
}
@media(max-width:820px){#agJobsHost,#agJobsHost>.agv3-work-card{height:auto;flex:none}#agJobsHost .agv3-work-body{overflow:visible;flex:none}#agSection-jobs{overflow:visible}}

/* A tall/restored Jobs sheet must fit between the app header and bottom tools. */
@media(max-width:820px){
  #agv3App.agv3-sheet-visible.agv3-sheet-jobs:not(.agv3-panel-focus) .agv3-sidebar{
    --agv3-jobs-available-height:calc(var(--agv3-visual-viewport-h,100vh) - var(--agv3-sheet-top-gap,0px) - max(var(--agv3-sheet-bottom-gap,0px),var(--agv3-visual-viewport-bottom,0px)));
    height:min(var(--agv3-sheet-size),var(--agv3-jobs-available-height))!important;
    max-height:var(--agv3-jobs-available-height)!important;
    min-height:0;
  }
}

/* Job chrome wraps; Close stays in the visible header on narrow screens. */
.agv3-work-brief>header{flex-wrap:wrap;min-width:0;padding-right:8px}
.agv3-work-brief>header button{margin-left:0;min-height:40px;flex-shrink:0}
.agv3-work-brief>header [data-close]{margin-left:auto;min-width:40px}
.agv3-work-brief>header [data-saved-work]{flex:1;min-width:100px}
.agv3-work-brief.is-work-list>header{align-items:flex-start}
.agv3-work-brief.is-work-list>header>:not([data-saved-work]):not([data-close]){display:none}
.agv3-work-brief.is-work-list .agv3-work-body{display:none}
.agv3-work-brief.is-work-list .agv3-work-picker{position:static;max-height:none;box-shadow:none;width:auto}
.agv3-work-brief.is-work-list [data-saved-work]>summary{pointer-events:none;list-style:none}
.agv3-work-brief.is-work-list{overflow:auto}
.agv3-work-brief.is-work-list .agv3-work-choices{max-height:none;overflow:visible}
/* Anchor the popup to the full header so neighbouring actions cannot push it
   outside the screen when the header wraps. The list view keeps normal flow. */
.agv3-work-brief:not(.is-work-list)>header{position:relative}
.agv3-work-brief:not(.is-work-list)>header .agv3-work-selector{position:static}
.agv3-work-brief:not(.is-work-list) .agv3-work-picker{box-sizing:border-box;max-width:100%;left:0}
