/* Portfolio-only technical workspace. Shared AGV3/flight/map tools retain their
   own CSS and contracts. The page scrolls; only an open job owns a bounded pane. */
#portfolioApp.portfolio-technical { --pf-radius: 5px; --pf-line: #cbd2d5; --pf-muted: #53616b; background: #f1f3f4; }
/* This host exists only for shared help/messages. AGV3's fixed decorative
   pseudo-element would otherwise paint a translucent veil over Portfolio. */
#agv3App.portfolio-overlay-shell::before { content: none; display: none; }
.portfolio-technical .portfolio-header { background: #24333d; padding: 8px 14px; gap: 12px; box-shadow: none; border-bottom: 1px solid #14232d; }
.portfolio-technical .portfolio-tabs { background: transparent; border-radius: 0; padding: 0; overflow: visible; }
.portfolio-tabs-scroll { display: flex; align-items: center; gap: 2px; min-width: 0; overflow-x: auto; scrollbar-width: thin; overscroll-behavior-x: contain; }
/* Only the button strip scrolls. More stays outside it so the menu is neither
   clipped by overflow nor pushed beyond the viewport. */
.portfolio-technical .portfolio-tabs { min-width: 0; }
.portfolio-technical .portfolio-tabs-scroll { flex: 1 1 auto; }
.portfolio-technical .portfolio-tabs-scroll > button { flex: 0 0 auto; }
.portfolio-technical .portfolio-brand .brand-lockup { display: flex; min-width: 0; }
.portfolio-technical .portfolio-brand .brand-lockup__badge { flex: 0 1 auto; min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; }
.portfolio-technical .portfolio-brand { min-width: 0; }
.portfolio-technical .portfolio-tabs button { border-radius: 3px; padding: 8px 12px; box-shadow: none; }
.portfolio-technical .portfolio-header-actions { gap: 6px; }
.portfolio-technical .portfolio-main { padding: 14px; }
/* Specify both sides of every rollover: legacy button styles otherwise leave
   white text on the light menu/tab background. Never move controls on hover. */
.portfolio-technical :is(.portfolio-btn,.portfolio-icon-btn,.portfolio-quick-action,.portfolio-menu > summary,.portfolio-menu > div > button,.portfolio-project-tabs button):is(:hover,:focus-visible) {
  background: #e3eae5; color: #142b1d; border-color: #74867a; transform: none; box-shadow: none;
}
.portfolio-technical :is(.portfolio-btn--primary,.portfolio-project-tabs button.is-active):is(:hover,:focus-visible) { background: #183a23; color: #fff; }
.portfolio-technical .portfolio-header :is(button,.portfolio-app-switch,.portfolio-menu > summary):is(:hover,:focus-visible) { background: #e3eae5; color: #142b1d; }
.portfolio-technical .portfolio-header .brand-lockup__badge { background:#e3eae5; color:#142b1d; border-color:#e3eae5; }
.portfolio-technical :is(.portfolio-job-open,.portfolio-capture-open):is(:hover,:focus-visible) { color: #142b1d; background: transparent; }
.portfolio-technical .portfolio-title-row { margin-bottom: 10px; align-items: center; }
.portfolio-technical .portfolio-title-row h1 { font-size: 23px; margin: 0; }
.portfolio-technical .portfolio-title-row .portfolio-eyebrow,
.portfolio-technical .portfolio-title-row .portfolio-title-note,
.portfolio-technical .portfolio-workspace-section > summary small,
.portfolio-technical .portfolio-summary-action,
.portfolio-technical .portfolio-list-heading .portfolio-eyebrow { display: none; }
.portfolio-technical .portfolio-title-actions { gap: 6px; }
/* Native selects size to their longest option in Firefox unless their grid
   item is explicitly allowed to shrink within the filter form. */
.portfolio-technical .portfolio-filter-row :is(input,select) { min-width: 0; width: 100%; max-width: 100%; box-sizing: border-box; }
.portfolio-technical :is(.portfolio-btn,.portfolio-icon-btn,.portfolio-header-icon,.portfolio-quick-action,input,select,textarea) { border-radius: var(--pf-radius); box-shadow: none; }
.portfolio-technical :is(.portfolio-workspace-section,.portfolio-project-card,.portfolio-farm-card,.portfolio-provider,.portfolio-contact-row,.portfolio-health-matrix,.portfolio-form-section,.portfolio-dialog,.portfolio-stage) { border-radius: var(--pf-radius); box-shadow: none; }
.portfolio-technical .portfolio-workspace-section { margin-bottom: 8px; }
.portfolio-technical .portfolio-workspace-section > summary { padding: 9px 12px; }
.portfolio-technical .portfolio-workspace-section__body { padding: 12px; }
.portfolio-technical .portfolio-control-tower { padding: 0; background: #fff; }
.portfolio-technical .portfolio-job-status { border-radius: 3px; background: #edf1f3; padding: 3px 7px; }
.portfolio-technical .portfolio-jobs-toolbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.portfolio-technical .portfolio-jobs-toolbar .portfolio-job-search { flex: 1 1 220px; min-width: min(100%, 160px); }
.portfolio-technical #portfolioJobStatusFilter { flex: 0 0 auto; width: 150px; min-width: 150px; }
.portfolio-technical .portfolio-jobs-toolbar > :is(button,.portfolio-menu) { flex-shrink: 0; }
/* A wrapped Filters/Tools button may sit at the far left. Anchor its popup to
   the bounded toolbar, not that tiny button, so it cannot open off-screen. */
.portfolio-technical .portfolio-jobs-toolbar > .portfolio-menu { position: static; }
.portfolio-technical .portfolio-jobs-toolbar > .portfolio-menu > div { box-sizing: border-box; max-width: min(520px,100%); }
.portfolio-jobs-toolbar input,.portfolio-jobs-toolbar select { min-height: 40px; padding: 8px; border: 1px solid var(--pf-line); font: inherit; background: #fff; }
.portfolio-job-search { flex: 1; min-width: 0; }
.portfolio-job-search input { width: 100%; box-sizing: border-box; }
.portfolio-job-search > span { display: none; }
.portfolio-technical .portfolio-operator-grid { display: block; }
.portfolio-technical #portfolioProjectsSection > .portfolio-list-heading { display: none; }
.portfolio-technical .portfolio-operator-project { border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0; box-shadow: none; padding: 10px 12px; background: #fff; display: grid; grid-template-columns: minmax(180px,2fr) minmax(130px,1fr) minmax(100px,1fr) auto; align-items: center; gap: 12px; }
.portfolio-operator-project h3 { margin: 0; font-size: 15px; }
.portfolio-job-open { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.portfolio-job-open:hover { text-decoration: underline; }
.portfolio-job-cell { min-width: 0; display: grid; gap: 3px; }
.portfolio-job-cell small { color: var(--pf-muted); }
.portfolio-job-cell strong,.portfolio-job-cell small { overflow-wrap: anywhere; }
.portfolio-menu { position: relative; flex: 0 0 auto; }
.portfolio-menu > summary { list-style: none; cursor: pointer; min-width: 40px; min-height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--pf-line); border-radius: 4px; }
.portfolio-menu > summary::-webkit-details-marker { display: none; }
.portfolio-menu > div { position: absolute; right: 0; top: 100%; z-index: 80; width: max-content; min-width: 160px; max-width: min(520px,85vw); max-height: 65vh; max-height: 65dvh; overflow: auto; padding: 6px; background: #fff; color: #24333d; border: 1px solid var(--pf-line); box-shadow: 0 5px 18px #15253030; border-radius: 5px; }
.portfolio-menu > div > button { display: block; width: 100%; text-align: left; border: 0; padding: 10px; background: transparent; color: #24333d; font: inherit; cursor: pointer; }
.portfolio-menu > div > button:hover { background: #e8eef1; }
.portfolio-menu .portfolio-operator-summary { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; gap: 5px; }
.portfolio-menu .portfolio-operator-metric { min-height: 0; padding: 8px; border-radius: 3px; }
.portfolio-menu .portfolio-operator-metric strong { font-size: 20px; }
.portfolio-technical .portfolio-project-dialog { border-radius: 5px; }
.portfolio-technical .portfolio-project-header { padding: 12px 16px; }
.portfolio-technical .portfolio-project-header h2 { font-size: 22px; }
.portfolio-technical .portfolio-project-header a { color: inherit; text-decoration: none; }
.portfolio-technical .portfolio-project-header a:hover { text-decoration: underline; }
.portfolio-technical .portfolio-job-screen { gap: 12px; }
.portfolio-technical .portfolio-job-screen .portfolio-list-heading { margin: 0 0 8px; }
.portfolio-technical .portfolio-job-screen h3 { font-size: 16px; margin: 0; }
.portfolio-technical .portfolio-job-screen .portfolio-job-brief { gap: 6px; }
.portfolio-technical .portfolio-project-upload .portfolio-toggle { display: flex; align-items: center; gap: 8px; padding: 0; }
.portfolio-technical .portfolio-project-upload .portfolio-toggle input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; margin: 0; }
.portfolio-technical .portfolio-project-upload .portfolio-toggle span { font-size: 13px; }
.portfolio-technical .portfolio-project-notes .portfolio-empty { padding: 8px; border: 0; background: transparent; text-align: left; }
.portfolio-technical .portfolio-job-more > aside { padding: 0 12px; }
.portfolio-technical .portfolio-dialog { position: fixed; inset: 0; margin: auto; max-height: 90vh; max-height: 90dvh; }
.portfolio-technical .portfolio-dialog > form { display:flex; flex-direction:column; min-height:0; max-height:calc(90vh - 2px); max-height:calc(90dvh - 2px); }
.portfolio-technical .portfolio-dialog > form > :is(header,footer) { flex-shrink:0; }
.portfolio-technical .portfolio-dialog > form > .portfolio-dialog-body { flex:1 1 auto; min-height:0; overflow:auto; }
.portfolio-technical .portfolio-form-grid [data-contact-fields] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.portfolio-project-context { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; padding: 0 16px 10px; border-bottom: 1px solid var(--pf-line); }
.portfolio-project-context:empty { display: none; }
.portfolio-project-context a { color: #155c74; }
.portfolio-project-context .portfolio-btn { margin-left: auto; }
.portfolio-technical .portfolio-project-tabs { overflow: visible; padding: 6px 12px; gap: 6px; }
.portfolio-technical .portfolio-project-tabs button { border-radius: 3px; }
.portfolio-technical .portfolio-project-body { padding: 14px; }
.portfolio-technical .portfolio-project-card { padding: 12px; }
.portfolio-technical .portfolio-job-facts article { border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0; padding: 8px 0; background: transparent; }
.portfolio-technical .portfolio-job-actionbar { display: none; }
.portfolio-technical .portfolio-file-list { display: grid; gap: 0; margin-bottom: 12px; }
.portfolio-technical .portfolio-file-list .portfolio-project-row { border-radius: 0; box-shadow: none; padding: 8px; border-bottom: 1px solid var(--pf-line); }
.portfolio-technical .portfolio-photo-flow { margin-top: 14px; }
.portfolio-technical #portfolioQuotesSection { margin-top: 12px; }
.portfolio-technical .portfolio-project-notes article { padding: 9px 0; border-radius: 0; border-bottom: 1px solid var(--pf-line); }
.portfolio-technical :is(button,a,summary,input,select,textarea):focus-visible { outline: 2px solid #167ba3; outline-offset: 2px; }
@media(min-width:721px) {
  #portfolioApp.portfolio-job-opened .portfolio-main { width: calc(100% - min(64vw,1000px)); max-width: none; margin: 0; box-sizing: border-box; }
  .portfolio-job-opened .portfolio-title-row { flex-wrap: wrap; }
  .portfolio-job-opened .portfolio-title-actions { flex-wrap: wrap; }
  .portfolio-job-opened .portfolio-job-search { flex-basis: 100%; }
  .portfolio-technical .portfolio-project-dialog { position: fixed; inset: var(--portfolio-header-height,58px) 0 0 auto; z-index: 60; width: min(64vw,1000px); height: calc(100vh - var(--portfolio-header-height,58px)); height: calc(100dvh - var(--portfolio-header-height,58px)); max-height: none; margin: 0; border: 1px solid var(--pf-line); box-shadow: -5px 0 20px #15253020; }
  .portfolio-job-opened .portfolio-operator-project { grid-template-columns: minmax(0,1fr) auto; }
  .portfolio-job-opened .portfolio-job-cell:nth-child(2) { grid-column: 1; }
  .portfolio-job-opened .portfolio-operator-project > .portfolio-provider-actions { grid-column: 2; grid-row: 1 / 3; }
  .portfolio-job-opened .portfolio-jobs-toolbar { flex-wrap: wrap; }
}
@media(max-width:720px) {
  .portfolio-technical .portfolio-header { gap: 6px; padding: 7px 10px; }
  .portfolio-technical .portfolio-tabs { grid-column: 1 / -1; grid-row: 2; width: 100%; min-width: 0; gap: 4px; }
  .portfolio-technical .portfolio-tabs button { font-size: 13px; padding: 6px 8px; min-width: 0; min-height: 42px; }
  .portfolio-technical .portfolio-brand .brand-lockup__badge { display: none; }
  .portfolio-technical .portfolio-brand-area { gap: 6px; }
  .portfolio-technical .portfolio-app-switch { padding-left: 6px; }
  .portfolio-technical .portfolio-main { padding: 10px; }
  .portfolio-technical .portfolio-title-row { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .portfolio-technical .portfolio-title-actions { width: auto; max-width: 100%; margin-left: auto; flex-wrap: wrap; }
  .portfolio-technical .portfolio-title-actions .portfolio-btn { width: auto; flex: 0 0 auto; }
  .portfolio-technical .portfolio-jobs-toolbar { gap: 6px; }
  .portfolio-technical .portfolio-jobs-toolbar .portfolio-job-search { flex-basis: 100%; }
  .portfolio-technical #portfolioJobCount { display: none; }
  .portfolio-technical #portfolioJobStatusFilter { width: 150px; min-width: 150px; }
  .portfolio-technical .portfolio-operator-project { grid-template-columns: minmax(0,1fr) auto; gap: 6px 10px; }
  .portfolio-technical .portfolio-job-cell:nth-child(2) { grid-column: 1; }
  .portfolio-technical .portfolio-job-cell:nth-child(3) { grid-column: 2; grid-row: 1 / 3; text-align: right; font-size: 12px; }
  .portfolio-technical .portfolio-operator-project > .portfolio-provider-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .portfolio-technical .portfolio-project-dialog { position: fixed; inset: 0; width: 100%; max-width: 100%; height: 100vh; height: 100dvh; max-height: 100vh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .portfolio-technical .portfolio-project-shell { height: 100%; min-height: 0; }
  .portfolio-technical .portfolio-project-header { padding: 10px 12px; }
  .portfolio-technical .portfolio-project-context { padding: 0 12px 8px; font-size: 13px; }
  .portfolio-technical .portfolio-project-tabs { flex-wrap: nowrap; }
  .portfolio-technical .portfolio-project-tabs button { min-height: 42px; padding: 6px 10px; }
  .portfolio-technical .portfolio-project-tabs .portfolio-menu { margin-left: auto; }
  .portfolio-technical .portfolio-project-body { min-height: 0; overflow-y: auto; padding: 10px; overscroll-behavior: contain; }
  .portfolio-technical .portfolio-form-grid [data-contact-fields] { grid-template-columns: 1fr; }
}
@media(max-width:480px) {
  .portfolio-technical [data-panel="operations"] > .portfolio-title-row .portfolio-title-actions { display: flex; width: 100%; }
  .portfolio-technical [data-panel="operations"] > .portfolio-title-row .portfolio-title-actions .portfolio-btn { flex: 1 1 0; min-width: 0; padding-inline: 8px; }
}
/* Intermediate windows need two header rows too: operator branding is longer
   than the old Portfolio badge, especially with My listing enabled. */
@media(min-width:721px) and (max-width:1280px) {
  .portfolio-technical .portfolio-header { grid-template-columns: minmax(0,1fr) auto; }
  .portfolio-technical .portfolio-header-actions { grid-column: 2; grid-row: 1; }
  .portfolio-technical .portfolio-tabs { grid-column: 1 / -1; grid-row: 2; justify-self: center; max-width: 100%; }
}
/* Six totals, not five fixed columns. On phones keep a native, keyboard- and
   touch-scrollable strip, with compact cards and no competing vertical pane. */
.portfolio-technical .portfolio-job-summary { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; overscroll-behavior-x: contain; margin-bottom: 12px; padding-bottom: 6px; }
.portfolio-technical .portfolio-job-summary article { flex: 1 0 116px; min-width: 0; min-height: 0; padding: 9px; border-radius: 4px; box-shadow: none; }
.portfolio-technical .portfolio-job-summary:focus-visible { outline: 2px solid #167ba3; outline-offset: 2px; }
.portfolio-technical .portfolio-project-columns {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 350px), 1fr));
}
.portfolio-technical .portfolio-project-shell { display: flex; flex-direction: column; }
.portfolio-technical .portfolio-project-shell > :not(.portfolio-project-body) { flex: 0 0 auto; }
.portfolio-technical .portfolio-project-body { flex: 1 1 auto; }
.portfolio-technical .portfolio-project-columns > *,
.portfolio-technical .portfolio-project-row > *,
.portfolio-technical .portfolio-stage-details > *,
.portfolio-technical .portfolio-access-invite > * { min-width: 0; }
.portfolio-technical .portfolio-project-row { flex-wrap: wrap; border-radius: 5px; padding: 10px; gap: 8px; }
.portfolio-technical .portfolio-project-row > div:first-child { flex: 1 1 180px; overflow-wrap: anywhere; }
.portfolio-technical .portfolio-project-row > .portfolio-provider-actions { flex: 0 1 auto; max-width: 100%; }
.portfolio-technical .portfolio-project-body .portfolio-provider-actions,
.portfolio-technical .portfolio-operator-project > .portfolio-provider-actions { display: flex; flex-wrap: wrap; }
.portfolio-technical .portfolio-project-body select,
.portfolio-technical .portfolio-project-body input { min-width: 0; max-width: 100%; box-sizing: border-box; }
.portfolio-technical .portfolio-project-body .portfolio-stage-details,
.portfolio-technical .portfolio-project-body .portfolio-access-invite { display: flex; flex-wrap: wrap; align-items: end; }
.portfolio-technical .portfolio-stage-details label,
.portfolio-technical .portfolio-access-invite label { flex: 1 1 150px; }
.portfolio-technical .portfolio-stage-details button,
.portfolio-technical .portfolio-access-invite button { flex: 0 0 auto; }
.portfolio-capture-open { border: 0; padding: 0; color: var(--pf-green-2); background: transparent; text-align: left; font: inherit; font-weight: 700; cursor: pointer; overflow-wrap: anywhere; }
.portfolio-capture-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(min(100%,145px),1fr)); gap: 10px; margin: 12px 0; }
.portfolio-capture-tile { min-width: 0; border: 1px solid var(--pf-line); border-radius: 4px; overflow: hidden; }
.portfolio-capture-tile > button { display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 3; border: 0; padding: 0; background: #e8edef; color: #49565c; cursor: pointer; }
.portfolio-capture-tile img { display: block; width: 100%; height: 100%; max-height: 160px; object-fit: contain; }
.portfolio-capture-tile > div { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 6px; gap: 3px; font-size: 12px; }
.portfolio-capture-tile > div > span { grid-column: 1 / -1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-capture-tile a { padding: 0 8px; }
.portfolio-gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.portfolio-technical [data-capture-gallery] [hidden] { display: none !important; }
/* Conditional form groups must remain hidden even when their grid class has display:grid. */
.portfolio-dialog-body [hidden] { display: none !important; }
.portfolio-toast { inset:auto 20px calc(var(--ag-toast-bottom,20px) + env(safe-area-inset-bottom,0px)) auto; margin:0; border:1px solid #627984; max-width:calc(100vw - 40px); max-height:min(45vh,calc(100vh - var(--ag-toast-bottom,20px) - 12px)); max-height:min(45dvh,calc(100dvh - var(--ag-toast-bottom,20px) - 12px)); overflow:auto; display:flex; align-items:center; gap:12px; z-index:1000; background:#142b38; color:#fff; font:inherit; overflow-wrap:anywhere; }
.portfolio-toast[popover]:not(:popover-open) { display:none; }
.portfolio-toast::backdrop { background:transparent; backdrop-filter:none; pointer-events:none; }
.portfolio-toast .agv3-toast__message { min-width:0; }
.portfolio-toast .agv3-toast__close { flex:none; min-height:36px; padding:6px 12px; border:1px solid #b9c8d1; border-radius:4px; background:#fff; color:#142b38; cursor:pointer; font:inherit; }
.portfolio-toast .agv3-toast__close:is(:hover,:focus-visible) { background:#dce7ee; color:#101f29; outline:2px solid #fff; outline-offset:2px; }
.portfolio-work-filters { min-width: 230px; max-width: calc(100vw - 40px); }
.portfolio-work-filters label { display: grid; gap: 4px; margin: 5px 0; }
.portfolio-work-filters select { width: 100%; min-width: 0; }
#portfolioWorkStatus:empty { display: none; }
#portfolioWorkMore[hidden], #portfolioRequestBack[hidden] { display: none; }
#portfolioWorkResume[hidden]{display:none}
.portfolio-jobs-toolbar{flex-wrap:wrap}
.portfolio-jobs-toolbar .portfolio-job-search{flex:1 1 150px;min-width:100px}
.portfolio-work-property { margin: 0 0 8px; font-weight: 600; }
/* Shared read/edit vocabulary across every Portfolio section. Domain actions
   keep their own controls and do not become blur-triggered writes. */
.portfolio-technical .portfolio-panel{min-width:0}
.portfolio-technical .portfolio-title-row{gap:10px;margin-bottom:10px}
.portfolio-technical .portfolio-title-note{display:none}
.portfolio-technical .portfolio-title-row h1{font-size:23px;margin:0}
.portfolio-technical .portfolio-field,.portfolio-technical label{min-width:0}
.portfolio-technical .portfolio-btn,.portfolio-technical input,.portfolio-technical select,.portfolio-technical textarea{border-radius:3px}
.portfolio-technical .ag-inline-read{border-color:transparent;box-shadow:none}
.portfolio-technical .ag-inline-read:disabled{opacity:1;background:transparent;cursor:default}
.portfolio-job-search{position:relative}
.portfolio-recent-work{position:absolute;top:100%;left:0;right:0;z-index:85;background:#fff;border:1px solid var(--pf-line);box-shadow:0 4px 12px #15253025}
.portfolio-recent-work[hidden]{display:none}
.portfolio-recent-work button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #e3e8e5;padding:8px;background:transparent;color:inherit;font:inherit}
.portfolio-recent-work button:hover,.portfolio-recent-work button:focus-visible{background:#eaf0ed}
.work-map-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:10px;align-items:start;min-width:0}
.work-map-canvas{position:sticky;top:0;height:58vh;height:58dvh;min-height:260px;border:1px solid var(--pf-line,#9da9a1);z-index:0}
.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-mission-choices{display:flex;flex-wrap:wrap;gap:5px;border:1px solid #84918a;padding:6px;background:#fff;color:#203128;max-width:100%;}
.agv3-work-mission-choices button{font:inherit;border:1px solid #84918a;border-radius:3px;background:#f7f9f7;padding:5px 8px;cursor:pointer}
.agv3-work-embedded .agv3-work-body{overflow:visible;max-height:none}
.agv3-work-embedded [data-close],.agv3-work-embedded [data-view-work]{display:none}
.portfolio-technical .portfolio-work-dialog{position:fixed;z-index:60;width:calc(100vw - 340px);max-width:none;height:calc(100vh - var(--portfolio-header-height,58px));height:calc(100dvh - var(--portfolio-header-height,58px));max-height:none;inset:var(--portfolio-header-height,58px) 0 0 auto;margin:0;border-radius:0;border:1px solid var(--pf-line)}
.portfolio-work-dialog #portfolioDialogForm{height:100%;display:flex;flex-direction:column;min-height:0}
.portfolio-work-dialog #portfolioDialogForm{max-height:none}
.portfolio-work-dialog #portfolioDialogForm>header,.portfolio-work-dialog #portfolioDialogForm>footer{border-radius:0;padding:8px 12px}
.portfolio-work-dialog #portfolioDialogForm>footer [data-close-dialog]{display:none}
.portfolio-work-dialog .agv3-work-brief>header,.portfolio-work-dialog .agv3-work-brief>footer{border-radius:0;padding:8px;gap:6px}
.portfolio-work-dialog .portfolio-dialog-body{flex:1;min-height:0;overflow:auto}
.portfolio-work-dialog form>header,.portfolio-work-dialog form>footer{flex:none}
@media(min-width:1000px){
  #portfolioApp.portfolio-job-opened .portfolio-main{width:330px}
  .portfolio-technical .portfolio-project-dialog{width:calc(100vw - 340px)}
  .portfolio-job-opened .portfolio-title-actions{gap:4px}
}
@media(max-width:999px){.work-map-workspace{grid-template-columns:1fr}.work-map-canvas{position:relative;height:36vh;height:36dvh}.portfolio-technical .portfolio-work-dialog{width:100%;height:100vh;height:100dvh;inset:0}}
.portfolio-capture-lightbox { width: min(1200px,100%); max-width: 100%; height: 94vh; height: 94dvh; max-height: 100vh; max-height: 100dvh; padding: 0; border: 1px solid #58666d; border-radius: 5px; background: #172027; color: #fff; }
.portfolio-capture-lightbox[open] { display: flex; flex-direction: column; }
.portfolio-capture-lightbox::backdrop { background: #091016bf; }
.portfolio-capture-lightbox header, .portfolio-capture-lightbox footer { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 8px; }
.portfolio-capture-lightbox header span, .portfolio-capture-lightbox footer span { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 13px; }
.portfolio-capture-lightbox button { min-height: 36px; min-width: 36px; background: #2e404b; color: white; border: 1px solid #70808a; border-radius: 4px; cursor: pointer; }
.portfolio-capture-lightbox button:disabled { opacity: .4; }
.portfolio-capture-lightbox [data-stage] { flex: 1; min-height: 0; display: grid; place-items: center; overflow: hidden; }
.portfolio-capture-lightbox img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; transform-origin: center; user-select: none; }
.portfolio-project-header__actions{position:relative}
#portfolioProjectFlights[hidden]{display:none}
#portfolioProjectFlights{color:#fff;text-decoration:none}
.portfolio-project-header__actions .agv3-work-mission-choices{position:absolute;right:0;top:100%;z-index:10;display:flex;flex-direction:column;gap:5px;width:260px;max-width:calc(100vw - 40px);max-height:45vh;max-height:45dvh;overflow:auto;padding:8px;background:var(--pf-surface,#fff);border:1px solid var(--pf-line,#84918a);box-shadow:0 4px 12px #15271d30}

/* Job quoting: one offer with actions at the trailing edge. */
.portfolio-job-quote { display:grid; gap:.55rem; padding:.75rem 0; min-width:0; }
.portfolio-job-quote__heading { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; }
.portfolio-job-quote__heading > strong { font-size:1.2rem; }
.portfolio-job-quote__scope { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.portfolio-job-quote__actions { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:.4rem; }
.portfolio-job-quote__actions .portfolio-btn { padding:.3rem .65rem; min-height:2rem; font-size:.82rem; }
.portfolio-quote-history { border-top:1px solid var(--portfolio-border,#dce3e0); padding-top:.6rem; }
.portfolio-quote-history > summary { cursor:pointer; font-size:.85rem; }
.portfolio-quote-history .portfolio-job-quote + .portfolio-job-quote { border-top:1px solid var(--portfolio-border,#dce3e0); }
.portfolio-job-quote__lines .portfolio-quote-line { grid-template-columns:minmax(0,1fr) auto; }
.portfolio-job-quote__lines .portfolio-quote-line > small { grid-row:2; }
.portfolio-job-quote__lines .portfolio-quote-line > strong { grid-column:2; grid-row:1; }
.portfolio-job-quote__lines .portfolio-quote-line > span { overflow-wrap:anywhere; }
@media (pointer:coarse) { .portfolio-job-quote__actions .portfolio-btn { min-height:2.5rem; } }

.portfolio-quote-form { gap:10px; align-content:start; }
.portfolio-quote-form .portfolio-toggle { padding:0; }
.portfolio-quote-form .portfolio-list-heading { margin:0; align-items:center; }
.portfolio-quote-form .portfolio-list-heading .portfolio-btn { min-height:32px; padding:5px 9px; font-size:12px; }
.portfolio-quote-form .portfolio-quote-editor-line :is(input:not([type=checkbox]),select) { min-width:0; width:100%; box-sizing:border-box; min-height:34px; border:1px solid var(--pf-line); border-radius:4px; padding:5px 7px; font:inherit; background:#fff; color:var(--pf-ink); }
.portfolio-quote-form .portfolio-quote-editor-line input[type=checkbox] { width:18px; height:18px; }
.portfolio-quote-form .portfolio-quote-editor-line .portfolio-toggle { display:flex; align-items:center; gap:5px; }

/* Property and job actions stay at the visible trailing edge. */
#portfolioPropertyList[hidden],#portfolioPropertyWorkspace[hidden],[data-property-panel][hidden]{display:none!important}
#portfolioPropertyList .portfolio-table th:first-child,#portfolioPropertyList .portfolio-table td:first-child{z-index:2;background:#fff;max-width:240px;min-width:160px;white-space:normal}
#portfolioPropertyList .portfolio-table th:first-child{z-index:4;background:#f4f8f2}
#portfolioPropertyList .portfolio-table .portfolio-row-actions{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-4px 0 5px #172e2410;width:1%;white-space:nowrap}
#portfolioPropertyList .portfolio-table th.portfolio-row-actions{z-index:4;background:#f4f8f2}
#portfolioPropertyList [data-property-location]{max-width:320px;white-space:normal;text-align:left;overflow-wrap:anywhere}
#portfolioPropertyList .portfolio-table td[data-property-id]{max-width:360px;white-space:normal;overflow-wrap:anywhere}
.portfolio-operator-project>.portfolio-provider-actions{justify-content:flex-end}
.portfolio-operator-project .portfolio-menu>summary{padding:5px 9px;white-space:nowrap;font-weight:700;font-size:12px}
.property-workspace{display:grid;gap:14px;min-width:0}
.property-workspace>[data-property-back]{justify-self:start}
.property-page-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}
.property-page-heading h1{margin:0 0 4px;font-size:24px}
.property-page-heading small,.property-muted{color:var(--pf-muted)}
.property-page-tabs{margin:0;flex-wrap:wrap}
.property-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.property-workspace h2{margin:0;font-size:17px}
.property-workspace h3{font-size:15px}
.property-workspace .portfolio-list-heading{align-items:center;margin:0 0 12px}
.property-permissions{display:grid;gap:7px;margin:14px 0}
.property-permissions>div{display:flex;justify-content:space-between;gap:16px}
.property-permissions dt{color:var(--pf-muted)}
.property-permissions dd{margin:0;text-align:right}
.property-contact{display:grid;gap:3px;padding:8px 0;overflow-wrap:anywhere}
.property-contact a{color:var(--pf-green-2)}
.property-people{display:grid;margin:12px 0}
.property-person{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--pf-line);min-width:0}
.property-person>details,.property-person>span{flex:1;min-width:0;overflow-wrap:anywhere}
.property-person summary{cursor:pointer}
.property-person summary strong{margin-right:8px}
.property-person summary span,.property-person small{display:block;margin-top:3px;color:var(--pf-muted);font-size:12px}
.property-person>.portfolio-btn{flex-shrink:0}
.property-access-self,.property-access-jobs{padding:10px 12px;border:1px solid var(--pf-line);background:#fff}
.property-invite-link{display:flex;gap:6px;align-items:center;margin:12px 0;flex-wrap:wrap}
.property-invite-link input{flex:1 1 230px;min-width:0;padding:9px;border:1px solid var(--pf-line);font:inherit}
[data-property-jobs] .portfolio-operator-project{grid-template-columns:minmax(120px,2fr) minmax(110px,1fr) minmax(110px,1fr) auto}
@media(max-width:720px){
 .property-overview-grid{grid-template-columns:minmax(0,1fr)}
 .property-page-heading h1{font-size:21px;overflow-wrap:anywhere}
 .property-page-heading>.portfolio-btn{flex-shrink:0}
 .property-person{flex-wrap:wrap}
 .property-person>.portfolio-provider-actions{margin-left:auto}
 [data-property-jobs] .portfolio-operator-project{grid-template-columns:minmax(0,1fr) auto}
 #portfolioPropertyList .portfolio-farm-card__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
}
.portfolio-property-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
