/* StovePilot finishing details
   Last-mile polish for forms, dialogs, records and setup flows. */

::selection{background:color-mix(in srgb,var(--brand-gold) 28%,transparent);color:inherit}

/* New Job — quiet working form. */
.route-jobs .job-create-panel{
  max-width:900px;
  margin-inline:auto;
  padding:30px;
  border-radius:9px;
  border-color:var(--sp-shell-line,var(--line));
  background:color-mix(in srgb,var(--card) 96%,var(--bg));
  box-shadow:0 14px 40px rgba(20,21,21,.035);
}
.route-jobs .job-create-panel .section-head h2{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
}
.route-jobs .job-create-field>span{
  color:#505752;
  font-size:.78rem;
  font-weight:600;
}
.route-jobs .job-create-field input,
.route-jobs .job-create-field select,
.route-jobs .job-create-field textarea{
  border-radius:7px;
  border-color:color-mix(in srgb,var(--line) 90%,#aaa);
  background:color-mix(in srgb,var(--card) 80%,var(--bg));
}
.route-jobs .job-create-field input:focus,
.route-jobs .job-create-field select:focus,
.route-jobs .job-create-field textarea:focus{
  border-color:var(--brand-gold);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-gold) 11%,transparent);
}
.route-jobs .job-create-extras{border-color:var(--sp-shell-line,var(--line))}
.route-jobs .job-create-check{
  border-radius:7px;
  border-color:var(--sp-shell-line,var(--line));
  background:color-mix(in srgb,var(--brand-gold) 4%,var(--card));
}
.route-jobs .job-create-check input{accent-color:var(--brand-gold)}

/* Fast enquiry dialog — feels like a deliberate sheet, not a browser modal. */
.phone-enquiry-dialog{
  width:min(540px,calc(100% - 32px));
  border-radius:9px;
  border-color:color-mix(in srgb,var(--brand-gold) 24%,var(--line));
  background:#fbfaf7;
  box-shadow:0 28px 90px rgba(20,21,21,.25);
}
.phone-enquiry-dialog::backdrop{
  background:rgba(20,21,21,.54);
  backdrop-filter:blur(5px);
}
.phone-enquiry-dialog header h2{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-size:1.7rem;
  font-weight:500;
  letter-spacing:-.035em;
}
.phone-enquiry-recap{
  border-radius:7px;
  border-color:var(--sp-shell-line,var(--line));
  background:#f6f3ec;
}
.phone-enquiry-clear{color:#75613f}

/* Enquiry details — flatten nested mini cards. */
.route-enquiries .enquiry-detail-current,
.route-enquiries .enquiry-detail-form,
.route-enquiries .enquiry-detail-share{
  border-radius:7px;
  border-color:var(--sp-shell-line,var(--line));
  background:color-mix(in srgb,var(--card) 74%,var(--bg));
}
.route-enquiries .enquiry-detail-form{padding:15px}
.route-enquiries .enquiry-detail-form textarea,
.route-enquiries .enquiry-share-url{
  border-radius:6px;
  background:#fbfaf7;
}
.route-enquiries .enquiry-detail-chips b,
.route-enquiries .enquiry-detail-response-facts b{
  border-radius:999px;
  background:transparent;
  color:#686e69;
  font-weight:550;
}
.route-enquiries .enquiry-access.active{color:#80693e}

/* Evidence — calm record capture, not a file-upload widget. */
.route-jobs .evidence-file{
  border:1px solid var(--sp-shell-line,var(--line));
  border-left:2px solid var(--brand-gold);
  border-radius:0 7px 7px 0;
  background:color-mix(in srgb,var(--brand-gold) 3%,var(--card));
}
.route-jobs .evidence-file>span,
.route-jobs .evidence-capture-fields label>span{
  color:#6e6556;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.065em;
}
.route-jobs .evidence-capture-fields select,
.route-jobs .evidence-capture-fields input{
  border-radius:7px;
  background:#fbfaf7;
}
.route-jobs .evidence-capture-fields select:focus,
.route-jobs .evidence-capture-fields input:focus{
  border-color:var(--brand-gold);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-gold) 10%,transparent);
}
.route-jobs .evidence-prompt{
  border-radius:6px;
  padding:9px 11px;
  background:transparent;
  font-weight:550;
}
.route-jobs .evidence-capture-status{font-weight:500}

/* Completion / compliance — records, not green success widgets. */
.route-jobs .completion-record-head strong,
.route-jobs .completion-serial>span,
.route-jobs .compliance-followup-head strong{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
}
.route-jobs .completion-serial input,
.route-jobs .hetas-submit-form input{
  border-radius:7px;
  background:#fbfaf7;
}
.route-jobs .completion-serial input:focus,
.route-jobs .hetas-submit-form input:focus{
  outline:0;
  border-color:var(--brand-gold);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-gold) 10%,transparent);
}
.route-jobs .compliance-state{
  padding:0;
  border-radius:0;
  background:transparent!important;
  color:#7b7f7a!important;
  font-size:.7rem;
  font-weight:600;
}
.route-jobs .compliance-state::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:6px;
  border-radius:50%;
  background:#b8b7b0;
}
.route-jobs .compliance-state.pending::before{background:var(--brand-gold)}
.route-jobs .compliance-state.done::before{background:#668a78}
.route-jobs .compliance-toggle{
  border-radius:7px;
  background:transparent;
}
.route-jobs .compliance-submitted{
  border-radius:7px;
  border:1px solid color-mix(in srgb,var(--green) 18%,var(--line));
  background:color-mix(in srgb,var(--green-soft) 48%,var(--card));
}

/* Service / sweep records — one form language. */
.route-jobs .service-record-form input,
.route-jobs .service-record-form select,
.route-jobs .service-record-form textarea{
  border-radius:7px;
  background:#fbfaf7;
}
.route-jobs .service-record-form input:focus,
.route-jobs .service-record-form select:focus,
.route-jobs .service-record-form textarea:focus{
  outline:0;
  border-color:var(--brand-gold);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-gold) 10%,transparent);
}

