/* Shared Operations presentation. Domain controllers keep state and writes. */
.flight-boot-status{display:none}.drone-app.is-booting{background:#f4f7f4}.drone-app.is-booting>:not(.flight-boot-status){visibility:hidden!important}.drone-app.is-booting>.flight-boot-status{display:grid;position:absolute;inset:0;place-items:center;color:#395447}
.ops-workspace :is(a,button).ops-primary,.ops-workspace a.portfolio-btn--primary{color:#fff}
.ops-workspace,.ops-flow-dialog{--ops-ink:var(--pf-ink,#203b35);--ops-muted:var(--pf-muted,#60736b);--ops-line:var(--pf-line,#d6e1db);--ops-accent:var(--pf-green,#286047);--ops-paper:#fff;--ops-wash:#f4f7f4;--ops-selected:#eaf2eb;color:var(--ops-ink)}
.ops-workspace [hidden],.ops-flow-dialog [hidden]{display:none!important}
.ops-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px;align-items:start;max-width:1200px;margin-inline:auto}
.ops-stack{display:grid;gap:22px;min-width:0}
.ops-card,.ops-summary{min-width:0;padding:24px;border:1px solid var(--ops-line);border-radius:16px;background:var(--ops-paper)}
.ops-card h2,.ops-summary h2{font-size:18px;line-height:1.3;margin:0 0 18px;font-weight:650}
.ops-summary{position:sticky;top:0;background:var(--ops-selected)}
.ops-summary-steps{display:grid;gap:18px;margin:20px 0 26px}
.ops-summary-steps>div{display:flex;gap:12px;align-items:center;font-size:14px}
.ops-summary-steps small{display:block;font-size:12px;color:var(--ops-muted);margin-top:3px}
.ops-summary :is(button,a.ops-primary){width:100%;justify-content:center}
.ops-context{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 26px;font-size:12px;color:var(--ops-muted)}
.ops-context>span{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--ops-line);border-radius:8px;background:white}
:where(.ops-workspace,.ops-flow-dialog) [data-agv3-ui-icon]{display:inline-flex;width:20px;height:20px;flex:none;vertical-align:middle}
:where(.ops-workspace,.ops-flow-dialog) [data-agv3-ui-icon]>svg{width:100%;height:100%}
.ops-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ops-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:112px;padding:18px 15px;border:1px solid var(--ops-line);border-radius:12px;background:#fff;color:var(--ops-ink);text-align:left;font:inherit;cursor:pointer}
.ops-choice>[data-agv3-ui-icon]{width:27px;height:27px}
.ops-choice strong{font-size:14px}.ops-choice small{font-size:12px;color:var(--ops-muted)}
.ops-photo-choices{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));margin-block:14px}
.ops-photo-choices .ops-choice{text-decoration:none;min-height:100px}
.ops-photo-route{padding:12px 0;margin-block:12px;border-block:1px solid var(--ops-line)}
.ops-photo-route .portfolio-list-heading{margin-bottom:6px}
.ops-photo-route ol{display:flex;flex-wrap:wrap;gap:8px 24px;padding-left:20px;margin:8px 0;font-size:13px;color:var(--ops-muted)}
.ops-choice[aria-pressed=true]{background:var(--ops-selected);border-color:var(--ops-accent);box-shadow:inset 0 0 0 1px var(--ops-accent)}
.ops-choice-mark{position:absolute;right:12px;top:10px;color:var(--ops-accent)}
.ops-choice:disabled{opacity:.55;cursor:default}.ops-choice[aria-pressed=true]:disabled{opacity:.85}
.ops-workspace :focus-visible,.ops-flow-dialog :focus-visible{outline:2px solid var(--ops-accent);outline-offset:3px}
/* Native selection semantics, shared across property, job and business forms. */
.ops-workspace input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;flex:none;accent-color:var(--ops-accent);cursor:pointer}
.ops-workspace input[type=checkbox]:disabled{cursor:default}
.ops-workspace .portfolio-property-identity{display:flex;align-items:center;gap:4px}
.ops-workspace .portfolio-property-select{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:36px;min-height:40px;cursor:pointer;flex:none}
.ops-workspace .portfolio-property-open{display:block;min-width:0;flex:1;padding:8px 10px;border:1px solid var(--ops-line);border-radius:8px;background:var(--ops-paper);color:var(--ops-ink);text-decoration:none;line-height:1.35;overflow-wrap:anywhere}
.ops-workspace .portfolio-property-open:hover{border-color:var(--ops-accent);background:var(--ops-selected)}
.ops-workspace .portfolio-property-open small{display:block;color:var(--ops-muted);font-weight:400;margin-top:3px}
.ops-workspace .portfolio-farm-card>summary{grid-template-columns:32px minmax(0,1fr) auto;gap:8px}
.ops-workspace .portfolio-farm-card>summary>span:nth-child(2){min-width:0}
.ops-workspace .portfolio-farm-card[open]>summary>.portfolio-disclosure-icon::after{transform:rotate(0deg)}
.ops-workspace .portfolio-property-menu>div{position:fixed;inset:auto;margin:0;z-index:100;box-sizing:border-box;width:210px;max-height:var(--section-menu-available-height,70vh);max-height:var(--section-menu-available-height,70dvh);overflow:auto;padding:6px;border:1px solid var(--ops-line);border-radius:9px;background:var(--ops-paper);color:var(--ops-ink);box-shadow:0 6px 20px #142b1d20}
@media(pointer:coarse),(max-width:720px){.ops-workspace .portfolio-property-select{min-width:44px;min-height:44px}.ops-workspace .portfolio-menu>div>:is(button,a),.ops-workspace #portfolioProjectSecondaryActions>.portfolio-btn{min-height:44px}}
.ops-primary{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--ops-accent);border-radius:9px;padding:10px 16px;background:var(--ops-accent);color:#fff;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}
.ops-page-title{font-size:clamp(26px,3vw,36px);letter-spacing:-.6px;line-height:1.2;margin:0 0 10px}
.ops-title-field{display:block;margin-bottom:20px}.ops-title-field>span{display:block;font-size:12px;color:var(--ops-muted);margin-bottom:7px}
.ops-title-field input{width:100%;font:inherit;font-size:clamp(24px,3vw,34px)!important;font-weight:650;background:transparent;border:0;border-bottom:1px solid var(--ops-line);border-radius:0!important;padding:8px 0!important;box-sizing:border-box}
.ops-breadcrumb{display:flex;align-items:center;gap:8px;min-height:36px;font-size:12px;color:var(--ops-muted);margin-bottom:20px}
.ops-breadcrumb button,.ops-breadcrumb a{display:inline-flex;align-items:center;gap:7px;border:0;background:none;color:inherit;padding:6px 0;font:inherit;cursor:pointer;text-decoration:none}
.ops-next{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--ops-line);background:var(--ops-selected);border-radius:14px;padding:18px 22px;margin:18px 0 24px}.ops-next strong{font-size:16px}.ops-next small{display:block;margin-top:4px;color:var(--ops-muted)}
.ops-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}.ops-toolbar>input,.ops-toolbar>label{flex:1;min-width:160px}.ops-toolbar details{flex:none}
.ops-workspace .portfolio-menu>summary,.ops-flow-dialog summary{cursor:pointer}.ops-workspace .portfolio-menu>summary{min-height:42px;box-sizing:border-box;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:9px;background:white;border:1px solid var(--ops-line);font-size:13px}
.ops-workspace .portfolio-menu>div{border-radius:12px;max-width:calc(100vw - 32px);z-index:100}
.ops-workspace [data-section-filter-count]{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:20px;background:var(--ops-accent);color:white;font-size:11px}
.ops-workspace .portfolio-menu>summary.is-active{border-color:var(--ops-accent)}
.ops-workspace.portfolio-technical .portfolio-main{width:auto;max-width:1264px;margin-inline:auto;padding:28px 32px 50px}
.ops-workspace.portfolio-technical .portfolio-title-row{margin:0 0 24px;gap:20px;align-items:center}
.ops-workspace.portfolio-technical .portfolio-title-row h1{font-size:32px;letter-spacing:-.6px}
.ops-workspace.portfolio-technical :is(.portfolio-btn,input,select,textarea){border-radius:8px}
.ops-workspace.portfolio-technical .portfolio-btn{min-height:40px}
.ops-workspace.portfolio-technical .portfolio-title-row .portfolio-eyebrow{display:none}
.ops-workspace .portfolio-title-note{display:none}
.ops-workspace.portfolio-technical .portfolio-workspace-section{border-radius:14px;margin-bottom:16px;background:#fff}
.ops-workspace .portfolio-workspace-section>summary{display:flex;align-items:center;gap:10px;min-height:44px;box-sizing:border-box;padding:9px 12px}
.ops-workspace .portfolio-workspace-section>summary strong{font-size:15px;font-weight:650;letter-spacing:normal}
.ops-workspace .portfolio-workspace-section>summary>strong,.ops-workspace .portfolio-workspace-section>summary>span:has(strong){flex:1;min-width:0}
.ops-workspace .portfolio-disclosure-icon{flex:none;width:24px;height:24px;border-radius:5px}
.ops-workspace .portfolio-disclosure-icon::before,.ops-workspace .portfolio-disclosure-icon::after{top:11px;left:6px;width:12px}
.ops-workspace .portfolio-workspace-section>summary:hover{background:var(--ops-selected)}
.ops-workspace .portfolio-workspace-section>summary small,.ops-workspace .portfolio-workspace-section>summary .portfolio-eyebrow{display:none}
.ops-workspace .portfolio-workspace-section__body{padding:18px}
.ops-workspace .portfolio-settings-stack{gap:16px}
.ops-workspace.portfolio-technical .portfolio-settings-stack>.portfolio-workspace-section,
.ops-workspace.portfolio-technical .portfolio-settings-stack>div>.portfolio-workspace-section{margin-block:0}
.ops-workspace.portfolio-technical .portfolio-jobs-toolbar{margin-bottom:22px;gap:10px}
.ops-workspace.portfolio-technical .portfolio-jobs-toolbar .portfolio-job-search{flex:1;min-width:180px}
.ops-workspace .portfolio-utilities{margin-left:auto}
.ops-workspace .portfolio-view-section{position:relative}
.ops-workspace .portfolio-list-heading{margin-top:24px}
.ops-workspace.portfolio-technical .portfolio-project-dialog{inset:var(--portfolio-header-height,58px) 0 0;width:100%;max-width:none;height:calc(100vh - var(--portfolio-header-height,58px));height:calc(100dvh - var(--portfolio-header-height,58px));max-height:none;margin:0;border:0;border-radius:0;background:var(--ops-wash)}
.ops-workspace.portfolio-job-opened>.portfolio-main{visibility:hidden;pointer-events:none}
.ops-workspace.portfolio-technical .portfolio-project-header{padding:6px max(16px,calc((100vw - 1200px)/2));background:transparent;border:0;align-items:center;gap:12px}
.ops-workspace .portfolio-project-header h2{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:20px;letter-spacing:-.3px;margin:0}
.ops-workspace .portfolio-project-header .ops-job-back{padding:4px 0;min-height:40px;flex:none}
.ops-workspace .portfolio-project-header .portfolio-eyebrow{margin:0 0 6px}
.ops-workspace .portfolio-project-header__actions{align-self:center;flex:none}
.ops-workspace.portfolio-technical .portfolio-project-context{padding:0 max(16px,calc((100vw - 1200px)/2)) 6px;background:transparent;justify-content:space-between;gap:12px;border:0;flex-wrap:nowrap;min-width:0;min-height:40px}
.ops-workspace #portfolioProjectSubtitle{min-width:0;flex:1;margin:0;overflow:hidden;font-size:13px}
.ops-workspace #portfolioProjectSubtitle a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-workspace .portfolio-project-next{min-width:0;flex:0 0 auto;max-width:68%}
.ops-workspace .portfolio-project-next .portfolio-btn{max-width:100%;display:block;white-space:normal;overflow-wrap:anywhere;height:auto;line-height:1.3;font-size:13px;padding:8px 12px}
.ops-workspace #portfolioProjectActions>div{width:260px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:10px;z-index:140}
.ops-workspace #portfolioProjectActions :is([data-job-full-title],[data-job-full-property]){display:block;overflow-wrap:anywhere;margin-bottom:6px}
.ops-workspace #portfolioProjectActions [data-job-full-property]{font-size:13px;color:var(--ops-muted)}
.ops-workspace #portfolioProjectActions .portfolio-job-contact{margin:10px 0;padding-block:8px;border-block:1px solid var(--ops-line);font-size:13px}
.ops-workspace #portfolioProjectFlights{color:var(--ops-ink);background:white}
.ops-workspace .portfolio-job-contact>*{display:block;overflow-wrap:anywhere;margin:6px 0}
.ops-workspace #portfolioProjectActions>summary{padding:8px 10px;font-size:13px}
.ops-workspace.portfolio-technical .portfolio-project-tabs{padding:0 max(16px,calc((100vw - 1200px)/2));background:transparent;border-bottom:1px solid var(--ops-line);gap:6px}
.ops-workspace.portfolio-technical .portfolio-project-tabs{overflow:visible;align-items:center;min-width:0}
.ops-workspace .portfolio-job-tabs-scroll{flex:1;min-width:0}
.ops-workspace.portfolio-technical :is(.portfolio-job-tabs-scroll,.property-page-tabs)>button{flex:0 0 auto;white-space:nowrap;border:0;border-radius:9px 9px 0 0;background:transparent;color:var(--ops-muted)}
.ops-workspace.portfolio-technical :is(.portfolio-job-tabs-scroll,.property-page-tabs)>button.is-active{color:var(--ops-accent);background:white;box-shadow:inset 0 -3px var(--ops-accent)}
.ops-workspace #portfolioProjectMore>summary{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ops-workspace.portfolio-technical .portfolio-project-body{padding:24px max(16px,calc((100vw - 1200px)/2));background:transparent}
.ops-workspace.portfolio-technical .portfolio-project-card{border-radius:14px;background:#fff;padding:20px}
.ops-workspace .property-page-heading{margin:20px 0}.ops-workspace .property-page-heading h1{font-size:32px;letter-spacing:-.6px}.ops-workspace .property-page-tabs{padding:0!important;margin-bottom:24px}
/* Full-page forms retain the existing dialog's draft, validation and close guards. */
.ops-workspace #portfolioDialog.ops-flow-dialog{position:fixed;inset:var(--portfolio-header-height,58px) 0 0;margin:0;width:100%;max-width:none;height:calc(100vh - var(--portfolio-header-height,58px));height:calc(100dvh - var(--portfolio-header-height,58px));max-height:none;border:0;border-radius:0;background:var(--ops-wash)}
.ops-flow-dialog::backdrop{background:transparent;backdrop-filter:none}
/* Navigable page forms keep only the covered content inert. Header menus must
   remain above the form, including when the underlying page was scrolled. */
html:has(#portfolioApp.portfolio-page-open){overflow:hidden}
#portfolioApp.portfolio-page-open>.portfolio-header{position:fixed;inset:0 0 auto;z-index:62}
.ops-workspace.portfolio-page-open #portfolioDialog.ops-flow-page{z-index:61;position:fixed;width:100%;max-width:none;margin:0;inset:var(--portfolio-header-height,58px) 0 0;height:calc(100vh - var(--portfolio-header-height,58px));height:calc(100dvh - var(--portfolio-header-height,58px));max-height:none}
.ops-workspace.portfolio-page-open #portfolioProjectDialog{z-index:60;inset:var(--portfolio-header-height,58px) 0 0;height:calc(100vh - var(--portfolio-header-height,58px));height:calc(100dvh - var(--portfolio-header-height,58px))}
.ops-flow-dialog #portfolioDialogForm{display:flex;flex-direction:column;height:100%;max-height:none;min-height:0}
.ops-flow-dialog #portfolioDialogForm>header{flex:none;padding:18px max(24px,calc((100vw - 1200px)/2));background:var(--ops-wash);border-bottom:1px solid var(--ops-line)}
.ops-flow-dialog #portfolioDialogForm>header h2{font-size:20px}
.ops-flow-dialog #portfolioDialogBody{flex:1;min-height:0;overflow:auto;padding:28px max(24px,calc((100vw - 1200px)/2));background:var(--ops-wash)}
.ops-flow-dialog #portfolioDialogForm>footer{flex:none;padding:12px max(24px,calc((100vw - 1200px)/2));background:white}
.ops-flow-dialog:has(.ops-summary) #portfolioDialogForm>footer{display:none}
.ops-flow-dialog .portfolio-form-grid{min-width:0}.ops-flow-dialog .portfolio-form-grid input,.ops-flow-dialog .portfolio-form-grid select{width:100%;box-sizing:border-box}
.ops-flow-dialog .job-flow-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.ops-flow-dialog .job-flow-tile,.ops-workspace .job-flow-tile{border-radius:12px;padding:18px 15px;min-height:112px}
.ops-flow-dialog .job-flow-heading h3{text-transform:none;font-size:18px}
.ops-flow-dialog .job-customer-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ops-flow-dialog .job-customer-choices button{flex-direction:column;align-items:flex-start;min-height:95px;border-radius:12px;text-align:left}
.ops-flow-dialog .job-customer-choices [data-agv3-ui-icon]{width:25px;height:25px}
.ops-flow-dialog .job-customer-choices button[aria-pressed=true]{background:var(--ops-selected);color:var(--ops-accent);border-color:var(--ops-accent)}
/* Opt in job forms to shared disclosure spacing; other workspaces migrate separately. */
.ops-workspace .portfolio-form-section{border-radius:10px;background:var(--ops-paper)}
.ops-workspace .portfolio-form-section>summary{display:flex;align-items:center;gap:8px;min-height:42px;box-sizing:border-box;padding:10px 14px;list-style:none;font-size:14px}
.ops-workspace .portfolio-form-section>summary::-webkit-details-marker{display:none}
.ops-workspace .portfolio-form-section>summary::after{content:'+';margin-left:auto;flex:none;color:var(--ops-muted);font-size:18px;line-height:1}
.ops-workspace .portfolio-form-section[open]>summary::after{content:'−'}
.ops-workspace .portfolio-form-section>:not(summary){margin:0 14px 14px}
.ops-workspace .portfolio-form-section>.portfolio-field{width:auto}
.ops-job-forms .portfolio-inline-editor>label{min-width:0;font-size:13px;color:var(--ops-muted)}
.ops-job-forms .portfolio-inline-editor :is(input,textarea){color:var(--ops-ink);font-size:14px}
@media(max-width:800px){
 .ops-layout{grid-template-columns:1fr;gap:18px}.ops-summary{position:static}.ops-summary-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.ops-card,.ops-summary{padding:18px}.ops-stack{gap:16px}
 .ops-workspace.portfolio-technical .portfolio-main{padding:20px 16px 40px}.ops-workspace.portfolio-technical .portfolio-title-row h1{font-size:27px}
 .ops-workspace.portfolio-technical .portfolio-title-row .portfolio-title-actions{width:auto;margin-left:auto;flex-wrap:wrap}.ops-workspace .portfolio-title-actions>.portfolio-btn{flex:none!important}
 .ops-workspace.portfolio-technical .portfolio-project-tabs{padding-inline:16px}.ops-workspace.portfolio-technical .portfolio-project-body{padding:18px 16px}
 .ops-workspace .portfolio-project-header h2{font-size:18px}
 .ops-workspace #portfolioDialog.ops-flow-dialog{inset:0;height:100vh;height:100dvh}.ops-flow-dialog #portfolioDialogForm>header{padding:12px 16px}.ops-flow-dialog #portfolioDialogBody{padding:20px 16px}.ops-flow-dialog #portfolioDialogForm>footer{padding:10px 16px}
 .ops-flow-dialog:has(.ops-summary) #portfolioDialogForm>footer{display:flex}.ops-flow-dialog .ops-summary>button[type=submit]{display:none}
 .ops-flow-dialog .job-flow-grid,.ops-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-choice{padding:14px 12px;min-height:105px}
 .ops-next{flex-wrap:wrap;padding:16px}.ops-context{margin-bottom:18px}.ops-flow-dialog .job-customer-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:no-preference){.ops-choice,.job-flow-tile{transition:background .12s,border-color .12s}}
.ops-job-back{display:block;border:0;background:none;padding:0 0 10px;color:var(--ops-muted);font:inherit;font-size:12px;cursor:pointer}
[data-job-flow-summary]{position:sticky;top:0}.ops-flow-dialog .ops-summary{position:static}
.ops-workspace .ops-utility-panel>summary .portfolio-disclosure-icon,.ops-workspace .ops-utility-panel>summary .portfolio-summary-action{display:none}
.ops-workspace.portfolio-technical .ops-utility-panel{margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.ops-workspace .ops-utility-panel>summary{height:42px;box-sizing:border-box;padding:8px 12px;gap:6px;background:#fff}
.ops-workspace .ops-utility-panel[open]>summary{background:var(--ops-wash);border-color:var(--ops-accent)}
.ops-workspace .ops-utility-panel>div{--section-menu-top-gap:var(--portfolio-header-height,56px);position:fixed;right:auto;bottom:auto;width:min(680px,calc(100vw - 32px));max-width:calc(100vw - 16px);max-height:min(65vh,var(--section-menu-available-height,65vh));max-height:min(65dvh,var(--section-menu-available-height,65dvh));overflow:auto;overscroll-behavior:contain;box-sizing:border-box;padding:14px;background:white}
.ops-workspace .ops-utility-panel>div:has(>[data-section-menu-close]){padding-right:56px}
.ops-workspace .ops-utility-panel .portfolio-panel-close{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:40px;height:40px;padding:0;font-size:22px;text-align:center}
.ops-workspace .ops-utility-panel .portfolio-totals{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
.ops-workspace .ops-utility-panel .portfolio-totals article{min-width:0;padding:10px}
.ops-workspace .ops-utility-panel .portfolio-view-toolbar>label{min-width:0;max-width:100%}
.ops-workspace .ops-utility-panel .portfolio-toolbar-actions{margin-left:0}
.ops-workspace .ops-utility-panel .portfolio-workspace-section{margin:0 0 12px}
.ops-workspace .portfolio-header .portfolio-menu>summary{background:transparent;color:inherit;min-height:36px;border-color:#ffffff40}
.ops-workspace .portfolio-extra-tools{margin-bottom:16px;display:inline-block}
.ops-workspace .ops-property-tools{position:relative;margin:12px 0 20px}
.ops-workspace .portfolio-header-more>div{right:0;left:auto}
.ops-workspace .portfolio-header-more :is(button,a){color:var(--ops-ink);text-align:left}
.flight-page{position:absolute;inset:60px 0 0;z-index:1300;display:flex;flex-direction:column;background:var(--ops-wash);min-height:0}
.flight-page-head{display:flex;align-items:center;gap:18px;flex:none;padding:12px max(24px,calc((100vw - 1200px)/2));border-bottom:1px solid var(--ops-line)}
.flight-page-head button{border:0;background:transparent;color:var(--ops-muted);font:inherit;cursor:pointer;min-height:36px;padding:6px 0}
.flight-page-head strong{font-size:13px;color:var(--ops-muted);font-weight:500}
.flight-page>.drone-content{flex:1;min-height:0;height:auto;overflow:auto;background:transparent;padding:28px max(24px,calc((100vw - 1200px)/2)) 40px}
.flight-page .drone-list{overflow:visible;max-height:none}.flight-page .drone-content form{max-width:none}
.drone-app.is-flight-page #droneMap{visibility:hidden;pointer-events:none}
.drone-app.is-flight-page .flight-toolbar,.drone-app.is-flight-page .drone-dock,.drone-app.is-flight-page .flight-inspector{display:none!important}
.drone-app.is-flight-page{background:var(--ops-wash)}
.flight-page .ops-choice{align-items:flex-start;justify-content:flex-start;min-height:112px;border-radius:12px;padding:18px 15px}
.flight-page .ops-choice[aria-pressed=true]{background:var(--ops-selected);color:var(--ops-ink)}
.flight-page .ops-summary .ops-primary,.flight-page .ops-next .ops-primary{background:var(--ops-accent);color:white;border-radius:9px;min-height:44px}
.flight-page .flight-quickflows{gap:8px;margin:0}.flight-page .flight-quickflows button{border-radius:24px;padding:10px 15px;font-size:13px}
.flight-page .drone-content .ops-title-field input{border:0;border-bottom:1px solid var(--ops-line);background:transparent}
.flight-repeat-picker{margin-top:20px;border-top:1px solid var(--ops-line);padding-top:18px;display:grid;gap:14px}.flight-repeat-picker select{width:100%}
.flight-workspace-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.flight-workspace-cards .ops-choice{min-height:145px}
.flight-page .drone-photos{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.flight-page .drone-compare{height:50vh;height:50dvh}
.flight-page .drone-list>button{border:1px solid var(--ops-line);border-radius:12px;padding:18px;background:white;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.flight-page .drone-list small{color:var(--ops-muted)}
#flightOverview{border:1px solid var(--ops-line);border-radius:8px;min-height:36px;background:var(--ops-wash);color:var(--ops-ink);font:inherit;font-size:12px;padding:6px 10px;cursor:pointer}
.drone-app.is-flight-page #flightOverview{display:none}
.flight-setup-submit{display:none}
@media(max-width:800px){
 [data-job-flow-summary]{position:static}.flight-page-head{padding:8px 16px}.flight-page>.drone-content{padding:20px 16px 30px}.flight-workspace-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .flight-page .ops-summary>button[type=submit]{display:none}.flight-setup-submit{position:sticky;bottom:-30px;display:flex;justify-content:space-between;gap:12px;padding:12px 0;background:var(--ops-wash);border-top:1px solid var(--ops-line);margin-top:20px}.flight-setup-submit button{flex:1;min-height:44px}
 .flight-page .ops-choices[data-start-choices]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.flight-page [data-start-choices] .ops-choice{padding:12px 9px;min-height:106px}.flight-page [data-start-choices] strong{font-size:12px}
 .ops-workspace.portfolio-technical .portfolio-project-dialog{inset:0;height:100vh;height:100dvh}
 .ops-workspace .portfolio-extra-tools{margin-bottom:12px}#flightOverview{font-size:11px;padding:5px}
}

.flight-title-control{min-width:0;flex:1;margin:0!important}.flight-title-control .ag-inline-field{width:100%;min-width:0}.flight-title-control .ag-inline-read{border:0!important;background:transparent!important;font-weight:650;text-align:left;min-width:0;width:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px!important;min-height:32px!important}.flight-title-control input{width:100%;min-width:0;box-sizing:border-box;font:inherit;font-weight:650;padding:4px}.flight-heading{min-width:0}.flight-page .flight-setup-submit .ops-primary{background:var(--ops-accent);color:white;border-radius:9px}

.ops-workspace.flight-preparation{background:var(--ops-wash)}
.ops-workspace .flight-preparation__content{max-width:1200px}
.preparation-group{margin-top:16px}.preparation-group>summary{display:flex;align-items:center;gap:10px;cursor:pointer;min-height:30px}.preparation-group>summary>[data-agv3-ui-icon]{display:inline-flex;width:22px;height:22px}.preparation-group>summary>span:last-child{margin-left:auto;color:var(--ops-muted);font-size:12px}.preparation-group>summary:after{content:'+';margin-left:4px;color:var(--ops-muted)}.preparation-group[open]>summary:after{content:'−'}.preparation-group>summary~div{margin-top:20px}.preparation-group textarea{min-height:80px}.preparation-actions{margin-top:18px}.preparation-actions>summary{cursor:pointer;margin-bottom:12px}.flight-preparation .ops-summary button{margin-bottom:8px}

.flight-overview-actions{margin-top:24px}.ops-toolbar>button{display:inline-flex;align-items:center;gap:8px;min-height:40px;border-radius:8px;padding:8px 12px}.ops-toolbar>h1{margin:0;margin-right:auto}.ops-toolbar [data-action=new]{background:var(--ops-accent);color:white;border:1px solid var(--ops-accent)}.ops-toolbar>details>summary{cursor:pointer;padding:10px}.flight-page #drone-library [data-mission-list]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}

@media(max-width:800px){.ops-workspace.portfolio-technical .portfolio-btn{min-height:42px}}

.flight-preparation [data-preparation-choice] .portfolio-toggle{padding-top:0;min-height:40px}.flight-preparation [data-preparation-choice]>label[for]{font-size:13px;color:var(--ops-muted);font-weight:600}.preparation-crew-list{display:grid;gap:4px}.flight-preparation [data-crew-count]{font-size:12px;color:var(--ops-muted);margin-left:6px}.flight-preparation [data-selected-crew]{font-size:14px;line-height:1.5;overflow-wrap:anywhere}

.preparation-assisted{min-width:0}.preparation-suggestions{margin-top:8px}.preparation-suggestions>summary{cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px}.preparation-suggestions [data-agv3-ui-icon]{width:18px;height:18px;display:inline-flex}.preparation-suggestion-tools{display:flex;gap:8px;margin:12px 0}.preparation-suggestion-tools input{min-width:0;flex:1}.preparation-suggestion,.preparation-library-row{display:flex;width:100%;align-items:center;gap:10px;text-align:left;border:1px solid var(--ops-line);border-radius:8px;background:white;color:var(--ops-ink);font:inherit;padding:10px;margin-bottom:6px;cursor:pointer;min-height:42px}.preparation-suggestion strong,.preparation-library-row strong{font-size:14px}.preparation-suggestion small,.preparation-library-row small{display:block;font-size:12px;color:var(--ops-muted)}.preparation-suggestion:disabled{background:var(--ops-selected);opacity:.8;cursor:default}.preparation-library-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px}.preparation-library-row{flex-direction:column;align-items:flex-start;gap:4px}.preparation-library-manager{margin-top:24px}.preparation-library-layout form{min-width:0}.preparation-library-layout textarea{width:100%;box-sizing:border-box}.business-logo-preview{display:block;object-fit:contain;object-position:left;max-width:240px;max-height:110px;margin-bottom:16px}.flight-preparation .ops-toolbar label{display:flex;align-items:center;gap:10px}.flight-preparation .ops-toolbar select{min-width:0;max-width:100%}.flight-preparation [data-pdf]{margin-bottom:8px}
@media(max-width:800px){.preparation-library-layout{grid-template-columns:1fr}.preparation-suggestion-tools{flex-wrap:wrap}.flight-preparation .ops-toolbar label{flex-wrap:wrap}}
.preparation-suggestion[aria-pressed=true]{background:var(--ops-selected);border-color:var(--ops-accent)}
.preparation-suggestion-group{border:1px solid var(--ops-line);border-radius:8px;margin-bottom:8px}
.preparation-suggestion-group>summary{padding:12px;cursor:pointer;min-height:20px;font-size:14px}
.preparation-suggestion-group>summary small{float:right;color:var(--ops-muted)}
.preparation-suggestion-group>div{padding:0 10px 4px}
.quote-document-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.quote-document-brand img{max-width:130px;max-height:55px;object-fit:contain}.quote-export-options>summary{cursor:pointer;padding:8px}.quote-export-options{position:relative}.quote-export-options[open]>button{position:absolute;z-index:10;right:0;white-space:nowrap;background:white}.ops-workspace .portfolio-project-header__actions{display:flex;gap:8px;flex-wrap:wrap}

/* Match compact library/search and preparation selectors to the shared fields. */
.ops-toolbar :is(input[type=search],select),.preparation-suggestion-tools input[type=search],.preparation-library-layout [data-control-search]{box-sizing:border-box;min-width:0;min-height:42px;border:1px solid var(--ops-line);border-radius:8px;background:white;color:var(--ops-ink);font:inherit;padding:8px 10px}
.ops-toolbar>label{display:grid;gap:6px}.preparation-suggestion-tools input[type=search]{width:100%}
/* Document/preparation regions share one page scroll owner on every size. */
.preparation-documents { padding-top: .65rem; }
.preparation-document-row,.preparation-pack-row { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.5rem 0; border-bottom:1px solid var(--ops-border,#dce4df); }
.preparation-document-row .portfolio-toggle { flex:1; min-width:0; }
.preparation-document-row small,.preparation-documents [data-library-options] small,.preparation-overview-card small { display:block; color:var(--ops-muted,#596a62); font-size:.8rem; overflow-wrap:anywhere; }
.preparation-document-row strong,.preparation-documents strong { overflow-wrap:anywhere; }
.preparation-document-row button [data-agv3-ui-icon],.preparation-documents summary [data-agv3-ui-icon] { width:1.1rem; height:1.1rem; display:inline-flex; }
.preparation-document-row button svg { width:1.1rem; height:1.1rem; }
.preparation-document-tools { display:flex; align-items:end; gap:.5rem; margin:.5rem 0; }
.preparation-document-tools label { flex:1; min-width:0; }
.preparation-documents .business-document-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:.6rem; padding:.7rem 0; }
.preparation-documents label,.preparation-document-tools label { font-size:.9rem; }
.preparation-documents input:not([type=checkbox]),.preparation-documents select { width:100%; box-sizing:border-box; min-width:0; }
.preparation-documents .portfolio-toggle { display:flex; align-items:start; gap:.5rem; margin:.5rem 0; }
.preparation-documents .portfolio-toggle input { flex:0 0 auto; margin-top:.25rem; }
.preparation-overview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:.8rem; }
.preparation-overview-card { min-width:0; }
.preparation-overview-card h4,.preparation-overview-card h5 { margin:.4rem 0; }
.preparation-overview-card dl>div { display:grid; grid-template-columns:6rem minmax(0,1fr); gap:.5rem; margin:.4rem 0; }
.preparation-overview-card dd { margin:0; overflow-wrap:anywhere; }
.preparation-overview-card dt { color:var(--ops-muted,#596a62); }
.preparation-overview-card details { margin:.7rem 0; }
.preparation-note { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:600px) { .preparation-pack-row { flex-wrap:wrap; } }

.preparation-documents input:not([type=checkbox]),.preparation-documents select { min-height:40px; padding:.5rem .6rem; border:1px solid var(--ops-border,#cddbd3); border-radius:.5rem; background:#fff; color:#183c31; font:inherit; }
.preparation-documents .business-document-fields>label { display:grid; gap:.3rem; }
.preparation-documents details { margin:.5rem 0; }
.preparation-documents [data-upload-panel]>summary { padding:.4rem 0; }
.preparation-overview-card ul { padding-left:1.1rem; }

.portfolio-workspace-section__body > .business-documents { border:0; background:transparent; padding:0; margin:0; }
/* Shared validation: quiet requirements, visible errors only after an action. */
.ops-field-requirement{display:inline;margin-inline-start:4px;font-size:11px;font-weight:600;color:#526b60;line-height:1.2}
.ops-field-invalid input:not([type=checkbox]):not([type=radio]),.ops-field-invalid select,.ops-field-invalid textarea{border-color:#ad3428!important;box-shadow:0 0 0 1px #ad342833}
.ops-field-error,[data-field-error-count]{color:#9c2f25!important;font-size:12px;font-weight:650;line-height:1.35}
.ops-field-error{display:block;scroll-margin-block:90px}
[data-field-error-count]{margin-left:auto;padding:2px 6px;background:#fff0e8;border-radius:5px;white-space:nowrap}
.ops-form-errors{padding:10px 12px;margin:0 0 12px;border:1px solid #d89b77;border-left:4px solid #aa4325;border-radius:8px;background:#fff2e7;color:#732b19;scroll-margin-block:90px;font-size:13px;overflow-wrap:anywhere}
.ops-form-errors>div{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.ops-form-errors button{font:inherit;color:#732b19;background:#fff8f1;border:1px solid #d7a990;border-radius:6px;padding:7px 9px;min-height:34px;text-align:left;cursor:pointer}
.ops-review-exceptions{border-left:3px solid #b57522;background:#fff4df;padding:9px 12px;border-radius:6px;font-size:13px;overflow-wrap:anywhere}
.ops-review-exceptions p{margin:5px 0}
[data-review-override]{margin-top:10px;padding:10px;border:1px solid #d8b779;border-radius:8px;background:#fff8e9}
[data-review-override]>summary{cursor:pointer;font-weight:650}
[data-review-override] label{display:grid;gap:4px;margin:8px 0}
[data-review-override] textarea{width:100%;box-sizing:border-box}
[data-preparation-status][data-error]{padding:10px 12px;background:#fff2e7;border:1px solid #d89b77;border-radius:8px;color:#732b19}

/* Same section/tab vocabulary in the property and job workspaces. */
.ops-workspace .property-page-tabs>button{font:inherit;font-size:14px;min-height:42px;padding:9px 12px;cursor:pointer}
.ops-workspace .portfolio-btn:disabled{opacity:.5;cursor:default}
.ops-workspace .portfolio-compare-bar{background:var(--ops-selected);color:var(--ops-ink);border:1px solid var(--ops-line);border-radius:8px;box-shadow:none;padding:10px 12px}
.ops-selected-site{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--ops-line);border-radius:8px;background:var(--ops-wash)}
.ops-selected-site>span{min-width:0;flex:1;overflow-wrap:anywhere}.ops-selected-site small{display:block;margin-top:3px;color:var(--ops-muted);font-size:12px}.ops-selected-site button{flex:none}

.ops-business-badge {
  display:inline-block;max-width:100%;width:fit-content;padding:2px 7px;
  border-radius:6px;border:1px solid var(--ops-business-colour,#547a3e);
  background:#f3f6f4;background:color-mix(in srgb,var(--ops-business-colour,#547a3e) 13%,white);
  color:#26372e;font-size:12px;font-weight:600;line-height:1.5;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;
}
.ops-downloads{position:relative;color:var(--pf-ink,#203a2b)}
.ops-downloads>summary{cursor:pointer;min-height:40px;display:flex;align-items:center;padding:6px 10px;border:1px solid var(--pf-line,#b6c6b9);border-radius:7px;background:var(--pf-card,#fff);box-sizing:border-box;font-size:14px;list-style:none}
.ops-download-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:1500;width:max-content;max-width:min(320px,90vw);max-height:60vh;max-height:60dvh;overflow-y:auto;padding:8px;background:var(--pf-card,#fff);border:1px solid var(--pf-line,#b6c6b9);border-radius:10px;box-shadow:0 8px 24px #18392430;display:grid;gap:6px}
.ops-download-menu button,.ops-download-menu>a{display:block;text-align:left;min-height:40px;white-space:normal;padding:8px 12px;border:0;border-radius:6px;background:#edf3ed;color:#244b32;font:inherit;text-decoration:none;cursor:pointer}
.ops-download-menu select{max-width:100%;min-height:40px}.ops-download-menu [role=alert]{max-width:260px;color:#8c2727;white-space:normal}
.ops-downloads>summary{gap:6px}.ops-downloads>summary>[data-agv3-ui-icon]{width:18px;height:18px;flex:none}

.ops-downloads>summary svg{display:block;width:18px;height:18px}
