.form-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.45fr); gap:42px; align-items:start; }
.form-card { padding:30px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:#fff; box-shadow:var(--shadow-sm); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.form-field { display:grid; gap:7px; }
.form-field--full { grid-column:1 / -1; }
.form-field label, .form-label { color:var(--color-primary); font-size:var(--text-sm); font-weight:700; }
.form-control { width:100%; min-height:46px; border:1px solid var(--color-border-strong); border-radius:var(--radius-md); background:#fff; padding:10px 12px; outline:none; }
textarea.form-control { min-height:140px; resize:vertical; }
.form-control:focus { border-color:var(--color-secondary); box-shadow:0 0 0 3px rgba(29,88,184,.1); }
.form-help { color:var(--color-neutral); font-size:var(--text-xs); }
.form-side { display:grid; gap:18px; }
.form-side__card { padding:24px; border-radius:var(--radius-lg); background:var(--color-primary); color:#fff; }
.form-side__card p { margin-top:8px; color:rgba(255,255,255,.72); }
.form-choice { display:flex; flex-wrap:wrap; gap:14px; }
.form-choice label { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--color-border); border-radius:var(--radius-md); }
@media (max-width:850px) { .form-shell { grid-template-columns:1fr; } }
@media (max-width:600px) { .form-grid { grid-template-columns:1fr; } .form-field--full { grid-column:auto; } .form-card { padding:22px; } }

/* Phase 5: quote interaction */
.quote-summary {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.quote-summary__row {
  display: grid;
  gap: 3px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--color-border);
}

.quote-summary__row:last-child {
  border-bottom: 0;
}

.quote-summary__row span {
  color: var(--color-neutral);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.quote-summary__row strong {
  color: var(--color-primary);
}

.quote-summary__row--total {
  background: rgba(29, 88, 184, .06);
}

.quote-summary__row--total strong {
  color: var(--color-secondary);
  font-family: var(--font-heading);
  font-size: var(--text-lg);
}

.form-status {
  border: 1px solid rgba(29, 88, 184, .22);
  border-radius: var(--radius-md);
  background: rgba(29, 88, 184, .06);
  padding: 12px 14px;
  color: var(--color-primary);
  font-size: var(--text-sm);
}
