/* Customer primitives use the existing PIU contract in DESIGN.md. */
:root{--customer-width:720px;--customer-gap:24px;--customer-small:12px;--customer-control:44px;--customer-radius:4px}
.customer-entry{min-height:var(--customer-control);font:12px/1.4 var(--sans);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.experience-bar:has(.customer-entry){flex-wrap:wrap;column-gap:24px;row-gap:0}
#customer-dialog{width:min(var(--customer-width),calc(100% - 32px));max-width:none;max-height:90dvh;margin:auto;padding:32px;border:1px solid var(--silver);border-radius:var(--customer-radius);background:var(--paper);color:var(--ink);overflow:auto}
#customer-dialog::backdrop{background:color-mix(in srgb,var(--ink) 40%,transparent)}
.customer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--customer-small)}
.customer-head h2{font:600 28px/1.2 var(--sans);letter-spacing:-.03em}
.customer-close{flex-shrink:0;min-width:var(--customer-control);min-height:var(--customer-control);font-size:28px}
.customer-context{max-width:64ch;margin-top:var(--customer-small);font:12px/1.5 var(--sans);color:var(--muted)}
.customer-tabs{display:flex;gap:24px;border-bottom:1px solid var(--rule);margin-block:var(--customer-gap)}
.customer-tabs button{min-height:var(--customer-control);padding:8px 0;font-size:14px;border-bottom:2px solid transparent;white-space:nowrap}
.customer-tabs button[aria-selected=true]{border-color:var(--ink)}
.customer-panel h3{font-size:24px;line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--customer-small)}
.customer-panel p{font-size:14px;line-height:1.5}
.customer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:var(--customer-gap)}
.customer-fields label,.customer-review-form label{display:grid;gap:8px;font-size:12px;min-width:0}
.customer-fields input,.customer-fields select,.customer-review-form textarea,.customer-review-form select{width:100%;min-width:0;min-height:var(--customer-control);padding:12px;border:1px solid var(--silver);border-radius:var(--customer-radius);background:var(--paper);font-size:16px;color:var(--ink)}
.customer-fields .customer-wide{grid-column:1/-1}
.customer-postal{margin-top:var(--customer-gap);border-block:1px solid var(--rule);padding-block:12px}
.customer-postal summary{min-height:var(--customer-control);display:flex;align-items:center;cursor:pointer;font-size:14px}
.customer-choices{border:0;margin:24px 0;padding:0}
.customer-choices legend{font-size:14px;margin-bottom:8px}
.customer-choice-list{display:flex;flex-wrap:wrap;gap:8px 24px}
.customer-choice{display:flex;align-items:center;gap:8px;min-height:var(--customer-control);font-size:14px}
.customer-choice input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}
.customer-consent{border-top:1px solid var(--rule);padding-top:var(--customer-small);margin-top:var(--customer-gap)}
.customer-consent .customer-choice{align-items:flex-start;padding-block:12px}
.customer-consent .customer-choice input{margin-top:2px}
.customer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:var(--customer-gap)}
.customer-actions .pill,.customer-panel .pill{border-radius:var(--customer-radius);min-height:var(--customer-control)}
.customer-status{margin-top:var(--customer-small);font-size:12px!important;overflow-wrap:anywhere}
.customer-status:empty{display:none}
.customer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--customer-small);padding-block:var(--customer-gap);border-bottom:1px solid var(--rule)}
.customer-row h4{font:600 18px/1.3 var(--sans);margin:0 0 8px}
.customer-row p+p{margin-top:8px}
.customer-row .customer-terms{color:var(--muted);font-size:12px}
.customer-row .pill{align-self:start}
.customer-empty{padding-block:var(--customer-gap);color:var(--muted)}
.customer-review-form{border-bottom:1px solid var(--rule);padding-block:var(--customer-gap)}
.customer-review-form textarea{min-height:128px;resize:vertical}
.customer-rating{display:flex;flex-wrap:wrap;gap:12px;margin-block:12px}
.customer-rating label{display:flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;font-size:14px}
.customer-rating input{accent-color:var(--ink)}
.customer-message{margin-top:var(--customer-small);padding:16px;background:var(--panel);white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.6 var(--sans)}
.customer-cart-invite{border-top:1px solid var(--rule);margin-top:24px;padding-top:16px}
.customer-cart-invite p{font-size:12px;color:var(--muted)}
.customer-cart-invite button{min-height:var(--customer-control);font-size:12px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){#customer-dialog{width:calc(100% - 24px);padding:20px;max-height:calc(100dvh - 24px)}.customer-fields{grid-template-columns:1fr}.customer-tabs{gap:24px;justify-content:space-between}.customer-tabs button{font-size:12px}.customer-row{grid-template-columns:1fr}.customer-row .pill{justify-self:start}.experience-bar:has(.customer-entry){justify-content:flex-start;column-gap:16px}.experience-bar:has(.customer-entry)>span{flex-basis:100%;padding-top:8px}.customer-choice-list{gap:0 16px}}
.customer-offer-action{width:160px;max-width:100%;min-width:0}
.customer-row h4,.customer-row p,.customer-review-form h4,.customer-review-form p,.customer-choice{overflow-wrap:anywhere}
.customer-choice{min-width:0;max-width:100%}
@media(max-width:600px){.customer-offer-action{width:100%}}
