/* William, 8 October 2026: compact working screens and visible checklists.
   Staff only; customer portals keep their reviewed shell. */
body:not(.ro) .btn,body:not(.ro) .pa-tile,body:not(.ro) .pqe-btn{border-radius:8px;box-shadow:none}
body:not(.ro) #appMain.wrap{max-width:none;padding:12px 16px 88px}
body:not(.ro) #layoutEl{gap:16px}
body:not(.ro) :is(#journey,#propertyDirectoryPanel,.property-workbench,.property-next-moves,#wfPanel,.property-attention,.property-inspections,.pqe){border-radius:8px;box-shadow:none}
body:not(.ro) #journey{padding:12px;background:#fff}
body:not(.ro) #journey .jhead{padding:0;border:0;box-shadow:none;background:transparent;margin-bottom:12px}
body:not(.ro) #jAddr{font-size:22px;line-height:1.25;margin:0}
body:not(.ro) #jSub{font-size:13px;line-height:1.45;margin-top:4px}
body:not(.ro) #stage{padding:12px;margin:12px 0;border-radius:0;background:var(--mint);color:var(--ink);border-left:3px solid var(--forest);box-shadow:none}
body:not(.ro) #stage .lbl{font-size:12px;color:var(--mute);margin:0 0 4px}
body:not(.ro) #stage h3{font-size:16px;color:var(--forest);margin:0 0 4px}
body:not(.ro) #stage p{font-size:13px;line-height:1.45;color:var(--mute);margin:0;max-width:none}
body:not(.ro) .ops-strip{gap:8px;margin:12px 0;grid-template-columns:repeat(3,minmax(0,1fr))}
body:not(.ro) .ops-st{border-radius:0;padding:6px 8px;background:transparent;min-width:0}
body:not(.ro) .ops-st .k{font-size:11px;letter-spacing:0;line-height:1.3}
body:not(.ro) .ops-st .v{font-size:13px;line-height:1.4}
body:not(.ro) .ops-st .x{font-size:12px;line-height:1.4}
body:not(.ro) #opsPrimary{margin-bottom:12px}
body:not(.ro) #propertyCommandSummary .property-client-actions{gap:8px;margin:8px 0;padding-bottom:8px}
body:not(.ro) #propertyCommandSummary .property-client-actions>.btn{padding:8px 12px;min-height:44px;font-size:13px;grid-column:auto}
body:not(.ro) #passportBtn small{display:none}
body:not(.ro) .property-live-bar{padding:8px 12px;gap:8px;border-radius:8px;align-items:center}
body:not(.ro) .property-live-bar>div{min-width:0;flex:1 1 150px}
body:not(.ro) .property-live-bar strong,body:not(.ro) .property-live-bar span{font-size:12px}
body:not(.ro) .property-live-bar #propertyLiveTime{margin-top:2px}
body:not(.ro) .property-live-cadence{width:auto;order:0}
body:not(.ro) #propertyDirectoryPanel{padding:12px}
body:not(.ro) #propertyDirectoryPanel h2{font-size:20px}
body:not(.ro) #propertyDirectoryPanel .property-disclosure-subtitle{display:none}
body:not(.ro) #propertyDirectoryBody{gap:8px}
body:not(.ro) .property-directory-input,body:not(.ro) .property-directory-select{min-height:44px;border-radius:8px;padding-top:8px;padding-bottom:8px}
body:not(.ro) .property-table-scroll{margin-top:4px;border-radius:0;max-height:65vh}
body:not(.ro) .property-table{font-size:13px}
body:not(.ro) .property-table tbody small{font-size:12px}
body:not(.ro) #propertyWorkbench{margin:12px 0}
body:not(.ro) .pw-routes{border:0;gap:0;padding:0;grid-template-columns:repeat(2,minmax(0,1fr))}
body:not(.ro) .pw-routes button,body:not(.ro) .pw-routes button:last-child{min-height:60px;border:0;border-radius:0;border-bottom:1px solid var(--line);padding:10px 24px 10px 12px}
body:not(.ro) .pw-routes button:nth-child(odd){border-right:1px solid var(--line)}
body:not(.ro) .pw-routes b{font-size:13px}
body:not(.ro) .pw-routes span{font-size:12px;line-height:1.4;margin-top:3px}
body:not(.ro) .property-facts{border-top:1px solid var(--line)}
body:not(.ro) .property-facts>summary,body:not(.ro) .wf-start>summary,body:not(.ro) .wf-journey>summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:700}
body:not(.ro) :is(.property-facts,.wf-start,.wf-journey)>summary::before{content:'+';font-size:18px;font-weight:400}
body:not(.ro) :is(.property-facts,.wf-start,.wf-journey)[open]>summary::before{content:'−'}
body:not(.ro) #propertyCommandSummary .property-context-links{gap:8px}
body:not(.ro) .property-external-note{font-size:12px;font-weight:400;margin-left:8px}
body:not(.ro) #propertyNextMoves{padding:12px;margin-bottom:12px}
body:not(.ro) .property-next-heading h2{font-size:17px}
body:not(.ro) .property-next-heading p{font-size:13px}
body:not(.ro) .property-next-heading .pw-eyebrow{display:none}
body:not(.ro) .property-move-grid .play{border-radius:0;padding:12px;box-shadow:none}
body:not(.ro) .property-workspace-toggle,body:not(.ro) .portfolio-digest-toggle{min-height:48px;padding:8px 12px}
body:not(.ro) #wfPanel{padding:12px;margin:12px 0!important;border:1px solid var(--line)}
body:not(.ro) #wfPanel h3{font-size:16px}
body:not(.ro) #wfPanel [data-wf-block]{margin-bottom:12px!important}
body:not(.ro) .wf-read-state{font-size:13px;line-height:1.5}
body:not(.ro) .wf-checklist{list-style:none;margin:8px 0 12px;padding:0}
body:not(.ro) .wf-check-step{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;border-bottom:1px solid var(--line);padding:0 8px}
body:not(.ro) .wf-check-step[data-wf-state=next]{background:var(--mint);box-shadow:inset 3px 0 var(--forest)}
body:not(.ro) .wf-check-mark{width:20px;height:20px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;margin-top:12px;font-size:12px;color:var(--mute)}
body:not(.ro) .wf-check-step[data-wf-state=complete] .wf-check-mark{background:var(--forest);border-color:var(--forest);color:#fff}
body:not(.ro) .wf-check-detail{min-width:0}
body:not(.ro) .wf-check-detail>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none}
body:not(.ro) .wf-check-detail>summary::-webkit-details-marker{display:none}
body:not(.ro) .wf-check-detail>summary b{font-size:13px;line-height:1.45;overflow-wrap:anywhere;font-weight:600}
body:not(.ro) .wf-check-state{font-size:12px;color:var(--mute);text-align:right;flex:0 0 auto;max-width:38%}
body:not(.ro) .wf-check-state::after{content:' +';font-weight:700}
body:not(.ro) .wf-check-detail[open] .wf-check-state::after{content:' −'}
body:not(.ro) .wf-check-step[data-wf-state=next] .wf-check-state{color:var(--forest);font-weight:700}
body:not(.ro) .wf-check-body{padding:0 0 12px}
body:not(.ro) .wf-check-body p{font-size:13px;color:var(--mute);line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}
body:not(.ro) .wf-check-body>.btn{margin-top:8px}
body:not(.ro) #wfPanel .btn{min-height:44px;font-size:13px!important;white-space:normal}
body:not(.ro) .wf-history-nav,body:not(.ro) .wf-lifecycle-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
body:not(.ro) .wf-history-nav .btn{max-width:100%;min-height:44px;white-space:normal;font-size:13px}
body:not(.ro) .wf-history-nav [aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fff}
body:not(.ro) .wf-history-nav span{font-weight:400;margin-left:4px}
body:not(.ro) .wf-history-record{border-bottom:1px solid var(--line);margin-bottom:12px}
body:not(.ro) .wf-history-record>summary{min-height:48px;display:flex;align-items:center;padding:8px 0;cursor:pointer;font-size:13px;font-weight:700;overflow-wrap:anywhere}
body:not(.ro) .wf-history-record>summary:focus-visible{outline:2px solid var(--green);outline-offset:2px}
body:not(.ro) .wf-next-flow{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--forest);margin:12px 0}
body:not(.ro) .wf-next-flow b,body:not(.ro) .wf-next-flow p,body:not(.ro) .wf-record-note{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
body:not(.ro) .wf-next-flow p{flex:1 1 100%;margin:0;color:var(--mute)}
body:not(.ro) [data-wf-notice]{padding:8px;border-left:3px solid var(--forest);background:var(--mint)}
body:not(.ro) [data-wf-notice][role=alert]{border-left-color:var(--red);color:var(--red);background:#fff}
body:not(.ro) .wf-start,body:not(.ro) .wf-journey{border-top:1px solid var(--line);margin-top:8px}
body:not(.ro) :is(.wf-check-detail,.property-facts,.wf-start,.wf-journey)>summary:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
/* No decorative motion on the working property screen. Loading states remain. */
body:not(.ro) #journey :is(.btn,.play,.stage,.ops-st),body:not(.ro) #propertyDirectoryPanel .btn{animation:none;transition:none;transform:none}
@media(min-width:1001px){
 body:not(.ro) #layoutEl{grid-template-columns:320px minmax(0,1fr)}
 body:not(.ro) #journey{padding:16px}
 body:not(.ro) .property-client-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
 body:not(.ro) .ops-strip{grid-template-columns:repeat(6,minmax(0,1fr))}
 body:not(.ro) .pw-routes{grid-template-columns:repeat(4,minmax(0,1fr))}
 body:not(.ro) .pw-routes button:not(:nth-child(4n)){border-right:1px solid var(--line)}
 body:not(.ro) #wfPanel{padding:16px}
}
@media(max-width:700px){
 body:not(.ro) #appMain.wrap{padding:8px 8px 100px}
 body:not(.ro) .property-live-cadence{flex-basis:100%}
 body:not(.ro) .property-client-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 body:not(.ro) #propertyCommandSummary .property-client-actions>.pa-primary,body:not(.ro) #propertyCommandSummary .property-client-actions>.pa-lead{grid-column:auto}
 body:not(.ro) .property-list-back{margin:0 0 8px}
 body:not(.ro) #propertyPhoneActions{gap:8px;margin:8px 0}
 body:not(.ro) .property-table{font-size:12px}
}
/* Setup uses the space its fields need. The checklist stays visible on desktop. */
.ps-dialog{border-radius:8px;height:auto;max-height:calc(100dvh - 24px);width:min(960px,calc(100vw - 24px))}
.ps-head{padding:12px 16px;background:#fff}
.ps-head h2{margin:0 0 4px}.ps-head p{margin:2px 0;font-size:13px}
.ps-workspace{display:flex;flex-direction:column;min-height:0;flex:1}
.ps-dialog #pform{min-height:0}
.ps-dialog [data-ps-step]{flex:none;padding:16px}
.ps-dialog .btn,.ps-dialog input,.ps-dialog select,.ps-dialog textarea{border-radius:8px}
.ps-actions{padding:12px 16px max(12px,env(safe-area-inset-bottom));position:sticky}
#psSteps{margin:0;padding:8px;gap:4px;border-bottom:1px solid var(--line);background:var(--mint);flex:none}
#psSteps button{border:0;border-radius:4px;background:transparent;font-size:12px;min-width:48px;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;padding:6px 4px}
#psSteps button span{margin:0;font-size:12px}
#psSteps button b{font-weight:600;font-size:12px}
.ps-dialog #psSource{margin:12px 16px 0!important;border-radius:4px}
@media(min-width:701px){
 .ps-workspace{display:grid;grid-template-columns:176px minmax(0,1fr);grid-template-rows:minmax(0,1fr);max-height:calc(100dvh - 144px)}
 #psSteps{flex-direction:column;align-items:stretch;justify-content:start;border-bottom:0;border-right:1px solid var(--line);padding:12px}
 #psSteps button{flex:none;justify-content:flex-start;gap:12px;padding:10px 12px;min-height:44px}
 #psSteps button b{font-size:13px}
 .ps-actions{margin-top:auto}
}
@media(max-width:700px){.ps-dialog{width:100vw;max-height:100dvh;border:0;border-radius:0}.ps-dialog .ps-workspace{max-height:calc(100dvh - 120px)}}
/* Keep the directory contained when its desktop column is compact. */
body:not(.ro) #propertyDirectoryBody{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}
body:not(.ro) #propertyDirectoryBody>*{grid-column:1;grid-row:auto;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
body:not(.ro) #propertyDirectoryPanel .pd-intro{display:none}
body:not(.ro) #propertyDirectoryPanel .property-section-head{gap:8px;margin-bottom:12px;align-items:center;flex-wrap:wrap}
body:not(.ro) #propertyDirectoryPanel .property-section-head>div:last-child{width:auto;gap:8px}
body:not(.ro) #addBtnHead{white-space:nowrap}
body:not(.ro) #propertyDirectorySearch,body:not(.ro) #propertyDirectoryLandlord{height:48px;min-height:48px;border-radius:8px}
body:not(.ro) .pd-search-wrap>svg{top:13px}
body:not(.ro) .property-live-bar{display:grid;grid-template-columns:minmax(0,1fr) auto}
body:not(.ro) .property-live-cadence{grid-column:1/-1;grid-row:2}
body:not(.ro) #propertyLiveRefresh{grid-column:2;grid-row:1}
body:not(.ro) .pqe-update{padding:12px;border-radius:8px;background:#fff}
body:not(.ro) .pqe-update-controls{gap:8px;margin-top:8px}
body:not(.ro) .pqe-update-controls button{flex:0 1 auto}
body:not(.ro) .pqe-update-controls select{border-radius:8px}
.ps-dialog{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;height:fit-content}
.ps-dialog #psBody{flex:none}
@media(min-width:701px){.ps-workspace{flex:0 1 auto}.ps-dialog #pform{flex:none}.ps-actions{margin-top:0}}
@media(max-width:700px){.ps-dialog{top:0;left:0;transform:none;height:100dvh}.ps-workspace{flex:1}.ps-dialog #psBody{flex:1}.ps-dialog #pform{flex:1}.ps-dialog [data-ps-step]{flex:1}}
body:not(.ro) .property-table{table-layout:fixed;width:100%}
body:not(.ro) .property-table th:first-child{min-width:0;width:44%}
body:not(.ro) .property-table th,body:not(.ro) .property-table td{overflow-wrap:anywhere;white-space:normal;padding:8px 5px}
body:not(.ro) .property-table th button{max-width:100%;white-space:normal}
body:not(.ro) .property-table tbody small{font-size:12px}
body:not(.ro) #propertyInspectionSection>a{min-height:44px;white-space:normal}
body:not(.ro) .btn{font-weight:600}
@media(min-width:1001px){body:not(.ro) .property-live-bar{grid-template-columns:minmax(0,1fr) auto auto}body:not(.ro) .property-live-cadence{grid-column:2;grid-row:1}body:not(.ro) #propertyLiveRefresh{grid-column:3}}
body:not(.ro) #propertyInspectionSection>a{display:inline-flex;align-items:center;min-height:44px!important;box-sizing:border-box;text-decoration:none;max-width:100%;flex-wrap:wrap}

/* Inspections keep the CRM chrome and their live form while other sections open. */
body:not(.ro).staff-inspections-open #appMain.wrap{padding-bottom:8px!important}
#inspectionsview{min-width:0}
#staffInspectionFrame{display:block;width:100%;height:70vh;border:0;background:transparent;border-radius:8px}
#staffInspectionLoadState{font-size:13px;color:var(--mute)}
#staffInspectionLoadState p{margin:0 0 8px}
#staffInspectionLoadState button{margin-bottom:8px}
#staffInspectionLoadState [hidden]{display:none!important}

/* Maintenance opens inside the CRM the same way (William, 2026-10-18). */
body:not(.ro).staff-maintenance-open #appMain.wrap{padding-bottom:8px!important}
#maintenanceview{min-width:0}
#staffMaintenanceFrame{display:block;width:100%;height:70vh;border:0;background:transparent;border-radius:8px}
#staffMaintenanceLoadState{font-size:13px;color:var(--mute)}
#staffMaintenanceLoadState p{margin:0 0 8px}
#staffMaintenanceLoadState button{margin-bottom:8px;min-height:44px}
#staffMaintenanceLoadState [hidden]{display:none!important}