/* Quote — numbers and appliance choice get the hierarchy. */
.route-jobs .job-quote-summary strong,
.route-jobs .job-quote-total strong{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  color:#3f3527;
  font-weight:500;
}
.route-jobs .job-quote-state{
  border-radius:999px;
  padding:4px 8px;
  font-size:.64rem!important;
}
.route-jobs .job-quote-appliance,
.route-jobs .job-quote-prior,
.route-jobs .job-quote-revision-note{
  background:color-mix(in srgb,var(--brand-gold) 4%,var(--card));
}
.route-jobs .quotepilot-quote-assist{
  padding:17px 0 3px;
  border:0;
  border-top:1px solid var(--sp-shell-line,var(--line));
  border-radius:0;
  background:transparent;
}
.route-jobs .quotepilot-quote-head strong{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-size:1rem;
  font-weight:500;
}
.route-jobs .job-quote-field input,
.route-jobs .job-quote-field textarea,
.route-jobs .quotepilot-quote-grid input,
.route-jobs .quotepilot-quote-grid select{
  border-radius:7px;
  background:#fbfaf7;
}
.route-jobs .quote-pricing-options{
  border-radius:7px;
  border-color:var(--sp-shell-line,var(--line));
}

/* Schedule edits stay inline and architectural. */
.route-jobs .job-schedule-edit-form{
  border-radius:0 7px 7px 0;
  background:color-mix(in srgb,var(--brand-gold) 3%,var(--card));
}
.route-jobs .job-schedule-edit-heading strong{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
}
.route-jobs .job-schedule-edit-form input:not([type="checkbox"]),
.route-jobs .job-schedule-edit-form select{
  border-radius:7px;
  background:#fbfaf7;
}

/* Fireplace Passport — more document, less widget. */
.route-jobs .passport-qr{border-radius:7px}
.route-jobs .passport-url{
  border-radius:7px;
  background:color-mix(in srgb,var(--card) 72%,var(--bg));
}
.route-jobs .passport-copy strong{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
}

/* Onboarding — confident but less showreel-like. */
.route-setup .onboarding-shell{max-width:1060px}
.route-setup .onboarding-brand img{
  border-radius:7px;
  box-shadow:none;
}
.route-setup .onboarding-brand span{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-size:1rem;
  font-weight:500;
  letter-spacing:.02em;
}
.route-setup .onboarding-hero{
  border-radius:10px;
  box-shadow:0 20px 54px rgba(20,21,21,.13);
}
.route-setup .onboarding-hero::before,
.route-setup .onboarding-hero::after{opacity:.45}
.route-setup .onboarding-hero h1{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
  letter-spacing:-.045em;
}
.route-setup .onboarding-stage{
  border-radius:9px;
  background:color-mix(in srgb,var(--card) 95%,var(--bg));
}
.route-setup .onboarding-stage-copy>span{
  border-radius:50%;
  background:#1a1b1b;
  color:var(--brand-gold);
}
.route-setup .onboarding-stage-copy h2{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
}
.route-setup .onboarding-capabilities label,
.route-setup .onboarding-radio-grid label{
  border-radius:7px;
  background:color-mix(in srgb,var(--card) 76%,var(--bg));
}
.route-setup .onboarding-capabilities label:has(input:checked),
.route-setup .onboarding-radio-grid label:has(input:checked){
  border-color:var(--brand-gold);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-gold) 60%,transparent);
}
.route-setup .onboarding-capabilities input,
.route-setup .onboarding-radio-grid input{accent-color:var(--brand-gold)}
.route-setup .onboarding-finish{
  border-radius:9px;
  box-shadow:0 16px 42px rgba(20,21,21,.09);
}

/* Password recovery uses the same front-door language as sign-in. */
.password-recovery-shell{background:rgba(20,21,21,.94)}
.password-recovery-card{
  border-radius:10px;
  border-color:rgba(199,167,106,.18);
  background:#1a1b1b;
  box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.password-recovery-brand{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-size:1rem;
  font-weight:500;
  letter-spacing:.02em;
}
.password-recovery-card h1{
  font-family:var(--sp-serif,Georgia,"Times New Roman",serif);
  font-weight:500;
  letter-spacing:-.035em;
}
.password-recovery-form input{border-radius:7px}

/* Consistent premium focus ring across the private app. */
.app-grid :is(input,select,textarea,button,a):focus-visible,
.phone-enquiry-dialog :is(input,select,textarea,button,a):focus-visible{
  outline-color:var(--brand-gold);
}

@media(max-width:720px){
  .route-jobs .job-create-panel{padding:21px 18px}
  .phone-enquiry-dialog{border-radius:8px}
  .route-setup .onboarding-hero{border-radius:8px}
  .route-setup .onboarding-stage{border-radius:8px}
  .password-recovery-card{padding:24px 20px;border-radius:8px}
}
