/* Workflow visual system (Kalvin, 2026-10-10)
   One set of rules for job workflow screens:
   1. one in-job header (unchanged here), 2. one "where am I?" marker,
   3. content on the page, a card only for real grouping, 4. five text roles,
   5. one action bar: secondary left, primary right, 6. tap choices for on-site decisions.
   Pilot: only screens js/lib/workflowSystem.js names get [data-wf-screen].
   Phone and tablet only; the laptop layout has its own tabs and is unchanged. */

@media(max-width:900px){
  .route-jobs .job-workspace[data-wf-screen]{
    --wf-ink:var(--ink);
    --wf-muted:var(--sp-shell-muted,var(--muted));
    --wf-line:var(--jobs-line,var(--line));
    --wf-brass:#8a7047;
    --wf-selected:var(--brand-ink,#141515);
    --wf-on-selected:var(--brand-white,#f2eee5);
    --wf-serif:Georgia,"Times New Roman",serif;
    --wf-radius:10px;
    --wf-control:48px;
    --wf-gap-tight:8px;
    --wf-gap:12px;
    --wf-gap-section:28px;
  }

  /* Text roles. Kicker: where you are. Title: the task (the only serif).
     Label: a question or field. Body: answers and controls. Meta: one muted helper size. */
  .route-jobs .job-workspace[data-wf-screen] :is(.job-hint,.job-end-note,.job-return-notes small,[data-survey-chimney] small,.job-end-choice small,.completion-focus-note span,[data-job-task-active]>.section-head .section-meta,.job-survey-measurements>h3 small,.job-measurement-opening-head small,.evidence-prompts-head span,.compliance-state){
    font-size:.875rem;line-height:1.45;font-weight:400;letter-spacing:0;text-transform:none;color:var(--wf-muted);
  }

  /* 2. The marker: kicker (also the way back), title, and Sections when the task has them. */
  .route-jobs .job-workspace[data-job-view="task"][data-wf-screen]>.job-task-bar:not([hidden]){
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:0 12px;
    min-height:0;margin:0 0 14px;padding:0 0 10px;
    border:0;border-bottom:1px solid var(--wf-line);
    background:none;backdrop-filter:none;-webkit-backdrop-filter:none;animation:none;
  }
  .route-jobs .job-workspace[data-job-view="task"][data-wf-screen]>.job-task-bar .job-back{
    grid-column:1/-1;justify-self:start;min-height:36px;padding:0;
    font-size:.75rem;line-height:1.3;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--wf-brass);
  }
  .route-jobs .job-workspace[data-job-view="task"][data-wf-screen]>.job-task-bar>[data-job-task-label]{
    display:block;grid-column:1;min-width:0;padding:0;text-align:left;
    font-family:var(--wf-serif);font-size:1.25rem;line-height:1.2;font-weight:400;letter-spacing:0;text-transform:none;color:var(--wf-ink);
  }
  .route-jobs .job-workspace[data-wf-screen] .wf-sections{
    grid-column:2;align-self:center;display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:0;padding:0 2px;
    border:0;background:none;color:var(--wf-ink);font-size:.9375rem;font-weight:600;
  }
  .route-jobs .job-workspace[data-wf-screen] .wf-sections::after{
    content:"";width:7px;height:7px;margin-top:-4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform 160ms ease;
  }
  .route-jobs .job-workspace[data-wf-screen] .wf-sections[aria-expanded="true"]::after{margin-top:3px;transform:rotate(-135deg)}

  /* The survey's own step header is replaced by the marker; its section list opens from Sections. */
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-site-steps-now,
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-site-steps-all]>summary{display:none}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-site-steps]{margin:0;padding:0;border:0;background:none}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-site-steps-all]:not([open]){display:none}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-site-steps-all][open]{margin:0;padding:0;border:0;background:none}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-site-steps-all] .job-site-steps-list button{min-height:48px}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-full-record{margin:0;padding:0;border:0}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-site-apprentice{padding:0;gap:0}
  /* Where you know nothing yet, there is no "How do you know?" to answer. */
  .route-jobs .job-workspace[data-wf-screen] .visit-flue-pair:has([data-flue-quick-value="unknown"][aria-pressed="true"]:not(.flue-provenance *)) .flue-provenance{display:none}
  /* The title already names the section. */
  .route-jobs .job-workspace[data-wf-screen^="survey-"] [data-visit-flue]>h3{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

  /* 3. Content sits on the page: no card around the task, no card inside a card. */
  .route-jobs .job-workspace[data-wf-screen] .job-tools{border-top:0}
  .route-jobs .job-workspace[data-wf-screen] .job-tool-panel>.job-panel{padding-top:0}
  .route-jobs .job-workspace[data-wf-screen] [data-job-task-active],
  .route-jobs .job-workspace[data-wf-screen] .job-quick-scheduler,
  .route-jobs .job-workspace[data-wf-screen] .completion-record{
    margin-top:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
  }

  /* Labels: one size for every question on the page. */
  .route-jobs .job-workspace[data-wf-screen] :is(.visit-flue-pair>strong,.flue-provenance-label,.site-flue-checks legend,[data-survey-chimney]>span,.job-quick-context strong,.job-return-reasons legend,.job-return-notes>span,.job-survey-choice-set>legend,.job-measurement-opening-head strong,.evidence-prompts-head strong,.completion-serial>span,.compliance-followup-head strong,[data-survey-notes] label>span,.visit-followup-text>span){
    display:block;margin:0 0 var(--wf-gap-tight);padding:0;
    font-family:inherit;font-size:1.0625rem;line-height:1.35;font-weight:600;letter-spacing:0;text-transform:none;color:var(--wf-ink);
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.visit-flue-pair,.site-flue-checks fieldset,[data-survey-chimney],.job-return-reasons,.job-return-notes,.job-end-outcome){
    margin:0 0 var(--wf-gap-section);padding:0;border:0;min-width:0;
  }
  .route-jobs .job-workspace[data-wf-screen] .flue-provenance{margin:var(--wf-gap) 0 0;padding:0;border:0}
  .route-jobs .job-workspace[data-wf-screen] .flue-provenance>.flue-provenance-label.flue-provenance-label{font-size:.9375rem;font-weight:500;color:var(--wf-muted)}
  .route-jobs .job-workspace[data-wf-screen] .site-flue-checks{display:block;margin:0;padding:0;border:0}
  .route-jobs .job-workspace[data-wf-screen] .site-flue-checks .job-hint{margin:0 0 var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen] [data-visit-flue]>.job-hint{margin:0 0 var(--wf-gap-section)}

  /* 6. Tap choices: compact and wrapping, not a grid of white panels. Selected is charcoal. */
  .route-jobs .job-workspace[data-wf-screen] :is(.flue-quick-options,.job-return-reasons>div){
    display:flex;flex-wrap:wrap;gap:var(--wf-gap-tight);margin:0;padding:0;
  }
  .route-jobs .job-workspace[data-wf-screen] .site-flue-checks fieldset{display:flex;flex-wrap:wrap;gap:var(--wf-gap-tight)}
  .route-jobs .job-workspace[data-wf-screen] .site-flue-checks fieldset>:is(legend,.job-hint){flex:1 0 100%}
  .route-jobs .job-workspace[data-wf-screen] :is(.flue-quick-option,[data-chimney-note-choice],.job-return-choice){
    position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto;width:auto;
    min-height:44px;margin:0;padding:9px 14px;
    border:1px solid var(--wf-line);border-radius:var(--wf-radius);background:transparent;box-shadow:none;
    font-size:1rem;line-height:1.3;font-weight:500;text-align:center;color:var(--wf-ink);
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.job-return-choice,.job-end-choice) :is(span,strong){color:inherit}
  .route-jobs .job-workspace[data-wf-screen] :is(.flue-quick-option[aria-pressed="true"],[data-chimney-note-choice][aria-pressed="true"],.job-return-choice:has(input:checked)){
    border-color:var(--wf-selected);background:var(--wf-selected);color:var(--wf-on-selected);
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.flue-quick-option,[data-chimney-note-choice]):disabled{opacity:.55}
  /* Radios stay real inputs for keyboards and screen readers; the chip shows the state. */
  .route-jobs .job-workspace[data-wf-screen] :is(.job-return-choice,.job-end-choice) input{
    position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.job-return-choice,.job-end-choice):has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
  .route-jobs .job-workspace[data-wf-screen] .job-return-choice span{padding:0}

  /* A choice with an explanation is a row, still one border deep. */
  .route-jobs .job-workspace[data-wf-screen] .job-end-outcome>div{display:grid;gap:var(--wf-gap-tight)}
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice{
    position:relative;display:block;min-height:var(--wf-control);margin:0;padding:12px 14px;
    border:1px solid var(--wf-line);border-radius:var(--wf-radius);background:transparent;box-shadow:none;color:var(--wf-ink);
  }
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice>span{display:block;padding:0}
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice strong{display:block;font-size:1rem;line-height:1.35;font-weight:600;color:inherit}
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice small{display:block;margin-top:2px}
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice:has(input:checked){border-color:var(--wf-selected);background:var(--wf-selected);color:var(--wf-on-selected)}
  .route-jobs .job-workspace[data-wf-screen] .job-end-choice:has(input:checked) small{color:color-mix(in srgb,var(--wf-on-selected) 78%,transparent)}

  /* End today's visit: the title says it; the form asks the one question. */
  .route-jobs .job-workspace[data-wf-screen="end-day"] .job-quick-context{margin:0;padding:0;border:0}
  .route-jobs .job-workspace[data-wf-screen="end-day"] .job-finish-day{display:block}
  .route-jobs .job-workspace[data-wf-screen="end-day"] .job-quick-context>span,
  .route-jobs .job-workspace[data-wf-screen="end-day"] .job-end-outcome>legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
  .route-jobs .job-workspace[data-wf-screen="end-day"] .job-end-note{margin:0 0 var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen="end-day"] [data-end-finished] .job-return-notes{margin-bottom:var(--wf-gap)}

  /* Fields keep their own border; nothing around them. */
  .route-jobs .job-workspace[data-wf-screen] :is(textarea,input[type="text"],input:not([type])){
    border-radius:var(--wf-radius);font-size:1rem;
  }

  /* 5. One action bar: secondary on the left, the one primary on the right. */
  .route-jobs .job-workspace[data-wf-screen] :is(.job-survey-actions,.job-quick-actions){
    display:flex;flex-wrap:wrap;align-items:center;gap:var(--wf-gap-tight) var(--wf-gap);margin:0;
  }
  .route-jobs .job-workspace[data-wf-screen] .job-quick-actions{padding:var(--wf-gap) 0 0;border-top:1px solid var(--wf-line)}
  .route-jobs .job-workspace[data-wf-screen] :is(.job-survey-actions,.job-quick-actions,.completion-record-actions,.evidence-capture-actions,.evidence-capture-pickers)>button,
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] [data-completion-toggle]{
    min-height:52px;margin:0;padding:0 14px;border-radius:var(--wf-radius);font-size:.9375rem;font-weight:600;white-space:nowrap;
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.evidence-capture-actions,.evidence-capture-pickers){display:flex;flex-wrap:wrap;gap:var(--wf-gap-tight) var(--wf-gap);margin:0}
  .route-jobs .job-workspace[data-wf-screen] :is(.evidence-capture-pickers)>button{width:auto}
  .route-jobs .job-workspace[data-wf-screen] :is(.evidence-capture-pickers)>button:not(.primary){order:0;flex:0 0 auto;border:1px solid var(--wf-line);background:transparent;color:var(--wf-ink);box-shadow:none}
  .route-jobs .job-workspace[data-wf-screen] :is(.evidence-capture-actions)>button.primary{flex:1 1 100%}
  /* A primary that can't act yet stays charcoal, just quieter, so it reads as the same button. */
  .route-jobs .job-workspace[data-wf-screen] button.primary:disabled{background:var(--wf-selected);border-color:var(--wf-selected);color:var(--wf-on-selected);opacity:.42}
  .route-jobs .job-workspace[data-wf-screen] :is(.job-survey-actions,.job-quick-actions)>button:not(.primary),
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] [data-completion-toggle]{
    order:0;flex:0 0 auto;border:1px solid var(--wf-line);background:transparent;color:var(--wf-ink);box-shadow:none;
  }
  .route-jobs .job-workspace[data-wf-screen] :is(.job-survey-actions,.job-quick-actions,.completion-record-actions,.evidence-capture-pickers)>button.primary{
    order:1;flex:1 1 0;min-width:0;padding:6px 14px;white-space:normal;line-height:1.2;text-wrap:pretty;
  }
  /* "Save · next:" and the step name each stay whole, so a long step wraps between them. */
  .route-jobs .job-workspace[data-wf-screen] [data-survey-save-next]{display:block;text-align:center}
  .route-jobs .job-workspace[data-wf-screen] [data-survey-save-next] [data-survey-next-name]{white-space:nowrap}
  /* Save state reads before the buttons it describes, as it did before. */
  .route-jobs .job-workspace[data-wf-screen] :is(.job-quick-status,[data-survey-status],.completion-record-status){order:-1;flex:1 0 100%;font-size:.875rem;color:var(--wf-muted)}
  .route-jobs .job-workspace[data-wf-screen] :is(.job-quick-status,[data-survey-status],.completion-record-status):empty{display:none}

  /* Open, the reminder list has its own "Add reminder"; "+ Reminder" stays only while the list is closed. */
  .route-jobs .job-workspace[data-wf-screen="survey-reminders"]:has([data-survey-section="reminders"] details[open]) .job-site-apprentice-add{display:none}
  /* Photos: nothing chosen yet, so Take photo / From library are the actions; Save appears with photos. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-save][data-evidence-empty="true"]{display:none}
  /* Until photos are chosen there is nothing to describe. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-capture-body:has([data-evidence-save][data-evidence-empty="true"]) .evidence-photo-options{display:none}
  /* Saved photos as a grid to scan; tap one to open it with its details. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records]>summary{display:none}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-photo-card{display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;min-width:0}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-photo-card-head{order:2}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-photo-card-head strong{font-size:.85rem;font-weight:500;overflow-wrap:anywhere}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] :is(.evidence-photo-card-head small,.evidence-photo-caption,.evidence-photo-technical,.evidence-photo-open-label){display:none}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-photo-open{min-width:0;width:100%}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-records] .evidence-photo-preview{width:100%;height:auto;aspect-ratio:1/1}
  /* Once photos are chosen, Save is the one primary and Take photo steps back to secondary. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-capture-body:has([data-evidence-save][data-evidence-empty="false"]) .evidence-capture-pickers>button.primary{border:1px solid var(--wf-line);background:transparent;color:var(--wf-ink);box-shadow:none}
  /* Finishing the job is offered on Now ("Review & finish job") when the record is ready, not mid-photos. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .handover-entry-action{display:none}

  /* Site visit answers: short answers are chips; answers with an explanation are rows. Selected is charcoal. */
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice-set{margin:0 0 var(--wf-gap-section);padding:0;border:0;min-width:0}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice-buttons{display:flex;flex-wrap:wrap;gap:var(--wf-gap-tight)}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice{position:relative;flex:0 1 auto;min-width:0}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice span{
    display:flex;align-items:center;justify-content:center;height:auto;min-height:44px;padding:9px 14px;
    border:1px solid var(--wf-line);border-radius:var(--wf-radius);background:transparent;box-shadow:none;
    font-size:1rem;line-height:1.3;font-weight:500;text-align:center;color:var(--wf-ink);
  }
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice span b{font-weight:inherit}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice:has(small){flex:1 0 100%}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice:has(small) span{display:block;padding:12px 14px;text-align:left}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice:has(small) b{display:block;font-weight:600}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice small{display:block;margin-top:2px;font-size:.875rem;line-height:1.45;color:var(--wf-muted)}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice input:checked+span{border-color:var(--wf-selected);background:var(--wf-selected);color:var(--wf-on-selected);box-shadow:none}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-choice input:checked+span small{color:color-mix(in srgb,var(--wf-on-selected) 78%,transparent)}
  /* Measurements: the opening sits on the page like the rows below it. */
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-measurements>h3{margin:0 0 4px;padding:0}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-measurements>h3 small{display:block}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-survey-measurements>h3 small::first-letter{text-transform:uppercase}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-measurement-opening{padding:0 0 var(--wf-gap);border:0;border-bottom:1px solid var(--wf-line);border-radius:0;background:transparent}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-measurement-opening-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--wf-gap);margin:0}
  .route-jobs .job-workspace[data-wf-screen^="survey-"] .job-measurement-opening-head strong{margin:0}

  /* Reminders: the checklist sits on the page, not in its own box. */
  .route-jobs .job-workspace[data-wf-screen="survey-reminders"] [data-survey-section="reminders"]>.job-measurement-choice{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  .route-jobs .job-workspace[data-wf-screen="survey-reminders"] [data-visit-reminder-heading]{padding:0 0 var(--wf-gap-tight)}
  .route-jobs .job-workspace[data-wf-screen="survey-reminders"] [data-visit-reminder-heading]>span{font-size:1.0625rem;font-weight:600;color:var(--wf-ink)}
  .route-jobs .job-workspace[data-wf-screen="survey-reminders"] [data-visit-reminder-heading] small{font-size:.875rem;color:var(--wf-muted)}

  /* Photos (site visit and installation): the title names it; pickers are the same action bar. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"],[data-wf-screen="record-full"]) [data-job-task-active]>.section-head{display:block;margin:0 0 var(--wf-gap);padding:0;border:0}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"],[data-wf-screen="record-full"]) [data-job-task-active]>.section-head h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-prompts{margin:0 0 var(--wf-gap-section);padding:0;border:0}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-prompt{min-height:44px;padding:9px 14px;border:1px solid var(--wf-line);border-radius:var(--wf-radius);background:transparent;font-size:1rem;font-weight:500;color:var(--wf-ink)}
  /* While the photo form is open on its own screen, "Close photo form" is not a step. */
  /* Only the options toggle goes: the camera and library pickers share this row and must stay visible. */
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-capture-head [data-evidence-toggle][aria-expanded="true"]{display:none}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) :is(.evidence-capture,.evidence-capture-body,.evidence-file){margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-file{margin-bottom:var(--wf-gap)}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) [data-evidence-file-name]{margin-top:var(--wf-gap-tight);font-size:.875rem;color:var(--wf-muted)}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-photo-options{margin:0 0 var(--wf-gap)}
  .route-jobs .job-workspace:is([data-wf-screen="survey-photos"],[data-wf-screen="record-photos"]) .evidence-capture~.evidence-prompts{margin:var(--wf-gap-section) 0 0}

  /* All records: the record form is the screen, so its own "Installation record / Hide" head goes while open. */
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-record-head:has([aria-expanded="true"]){display:none}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-record{margin-top:var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-serial{display:block;margin:0 0 var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-check b{font-family:inherit;font-size:1rem;font-weight:600}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-record-actions{display:flex;flex-wrap:wrap;gap:var(--wf-gap-tight);margin-top:var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .completion-record-actions>button.primary{flex:1 1 100%}
  .route-jobs .job-workspace[data-wf-screen="record-full"] .technical-facts span{font-size:.875rem;color:var(--wf-muted)}

  /* Commissioning: one record, its state, and the same action bar.
     The head and body are flattened so "Full record" can sit left of Confirm without moving it in the DOM. */
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] [data-job-task-active]>:is(.section-head,.job-check-review,.technical-facts,[data-job-notification-record]){display:none}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-record{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wf-gap-tight) var(--wf-gap)}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] :is(.completion-record-head,.completion-record-body,.completion-record-actions){display:contents}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-record-head strong{display:none}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-record-body>:not(.completion-record-actions){flex:1 0 100%}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-record-body>[hidden]{display:none}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] [data-completion-toggle]{order:1}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] [data-completion-save]{order:2}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-record-status{order:3}
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-focus-note:not([hidden]){
    display:grid;gap:4px;margin:0 0 var(--wf-gap);padding:0;border:0;
  }
  .route-jobs .job-workspace[data-wf-screen^="record-check-"] .completion-focus-note strong{font-size:1.0625rem;line-height:1.35;font-weight:600;color:var(--wf-ink)}
}

