/* Isolated add-on styles. Existing Vesta source files remain unchanged. */
.form-shell{max-width:64rem}
.field-wide{grid-column:1/-1}
.form-progress{gap:var(--s4)}
.form-progress li{padding:0}
.form-progress button{appearance:none;min-height:44px;border:0;background:transparent;color:inherit;font:inherit;padding:var(--s2) 0;cursor:pointer}
.form-progress button:disabled{cursor:not-allowed;opacity:.55}
.form-progress button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.form-progress li.is-complete{border-color:var(--line)}
.form-progress li[aria-current=step]{border-color:var(--accent);font-weight:600}
.form-step>h2{font-size:var(--step-3);margin-bottom:var(--s6)}
.form-step>.label{margin-bottom:var(--s3)}
.carpet-form fieldset{margin-bottom:var(--s7)}
.section-hint{max-width:64ch;margin:-.5rem 0 var(--s5)}
.field-label{display:block;font-weight:600;line-height:1.4;margin:0 0 var(--s3)}
.fibre-grid{margin-bottom:var(--s6)}
.fibre-grid .choice{min-height:8.5rem}
.condition-grid{margin-top:var(--s5)}
.issue-field{margin-top:var(--s6)}
.issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3) var(--s5)}
.issue-grid label,.radio-stack label{display:flex;align-items:flex-start;gap:var(--s3);min-height:44px;padding:.625rem 0;cursor:pointer}
.issue-grid input,.radio-stack input{width:20px;height:20px;flex:none;margin:.1rem 0 0;accent-color:var(--accent)}
.risk-note{border-left:3px solid var(--accent);padding:var(--s3) var(--s4);margin-top:var(--s3);color:var(--text)}
.choice-stack{display:grid;grid-template-columns:1fr;gap:var(--s3)}
.choice-stack .choice{min-height:auto}
.permission-confirmation{margin-top:var(--s5);border-left:3px solid var(--accent);padding:var(--s5);background:var(--surface-2)}
.consent-check{display:flex;align-items:flex-start;gap:var(--s3);font-weight:600;line-height:1.5;cursor:pointer}
.consent-check input{width:20px;height:20px;flex:none;margin:.15rem 0 0;accent-color:var(--accent)}
.permission-confirmation>.field-hint{display:block;margin:var(--s3) 0 var(--s5)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:start;margin-top:var(--s6)}
.nested-fieldset{margin:0!important}
.nested-fieldset legend{font-size:1rem!important;margin-bottom:var(--s2)!important}
.step-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--rule)}
.step-actions .btn:only-child{margin-left:auto}
.step-actions .btn{cursor:pointer}
.photo-uploader{border:1px solid var(--line);border-radius:var(--r1);padding:var(--s5);background:var(--surface-2)}
.photo-uploader>#add-photo{margin-right:var(--s3)}
.photo-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s5)}
.photo-preview{position:relative;min-width:0;border:1px solid var(--rule);border-radius:var(--r1);overflow:hidden;background:var(--surface)}
.photo-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.photo-preview-info{padding:var(--s3)}
.photo-preview-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--step--1)}
.photo-preview button{appearance:none;border:0;background:transparent;color:var(--accent);font:600 var(--step--1)/1.4 var(--f-body);text-decoration:underline;padding:var(--s2) 0;cursor:pointer}
.review-card{margin-top:var(--s6);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-2)}
.review-card>section{padding:var(--s5);border-bottom:1px solid var(--rule)}
.review-card>section:last-child{border-bottom:0}
.review-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s4)}
.review-heading h3{font-size:var(--step-1)}
.text-button{appearance:none;border:0;background:transparent;color:var(--accent);font:600 1rem/1.4 var(--f-body);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;padding:var(--s2)}
.review-card dl{margin:0}
.review-card dl>div{display:grid;grid-template-columns:8rem 1fr;gap:var(--s4);padding:var(--s3) 0;border-bottom:1px solid var(--rule)}
.review-card dl>div:last-child{border-bottom:0}
.review-card dt{color:var(--text-r)}
.review-card dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.form-failure{border:1px solid var(--error);padding:var(--s4);color:var(--error)}

/* Confirmation page */
.received-wrap{max-width:52rem}
.received-wrap h1{max-width:16ch}
.reference-card{margin:var(--s7) 0;border:1px solid var(--line);border-radius:var(--r1);padding:var(--s6);background:var(--surface-2)}
.reference-card .label{margin-bottom:var(--s3)}
.reference-number{font-family:var(--f-mono);font-size:var(--step-1);letter-spacing:.06em;margin:0;overflow-wrap:anywhere}
.received-steps{counter-reset:received;list-style:none;padding:0;margin:var(--s7) 0;border-top:1px solid var(--line)}
.received-steps li{counter-increment:received;display:grid;grid-template-columns:3rem 1fr;gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--rule)}
.received-steps li::before{content:counter(received,decimal-leading-zero);font-family:var(--f-mono);font-size:var(--step--1);color:var(--text-r);padding-top:.2rem}
.received-steps b{display:block;margin-bottom:var(--s2)}
.received-steps p{margin:0;color:var(--text-r)}
.receipt-summary{margin:var(--s6) 0;padding:var(--s5);border-left:3px solid var(--accent);background:var(--surface-2)}
.receipt-summary h2{font-size:var(--step-1);margin-bottom:var(--s4)}
.receipt-summary dl{margin:0}
.receipt-summary div{display:grid;grid-template-columns:8.5rem 1fr;gap:var(--s4);padding:var(--s3) 0;border-bottom:1px solid var(--rule)}
.receipt-summary div:last-child{border-bottom:0}
.receipt-summary dt{color:var(--text-r)}
.receipt-summary dd{margin:0;font-weight:600}
.received-actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin-top:var(--s6)}

@media(max-width:39.99rem){
  .form-progress{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
  .form-step>h2{font-size:var(--step-2)}
  .issue-grid,.contact-grid{grid-template-columns:1fr}
  .fibre-grid .choice{min-height:auto}
  .permission-confirmation{padding:var(--s4)}
  .photo-previews{grid-template-columns:1fr 1fr}
  .step-actions{align-items:stretch}
  .step-actions .btn{flex:1;padding-inline:var(--s3)}
  .review-card dl>div{grid-template-columns:1fr;gap:var(--s1)}
  .reference-card{padding:var(--s5)}
  .receipt-summary div{grid-template-columns:1fr;gap:var(--s1)}
  .received-actions{align-items:stretch}
  .received-actions .btn{width:100%}
}
