.job-next-action{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:15px 18px;align-items:center;margin:-8px 0 30px;padding:22px 24px 18px;border:1px solid #d6d8d2;border-top:2px solid var(--brand-gold);border-radius:10px;background:#fbfaf7;box-shadow:0 12px 30px rgba(20,21,21,.045)}
.job-next-marker{width:38px;height:38px;display:grid;place-items:center;color:var(--brand-gold);font-size:1.4rem;font-weight:500;line-height:1}
.job-next-copy{min-width:0}
.job-next-copy>span{display:block;color:#8a7047;font-size:.6875rem;line-height:1.4;font-weight:700;letter-spacing:.085em;text-transform:uppercase}
.job-next-copy>strong{display:block;margin-top:3px;font-size:1.16rem;line-height:1.35;font-weight:680;letter-spacing:-.025em}
.job-next-copy>p{max-width:720px;margin:5px 0 0;color:var(--muted);font-size:1rem;line-height:1.55}
.job-next-buttons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.job-next-button{white-space:normal;min-height:48px}
.job-next-button.primary{background:var(--brand-ink);border-color:var(--brand-ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 5px 16px rgba(20,21,21,.10)}
.job-next-button.primary:hover{background:#202221;border-color:#202221}
.job-next-waiting{align-self:center}
.job-next-action:focus-within{border-color:#cfc8b9;border-top-color:var(--brand-gold)}
.job-next-error{grid-column:2/-1;margin:0;color:#8f3931;font-size:.875rem;line-height:1.5}
.job-next-error.success{color:var(--green)}
.job-journey{grid-column:1/-1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;margin-top:2px;padding-top:15px;border-top:1px solid #e1e1dc}
.job-journey-stage{position:relative;display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:7px;min-width:0;color:#68716b;font-size:.875rem;line-height:1.4;font-weight:620;letter-spacing:.012em}
.job-journey-stage:not(:last-child)::after{content:"";position:absolute;left:7px;right:-1px;top:50%;height:1px;background:#d6d9d3;transform:translateY(-50%);z-index:0}
.job-journey-stage i{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:#d1d6d0;box-shadow:0 0 0 4px #fbfaf7}
.job-journey-stage b{position:relative;z-index:1;justify-self:start;padding-right:8px;background:#fbfaf7;font:inherit;color:inherit;white-space:nowrap}
.job-journey-stage.done{color:#6a746e}
.job-journey-stage.done i{background:var(--green)}
.job-journey-stage.current{color:var(--ink);font-weight:720}
.job-journey-stage.current i{width:10px;height:10px;margin-left:-1px;background:var(--brand-gold);box-shadow:0 0 0 4px #fbfaf7,0 0 0 5px rgba(199,167,106,.25)}
.job-next-open{align-items:start}
.job-quick-scheduler{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;margin-top:2px;padding-top:18px;border-top:1px solid var(--line)}
.job-quick-scheduler [hidden]{display:none!important}
.job-quick-scheduler[data-booking-layout="combined"] [data-booking-details-stage]{padding-bottom:18px;border-bottom:1px solid var(--line)}
.job-quick-scheduler[data-booking-layout="combined"] .job-booking-summary{display:none}
.job-booking-stage{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;min-width:0;align-items:start}
.job-quick-context{grid-column:1/-1;display:flex;align-items:baseline;gap:8px;min-width:0;margin-bottom:2px}
.job-quick-context>span{color:var(--muted);font-size:.75rem;line-height:1.4}
.job-quick-context>strong{font-size:.875rem;line-height:1.45;font-weight:650}
.job-quick-context>small{min-width:0;color:var(--muted);font-size:.75rem;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-quick-scheduler label{display:grid;gap:5px;min-width:0}
.job-day-retry{grid-column:1/-1;justify-self:start;min-height:44px;text-align:left}
.job-day-retry[hidden]{display:none}
.job-quick-scheduler label>span{font-size:.875rem;line-height:1.4;font-weight:600;color:var(--muted)}
.job-quick-scheduler input,.job-quick-scheduler select,.job-quick-scheduler textarea{width:100%;min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);padding:10px 12px;font:inherit;font-size:16px}
.job-quick-scheduler textarea{resize:vertical;line-height:1.5}
.job-return-reasons{grid-column:1/-1;min-width:0;margin:0;padding:0;border:0}
.job-return-reasons legend{padding:0;margin-bottom:9px;font-size:1rem;line-height:1.5;font-weight:600;color:var(--ink)}
.job-return-reasons small,.job-return-notes small{font-weight:400;color:var(--muted)}
.job-return-reasons>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.job-quick-scheduler .job-return-choice{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}
.job-quick-scheduler .job-return-choice>input{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:0;padding:0;accent-color:var(--brand-ink)}
.job-quick-scheduler .job-return-choice>span{font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.job-return-choice:has(input:checked){border-color:var(--brand-gold);background:color-mix(in srgb,var(--brand-gold) 12%,var(--card))}
/* End today's visit: two answers, then the fields for the chosen one. */
.job-end-outcome{grid-column:1/-1;min-width:0;margin:0;padding:0;border:0}
.job-end-outcome legend{padding:0;margin-bottom:9px;font-size:1rem;line-height:1.5;font-weight:600;color:var(--ink)}
.job-end-outcome>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.job-quick-scheduler .job-end-choice{display:flex;align-items:flex-start;gap:10px;min-height:56px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}
.job-quick-scheduler .job-end-choice>input{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:2px 0 0;padding:0;accent-color:var(--brand-ink)}
.job-end-choice>span{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.job-end-choice strong{color:var(--ink)}
.job-end-choice small{font-weight:400;color:var(--muted)}
.job-end-choice:has(input:checked){border-color:var(--brand-gold);background:color-mix(in srgb,var(--brand-gold) 12%,var(--card))}
[data-end-finished],[data-end-back]{grid-column:1/-1;display:grid;gap:12px;min-width:0}
[data-end-finished][hidden],[data-end-back][hidden]{display:none}
.job-end-note{margin:0;color:var(--muted);font-size:.9rem}
.job-return-notes,.job-booking-note{grid-column:1/-1;min-width:0}
.job-booking-note>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;color:var(--green);font-size:.875rem}
.job-booking-note>summary::-webkit-details-marker{display:none}
.job-booking-note>summary::after{content:'+';margin-left:auto}
.job-booking-note[open]>summary::after{content:'−'}
.job-booking-note>summary small{font-weight:400;color:var(--muted)}
.job-booking-note>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.job-booking-note>label{margin-top:8px}
.job-booking-summary{grid-column:1/-1;min-width:0;padding-bottom:8px;border-bottom:1px solid var(--line)}
.job-booking-summary>div>span,.job-booking-installer>span{font-size:.875rem;line-height:1.4;font-weight:600;color:var(--muted)}
.job-booking-summary p{margin:6px 0 2px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.6;color:var(--ink)}
.job-booking-summary>button{min-height:44px;text-align:left}
.job-booking-installer{display:grid;gap:5px;min-width:0}
.job-booking-installer>strong{display:flex;align-items:center;min-height:48px;font-size:1rem;font-weight:500;overflow-wrap:anywhere}
.job-booking-length{grid-column:1/-1;min-width:0}
.job-booking-length>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none;font-size:.875rem;color:var(--ink)}
.job-booking-length>summary::-webkit-details-marker{display:none}
.job-booking-length>summary small{color:var(--green)}
.job-booking-length>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.job-booking-length>label{max-width:280px;margin-top:6px}
.job-booking-finish{grid-column:1/-1;margin:-6px 0 0;color:var(--muted);font-size:.875rem;line-height:1.5}
.job-quick-scheduler input:focus,.job-quick-scheduler select:focus,.job-quick-scheduler textarea:focus{outline:2px solid color-mix(in srgb,var(--brand-gold) 45%,transparent);outline-offset:1px;border-color:var(--brand-gold)}
.job-quick-scheduler,.job-schedule-edit-form{align-items:start}
.booking-time-field [data-booking-time-preview]{font-size:.8125rem;line-height:1.5;color:var(--muted);font-weight:400}
.job-quick-availability{grid-column:1/-1;min-height:32px;display:flex;align-items:center;border-left:2px solid var(--line);padding:6px 0 6px 10px;color:var(--muted);font-size:.75rem;line-height:1.45}
.job-quick-availability.clear{border-left-color:var(--green);color:var(--green)}
.job-quick-availability.busy{border-left-color:var(--brand-gold);color:var(--ink)}
.job-quick-availability.warning{border-left-color:#a74c3d;background:#fff7f4;color:#7d3026;padding-right:10px}
.job-quick-availability.loading,.job-quick-availability.unavailable{color:var(--muted)}
.job-quick-actions{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:2px}
.job-quick-status{font-size:.875rem;line-height:1.5;color:var(--muted)}
.job-quick-status.success{color:var(--green)}
.job-quick-status.error{color:#8f3931}
.booking-day-preview{grid-column:1/-1;min-width:0;margin-top:-6px}
.booking-day-preview[hidden]{display:none}
.booking-day-heading{margin:4px 0;font-size:.875rem;line-height:1.5;font-weight:600;color:var(--ink)}
.booking-day-heading>small{display:block;font-size:.8125rem;font-weight:400;color:var(--muted)}
.booking-day-list{list-style:none;margin:0;padding:0}
.booking-day-list li{display:grid;grid-template-columns:124px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.booking-day-list li:last-child{border-bottom:0}
.booking-day-time{font-size:.875rem;font-variant-numeric:tabular-nums;line-height:1.5;overflow-wrap:anywhere}
.booking-day-customer{min-width:0}
.booking-day-customer strong{display:block;font-size:.875rem;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.booking-day-list small{display:block;color:var(--muted);font-size:.8125rem;line-height:1.5;overflow-wrap:anywhere}
.booking-day-list .booking-day-gap{margin-top:3px;color:var(--ink)}
.booking-day-more>summary{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;list-style:none;font-size:.875rem;color:var(--green)}
.booking-day-more>summary::-webkit-details-marker{display:none}
.booking-day-more>summary::after{content:'+';margin-left:auto}
.booking-day-more[open]>summary::after{content:'−'}
.booking-day-more>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:700px){
  .job-next-action{grid-template-columns:30px minmax(0,1fr);gap:12px 13px;padding:18px 17px 16px;margin-top:-10px;border-radius:9px}
  .job-next-marker{width:28px;height:28px;font-size:1.1rem}
  .job-next-copy>strong{font-size:1.05rem}
  .job-next-buttons,.job-next-waiting{grid-column:2;justify-self:start;margin-top:2px}
  .job-next-buttons{justify-content:flex-start}
  .job-next-button{width:auto}
  .job-next-error{grid-column:2}
  .job-journey{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:3px}
  .job-journey-stage b{padding-right:0;white-space:normal}
  .job-journey-stage:not(:last-child)::after{display:none}
  .job-quick-scheduler,.job-booking-stage{grid-template-columns:minmax(0,1fr);grid-column:1/-1}
  .job-quick-scheduler>*,.job-booking-stage>*{min-width:0}
  .job-quick-context,.job-quick-availability,.job-quick-actions{grid-column:1}
  .job-quick-context{display:grid;gap:2px}
  .job-quick-context>small{white-space:normal}
  .job-quick-actions .btn{min-height:44px}
}
@media(max-width:560px){.job-return-reasons>div,.job-end-outcome>div{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.job-next-action:not(.job-next-menu) .job-next-buttons{grid-column:1/-1;width:100%}.job-next-action:not(.job-next-menu) .job-next-buttons .job-next-button:only-child{width:100%}}
/* Optional install stage: a suggestion aid on the on-site visit, kept on this device only. */
.job-stage{grid-column:1/-1;order:-1;min-width:0;margin:0 0 14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.job-stage-title{margin:0 0 8px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.job-stage-title span{font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
.job-stage-chips{display:flex;flex-wrap:wrap;gap:8px}
.job-stage-chip{flex:1 1 auto;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-weight:600;line-height:1.25;cursor:pointer}
.job-stage-chip[aria-pressed="true"]{border-color:var(--brand-ink);background:var(--brand-ink);color:var(--brand-white)}
.job-stage-chip:focus-visible{outline:2px solid var(--brand-gold);outline-offset:2px}
.job-stage-hint{margin:8px 0 0;font-size:.85rem;line-height:1.45;color:var(--muted)}
@media(min-width:901px){.job-stage-chip{flex:0 0 auto;min-width:150px}}

/* Booking sheet: one-tap day and time choices. */
.booking-quick-days,.booking-quick-times{display:flex;flex-wrap:wrap;gap:8px}
.booking-quick-days button,.booking-quick-times button{min-height:44px;min-width:58px;padding:0 13px;border:1px solid var(--line,#d9ded6);border-radius:12px;background:var(--card,#fff);color:var(--ink,#202725);font:inherit;font-weight:600;font-size:15px}
.booking-quick-days button[aria-pressed="true"],.booking-quick-times button[aria-pressed="true"]{background:var(--brand-ink,#141515);border-color:var(--brand-ink,#141515);color:var(--brand-white,#f2eee5)}
.booking-date-field>span,.booking-time-field>span:first-child{font-size:13px;color:var(--muted,#65716a)}
/* Booking sheet, compact: days in a 3-column grid, times in one row, one full-width Book button. */
.booking-quick-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-quick-times{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.booking-quick-days button,.booking-quick-times button{min-width:0;padding:0 4px;font-size:14px;white-space:nowrap}
.job-booking-installer{display:flex;align-items:baseline;gap:8px}
.job-booking-installer>strong{min-height:0}
.job-quick-actions>button[type="submit"]{flex:1 1 100%;width:100%}