/* Pilot only: the focused-record note appears where the workflow system is switched on. */
.completion-focus-note{display:none}

/* RC2: source/provenance remains available, but it is not another compulsory
   question in the middle of an installer recording a flue observation. */
.flue-provenance>summary.flue-provenance-label{
  display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;
  cursor:pointer;min-height:44px;list-style:none;min-width:0;
}
.flue-provenance>summary.flue-provenance-label::-webkit-details-marker{display:none}
.flue-provenance>summary.flue-provenance-label [data-flue-source-summary]{
  font-weight:600;color:var(--ink);overflow-wrap:anywhere;
}
.flue-provenance>summary.flue-provenance-label small{font-weight:450;color:var(--muted);font-size:.78rem}
.flue-provenance>summary.flue-provenance-label::after{content:'+';margin-left:auto;color:var(--muted)}
.flue-provenance[open]>summary.flue-provenance-label::after{content:'−'}
.flue-provenance>summary.flue-provenance-label:focus-visible{outline:2px solid var(--brand-gold);outline-offset:2px}
.flue-provenance>.flue-quick-options{padding:2px 0 10px}

/* RC2 installer-first End Visit: the usual "Coming back" requires one choice,
   not an automatic interrogation about job blockers. Details remain available
   and are expanded when the job was already paused. */
.job-finish-day .job-end-blocker-details{margin:0 0 12px;padding:0;border:0}
.job-finish-day .job-end-blocker-details>summary{
  display:flex;gap:8px;align-items:center;min-height:44px;cursor:pointer;
  list-style:none;color:var(--muted,#6b655c);font-weight:600;font-size:.9rem;
}
.job-finish-day .job-end-blocker-details>summary::-webkit-details-marker{display:none}
.job-finish-day .job-end-blocker-details>summary::after{
  content:'+';margin-left:auto;font-size:1.15rem;font-weight:500;
}
.job-finish-day .job-end-blocker-details[open]>summary::after{content:'−'}
.job-finish-day .job-end-blocker-details>summary small{font-size:.75rem;font-weight:400}
.job-finish-day .job-end-blocker-details>summary:focus-visible{
  outline:2px solid var(--brand-gold,#b08d57);outline-offset:3px;border-radius:4px;
}
.job-finish-day .job-end-blocker-details .job-return-reasons{margin:10px 0 0}
