.wizard { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 22px; }
.wizard-step { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; font-weight:700; padding:10px 12px; min-height:44px; background:#f8fafc; border:1px solid transparent; border-radius:8px; }
button.wizard-step { color:var(--muted); background:#f8fafc; border-color:transparent; }
.wizard-step:hover { color:var(--brand-dark); background:var(--brand-soft); border-color:#c7d7fe; }
.wizard-step.is-current { color:var(--brand-dark); background:var(--brand-soft); border-color:#c7d7fe; }
.wizard-number { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#d0d5dd; color:#344054; font-size:12px; flex:0 0 auto; }
.is-current .wizard-number { background:var(--brand); color:#fff; }
.wizard-actions { align-items:center; }
.wizard-spacer { flex:1; }
.wizard-panel { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:24px; box-shadow:var(--shadow); }
.wizard-panel + .wizard-panel { margin-top:16px; }
.wizard-panel > .card-heading { padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line); }


.quote-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:18px; }
.quote-choice-button { display:flex; width:100%; min-height:132px; flex-direction:column; align-items:flex-start; justify-content:center; gap:6px; padding:22px; border:2px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; white-space:normal; overflow-wrap:anywhere; }
.quote-choice-button:hover,.quote-choice-button:focus-visible { border-color:var(--brand); background:var(--brand-soft); color:var(--ink); }
.quote-choice-button.is-selected { border-color:var(--brand); background:var(--brand-soft); box-shadow:0 0 0 3px var(--brand-glow); }
.quote-choice-button strong { color:var(--brand-dark); font-size:17px; }
.quote-choice-button span { color:var(--muted); font-size:13px; font-weight:400; }
.quote-act-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.quote-act-button { display:grid; width:100%; min-height:92px; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:14px; padding:15px 16px; border:2px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; white-space:normal; overflow-wrap:anywhere; transition:border-color .15s,background .15s,box-shadow .15s,transform .15s; }
.quote-act-button:hover,.quote-act-button:focus-visible { border-color:var(--brand); background:var(--brand-soft); box-shadow:0 4px 12px rgb(16 24 40 / 8%); transform:translateY(-1px); }
.quote-act-button.is-selected { border-color:var(--brand); background:var(--brand-soft); box-shadow:0 0 0 3px var(--brand-glow); }
.quote-act-code { display:grid; width:40px; height:40px; place-items:center; border-radius:10px; background:#eef2ff; color:var(--brand-dark); font-size:14px; font-weight:850; letter-spacing:.04em; }
.quote-act-button.is-selected .quote-act-code { background:var(--brand); color:#fff; }
.quote-act-group { padding:16px; border:1px solid var(--line); border-radius:14px; background:#fbfcff; }
.quote-act-group-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0; padding:0 2px 11px; border-bottom:1px solid #c7d7fe; color:var(--brand-dark); }
.quote-act-group-heading h3 { margin:0; font-size:15px; letter-spacing:-.01em; }
.quote-act-group-heading span { color:var(--muted); font-size:12px; font-weight:600; white-space:nowrap; }
.quote-act-group .quote-act-grid { margin-top:12px; }
.quote-act-copy { display:flex; min-width:0; flex-direction:column; gap:3px; }
.quote-act-copy strong { color:var(--ink); font-size:14px; line-height:1.35; }
.quote-act-copy small { color:var(--muted); font-size:12px; line-height:1.3; }
.quote-act-copy small + small { color:#98a2b3; }
.quote-act-arrow { color:var(--brand); font-size:20px; line-height:1; }
.quote-act-list { display:grid; gap:16px; }
.quote-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0; }
.quote-summary div { padding:14px; border-radius:10px; background:var(--subtle); }
.quote-summary dt { color:var(--muted); font-size:12px; }
.quote-summary dd { margin:3px 0 0; font-weight:750; }
.people-editor { display:grid; gap:12px; }
.person-editor-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; align-items:end; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.person-card-heading { grid-column:1 / -1; color:var(--brand-dark); font-size:13px; font-weight:800; }
.person-editor-row .field { margin:0; }
.party-customer-picker { position:relative; grid-column:1 / -1; width:100%; }
.party-customer-picker > label { display:block; margin-bottom:4px; font-size:13px; font-weight:700; }
.party-customer-picker [data-party-search] { width:100%; }
.party-customer-results { position:absolute; top:calc(100% + 4px); left:0; width:100%; max-height:280px; margin:0; z-index:10; }
.party-customer-row:has(.customer-results:not([hidden])) { position:relative; z-index:11; }
.party-customer-row .customer-selected { margin-top:0; min-height:42px; }
.notarial-party-panel { margin-top:20px; padding:20px; border:1px solid #c7d7fe; border-left:4px solid var(--brand); border-radius:12px; background:#f8faff; }
.notarial-party-panel h3 { margin:0 0 6px; }
.notarial-party-panel > p { margin:0 0 12px; color:var(--muted); font-size:13px; }
.quick-customer-error { margin:0 0 12px; }
.quote-parties-error { margin:16px 0 0; }
@media (max-width:900px) { .quote-act-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { .quote-choice-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .person-editor-row { grid-template-columns:1fr; } .quote-summary { grid-template-columns:1fr; } .quote-act-grid { grid-template-columns:1fr; } }

.wizard { grid-template-columns:repeat(var(--wizard-columns,3),1fr); gap:10px; }
.wizard-step { min-height:52px; padding:10px 14px; border:1px solid #e4e7ec; border-radius:10px; background:#fff; transition:background .15s,border-color .15s,box-shadow .15s,color .15s; }
.wizard-step:not(.is-current):not(.is-complete) { color:#667085; background:#f8fafc; }
.wizard-step:not(.is-current):not(.is-complete):not(:disabled):hover { color:var(--brand-dark); background:#f1f4ff; border-color:#c7d7fe; }
.wizard-step.is-complete:not(.is-current) { color:#087443; background:#f0fdf4; border-color:#86efac; }
.wizard-step.is-complete:not(.is-current) .wizard-number { background:#16a34a; color:#fff; }
.wizard-step.is-current { color:var(--brand-dark); background:var(--brand-soft); border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-glow); font-weight:800; }
.wizard-step.is-current .wizard-number { background:var(--brand); color:#fff; box-shadow:0 0 0 3px #dbe4ff; }
.wizard-step:disabled { color:#98a2b3; background:#f2f4f7; border-color:#eaecf0; cursor:not-allowed; opacity:1; }
.wizard-step:disabled .wizard-number { background:#e4e7ec; color:#98a2b3; }
@media (max-width:760px) { .wizard { grid-template-columns:repeat(2,1fr); } }
