/* Build 47: permission-bound My Day, routing, active inventory, and field completion. */
[hidden]{display:none!important}
html{max-width:100%;overflow-x:hidden;scroll-behavior:smooth}
body{max-width:100%;min-height:100vh;min-height:100dvh;overflow-x:hidden;font-size:16px;line-height:1.5}
@supports(overflow:clip){html,body{overflow-x:clip}}
button,input,textarea,select{min-height:44px}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(27,126,160,.32);outline-offset:2px}

.topbar{min-height:74px!important;padding-top:calc(11px + env(safe-area-inset-top,0px))!important;padding-bottom:11px!important}
.brand strong{font-size:16px}.brand small{font-size:10px!important}
.appNav button,.ownerSwitch{font-size:13px!important}

.hero{min-height:164px!important;padding-top:25px!important;padding-bottom:39px!important}
.hero h1{font-size:clamp(29px,3.4vw,43px)!important;line-height:1.05}
.hero p:last-child{font-size:15px!important;line-height:1.5!important;margin-top:10px!important}
.heroStats{min-width:350px;padding:16px 0!important}
.heroStats strong{font-size:23px}.heroStats span{font-size:11px}
.steps{margin-top:-24px!important;min-height:64px!important}.steps button{min-height:64px!important;font-size:14px}
.workspace{margin-top:20px!important}.panel{padding:30px}
.twoColumn{grid-template-columns:1fr 1fr;gap:32px}
.panel h2{font-size:28px}.muted{font-size:15px;margin-bottom:20px}
.panel label{font-size:14px}.panel input,.panel textarea,.panel select{font-size:16px;padding:13px 14px}
.segmented button,.primary,.secondary{font-size:14px}
.taskSummary strong{font-size:14px}.taskSummary p,.safetyNote p,.measurementCallout p,.reviewWarning p{font-size:13px}
.taskSummary span,.scanTag,.liveLabel,.sourcePill,.confidence,.badge,.requirement,.materialFlags>span{font-size:11px!important}
.taskChecklist p,.taskChecklist li,.scanMode small,.photoText span,.integration p,.materialRow small{font-size:13px}
.taskChecklist h3,.subheading{font-size:18px}

.customerConcernHelper,.fieldNoteEstimateHelper,.manualWorkflowNotice{margin:12px 0 0;padding:14px 15px;border:1px solid #cbdde3;border-radius:11px;background:#eff7f9;color:#264958}
.customerConcernHelper{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 14px}
.customerConcernHelper strong,.fieldNoteEstimateHelper>label,.manualWorkflowNotice strong{color:#153f50;font-size:14px}
.customerConcernHelper p,.manualWorkflowNotice p{grid-column:1/-1;margin:0;font-size:13px;line-height:1.5}
.customerConcernHelper small,.helperHint{display:block;color:#607985;font-size:12px;line-height:1.45}
.customerConcernHelper small{grid-column:1/-1}
.customerConcernHelper button{border:1px solid #1d647c;border-radius:9px;background:#fff;color:#174a5d;padding:8px 12px;font-size:13px;font-weight:800}
.customerConcernHelper .helperStatus,.helperStatus{grid-column:1/-1;color:#236044;font-size:12px;font-weight:700}
.fieldNoteEstimateHelper>label{margin:0!important}
.fieldNoteEstimateHelper select{margin-top:7px!important}
.helperHint{margin-top:8px}.helperStatus{margin-top:8px}

.manualWorkflowNotice{margin:0 0 18px;border-left:4px solid #2b7891;background:#f2f8fa}
.manualWorkflowNotice p{margin-top:5px}
.manualWorkflowNotice ol{margin:10px 0 0;padding-left:20px;font-size:13px}
.manualWorkflowNotice li+li{margin-top:4px}
.analysisUnavailable{margin:18px 0;padding:13px 15px;border:1px solid #d8e3e7;border-radius:10px;background:#f7fafb;color:#4f6974;font-size:13px;line-height:1.5}
.scanModes,.scanConsole{display:none!important}
.measurementResults .resultHeading strong{font-size:15px}
.measurementResults .resultHeading small,.calculationNote{font-size:13px}

@media(max-width:900px){
  .topbar{flex-wrap:wrap;gap:9px 12px;position:relative!important;padding-left:max(16px,env(safe-area-inset-left,0px))!important;padding-right:max(16px,env(safe-area-inset-right,0px))!important}
  .appNav{order:3;display:grid!important;grid-template-columns:repeat(3,1fr);width:100%;gap:7px!important;margin:0!important}
  .appNav button{font-size:13px!important;min-width:0!important;padding:9px 7px!important}
  .appNav button b{font-size:11px!important;margin-left:5px!important}
  .status{margin:0!important}
  .twoColumn{grid-template-columns:1fr;gap:20px}
}

@media(max-width:620px){
  .topbar{min-height:0!important;padding:calc(10px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px))!important}
  .brand{gap:8px}.brandMark{width:36px;height:36px}.brand strong{font-size:15px}.brand small{font-size:9px!important;margin-top:3px}
  .status{font-size:0!important}.statusDot{display:block}
  .appNav button{font-size:12px!important;min-height:42px}
  .hero{padding:15px max(16px,env(safe-area-inset-right,0px)) 25px max(16px,env(safe-area-inset-left,0px))!important;gap:10px!important}
  .hero h1{font-size:25px!important;max-width:340px}.hero p:last-child{display:none}
  .heroStats{min-width:0;padding:10px 0!important;border-radius:13px!important}
  .heroStats div{padding:0 8px!important}.heroStats strong{font-size:20px}.heroStats span{font-size:10px;line-height:1.25}
  .steps{grid-template-columns:repeat(4,minmax(0,1fr));margin:-16px max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px))!important;padding:0 5px!important;min-height:56px!important;overflow:hidden}.steps button{min-width:0;min-height:56px!important;gap:4px;font-size:0!important}.steps button.active{font-size:11px!important}.steps button span{flex:0 0 25px}
  .workspace{margin:14px max(12px,env(safe-area-inset-right,0px)) calc(50px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))!important}.panel{padding:20px 15px!important;border-radius:14px}
  .panel h2{font-size:25px}.muted{font-size:14px}.panel label{font-size:14px}
  .panel input,.panel textarea,.panel select{font-size:16px}
  .choiceSide{padding:15px}.segmented{grid-template-columns:1fr 1fr}.segmented button{font-size:13px}
  .customerConcernHelper{grid-template-columns:1fr}.customerConcernHelper button{width:100%}
  .photoGrid{grid-template-columns:1fr}.photoCard{min-height:150px}
  .taskChecklist{padding:15px}.taskChecklist li{font-size:13px}
  .manualWorkflowNotice{padding:13px}
  footer{margin-left:max(14px,env(safe-area-inset-left,0px));margin-right:max(14px,env(safe-area-inset-right,0px));padding-bottom:calc(35px + env(safe-area-inset-bottom,0px));font-size:12px}
}

.accountOverlay{overflow:auto;padding:calc(18px + env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px))!important}
.accountPanel{max-height:calc(100dvh - 36px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto}
#photoDialog{width:100%;height:100dvh;max-width:none;max-height:none;margin:0}
#photoDialog>button{top:calc(15px + env(safe-area-inset-top,0px));right:calc(15px + env(safe-area-inset-right,0px))}

#jobscope-fatal-recovery{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;overflow:auto;padding:calc(22px + env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) calc(22px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));background:linear-gradient(145deg,#071f2d,#123e51);color:#163747}
#jobscope-fatal-recovery>div{width:min(620px,100%);padding:30px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.34)}
#jobscope-fatal-recovery h1{margin:12px 0 14px;color:#102d49;font-size:clamp(28px,5vw,42px);letter-spacing:-.03em}
#jobscope-fatal-recovery p{font-size:15px;line-height:1.6;color:#506873}
#jobscope-fatal-recovery details{margin-top:18px;padding:12px 14px;border:1px solid #d6e1e5;border-radius:10px;background:#f5f8f9}
#jobscope-fatal-recovery summary{cursor:pointer;font-weight:800}
#jobscope-fatal-recovery code{display:block;margin-top:10px;overflow-wrap:anywhere;color:#7d2f25;white-space:pre-wrap}
#jobscope-fatal-recovery .actions{justify-content:flex-start}
@media(max-width:620px){#jobscope-fatal-recovery>div{padding:24px 18px}#jobscope-fatal-recovery .actions{flex-direction:column}#jobscope-fatal-recovery button{width:100%}}

a.primary,a.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.headingActions,.jobContextActions,.routeOverviewHeading{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.viewerContext{margin:8px 0 0;color:#486b79;font-size:13px;font-weight:700}

.routeOverview{margin:4px 0 24px;padding:20px;border:1px solid #d6e2e7;border-radius:14px;background:#f5f9fa}
.routeOverviewHeading{justify-content:space-between;align-items:flex-start}
.routeOverviewHeading h3{margin:2px 0 4px;color:#102d49;font-size:21px}
.routeOverviewHeading p:not(.sectionLabel){margin:0;color:#5c7079;font-size:13px}
.routeMap{position:relative;isolation:isolate;width:100%;aspect-ratio:16/9;margin-top:16px;overflow:hidden;border:1px solid #cad9df;border-radius:12px;background:#dce9ed}
.routeMap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.routePin{position:absolute;z-index:2;display:grid;width:34px;height:34px;place-items:center;transform:translate(-50%,-100%);border:3px solid #fff;border-radius:50% 50% 50% 5px;background:#e56625;color:#fff;box-shadow:0 4px 12px rgba(17,46,60,.36);font-size:13px;font-weight:900;text-decoration:none}
.routePin:hover,.routePin:focus-visible{background:#b74410;transform:translate(-50%,-100%) scale(1.08)}
.mapPending{margin:14px 0 0;padding:13px 15px;border:1px dashed #aac3cd;border-radius:10px;background:#fff;color:#4e6873;font-size:13px;line-height:1.5}

.jobCardBody{width:100%}
.jobAssignmentMeta{display:grid;grid-template-columns:minmax(170px,.75fr) minmax(240px,1.25fr);gap:9px;margin:13px 0 0}
.jobAssignmentMeta>div{padding:10px 12px;border:1px solid #dce5e8;border-radius:9px;background:#f7fafb}
.jobAssignmentMeta dt{color:#657a84;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.jobAssignmentMeta dd{margin:4px 0 0;color:#173c4c;font-size:14px;font-weight:800;overflow-wrap:anywhere}
.jobCards .jobActions{width:100%;justify-content:flex-end}

.synchronizedJobDetails{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:12px;margin:0 0 5px;padding:15px;border:1px solid #c8dde4;border-left:4px solid #24738d;border-radius:11px;background:#f0f7f9}
.synchronizedJobDetails span,.synchronizedJobDetails strong{display:block}
.synchronizedJobDetails span{color:#637b85;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.synchronizedJobDetails strong{margin-top:4px;color:#163f50;font-size:14px;overflow-wrap:anywhere}

.partNumberInput{margin-top:6px!important;padding:8px 9px!important;border:1px solid #d5e0e4!important;background:#f8fbfc!important;font-size:13px!important;font-weight:700!important}
.inventoryPartField{display:block!important;margin:8px 0 0!important;color:#516b77!important;font-size:11px!important;font-weight:800!important}
.inventoryPartSelect{width:100%;min-height:42px;margin-top:4px!important;padding:8px 9px!important;border:1px solid #b9cfd7!important;background:#fff!important;color:#173c4c!important;font-size:13px!important;font-weight:700!important}
.materialUsage{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.materialUsage label{margin:0!important;color:#516b77!important;font-size:11px!important}
.materialUsage input,.materialUsage select{min-height:40px;margin-top:4px!important;padding:8px 9px!important;font-size:13px!important}
.inventoryLink{margin-top:8px!important;color:#456d7d!important;font-weight:700}
.materialsUsageNotice{margin:0 0 14px;padding:13px 15px;border:1px solid #dfd2ad;border-left:4px solid #d89516;border-radius:10px;background:#fffaf0}
.materialsUsageNotice strong{color:#624911;font-size:14px}.materialsUsageNotice p{margin:4px 0 0;color:#6d6044;font-size:13px;line-height:1.5}
.materialsUsageNotice.reconcileEnabled{border-color:#b9ddca;border-left-color:#218657;background:#f0faf5}.materialsUsageNotice.reconcileEnabled strong{color:#185f40}.materialsUsageNotice.reconcileEnabled p{color:#315f4b}

.sharedJobSummary{grid-template-columns:repeat(4,1fr)}
.completionPanel{margin:22px 0;padding:18px;border:1px solid #cedee3;border-radius:13px;background:#f7fafb}
.completionHeading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.completionHeading h3{margin:1px 0;color:#133b4c;font-size:20px}
.completionStatus{padding:6px 9px;border-radius:999px;background:#e7eff2;color:#355a68;font-size:11px;font-weight:900;text-transform:capitalize}
.completionStatus.work-completed{background:#e2f3e9;color:#236247}.completionStatus.return-visit{background:#fff0dc;color:#8a5615}
.completionGrid{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:11px}.completionGrid label{margin-top:12px!important}.completionGrid input,.completionGrid select{font-size:16px}
.completionNote{margin:13px 0 0;color:#56707b;font-size:12px;line-height:1.5}

@media(max-width:900px){
  .headingActions{width:100%;justify-content:flex-start}.headingActions>*{flex:1 1 210px}
  .synchronizedJobDetails{grid-template-columns:1fr 1fr}.synchronizedJobDetails .jobContextActions{grid-column:1/-1;justify-content:flex-start}
  .sharedJobSummary{grid-template-columns:repeat(2,1fr)}
  .completionGrid{grid-template-columns:1fr 1fr}.completionGrid label:first-child{grid-column:1/-1}
}
@media(max-width:620px){
  .routeOverview{padding:15px}.routeOverviewHeading{display:block}.routeOverviewHeading>a{width:100%;margin-top:12px}.routeMap{aspect-ratio:4/3}
  .jobAssignmentMeta,.synchronizedJobDetails,.materialUsage,.completionGrid,.sharedJobSummary{grid-template-columns:1fr}
  .synchronizedJobDetails .jobContextActions,.completionGrid label:first-child{grid-column:auto}
  .jobContextActions,.jobCards .jobActions{display:grid;grid-template-columns:1fr;width:100%}.jobContextActions>*{width:100%}
  .completionHeading{display:block}.completionStatus{display:inline-flex;margin-top:8px}
}
