/* client preview layer (row 170) — direction A, picked by Sami 2026-10-04: a note button under every part.
   Sits on a copy of client; client itself is never edited. Uses client's own tokens. */
.pv-strip{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:10px;
  padding:8px 10px 8px 14px;background:var(--pv-accent);color:var(--pv-on-accent);font:600 13px/1.25 var(--pv-body-font)}
.pv-strip .pv-what{flex:1;min-width:0}
.pv-strip .pv-what{text-wrap:pretty}
.pv-strip .pv-what b{display:block;font:400 15px/1.05 var(--pv-heading-font);letter-spacing:.06em;text-transform:uppercase}
.pv-strip button{flex:none;min-height:40px;padding:0 14px;border:0;border-radius:999px;background:var(--pv-on-accent);
  color:var(--pv-text);font:600 14px/1 var(--pv-body-font);cursor:pointer}
.pv-strip button:focus-visible{outline:2px solid var(--pv-on-accent);outline-offset:2px}

/* A · a note button under every section heading */
/* Beat client descendant rules such as .hours div without adding decoration or line-box space. */
.pv-pin-row.pv-pin-row{display:block;flex:0 0 auto;grid-column:1/-1;width:100%;margin:0;padding:0;border:0;
  background:transparent;font:inherit;line-height:0;letter-spacing:inherit;text-transform:inherit;text-align:left}
.pv-pin{display:inline-flex;align-items:center;gap:6px;margin:12px 0 0;min-height:40px;padding:0 14px;
  border:1px dashed var(--pv-accent);border-radius:999px;background:var(--pv-bg);color:var(--pv-accent);
  font:600 14px/1 var(--pv-body-font);cursor:pointer}
/* 244 · an opaque --pv-bg pill: a pin on a client's light card (El Tranvía's cream specials) read 1.25:1 on transparent — walk C4 */
.pv-pin.has{border-style:solid;background:color-mix(in srgb,var(--pv-accent) 16%,var(--pv-bg))}
.pv-pin:focus-visible{outline:2px solid var(--pv-accent);outline-offset:2px}
.hero .pv-pin{position:relative;z-index:5}

/* the sheet (shared) */
.pv-sheet{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center}
.pv-sheet[hidden]{display:none!important}
.pv-back{position:absolute;inset:0;background:color-mix(in srgb,var(--pv-bg) 80%,transparent)}
.pv-panel{position:relative;width:100%;max-width:520px;max-height:min(90dvh,760px,var(--pv-view-height,100dvh));overflow:auto;overscroll-behavior:contain;box-sizing:border-box;
  background:var(--pv-surface);border:1px solid var(--pv-border);border-bottom:0;border-radius:14px 14px 0 0;
  padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(0,0,0,.6);
  animation:pvUp .22s ease-out}
@keyframes pvUp{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
/* P4 · the sheet's heading + close stay at the top and Save stays at the bottom while the answers scroll */
.pv-head{position:sticky;top:-16px;z-index:2;margin:-16px -16px 0;padding:16px 16px 4px;background:var(--pv-surface)}
.pv-panel.fin .pv-head{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--pv-border)}
.pv-panel.fin .pv-head + .pv-sub{margin-top:0}
.pv-foot{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));z-index:2;margin:16px -16px calc(-18px - env(safe-area-inset-bottom));
  padding:10px 16px calc(14px + env(safe-area-inset-bottom));background:var(--pv-surface);border-top:1px solid var(--pv-border)}
.pv-foot .pv-main{margin:0}
.pv-foot .pv-saved{margin:0 0 10px}
.pv-panel h3{margin:0 44px 0 0;font:400 22px/1.1 var(--pv-heading-font);letter-spacing:.03em;text-transform:uppercase;color:var(--pv-text)}
.pv-sub{margin:4px 0 12px;color:var(--pv-muted);font:14px/1.45 var(--pv-body-font)}
.pv-h4{margin:24px 0 4px;color:var(--pv-accent);font:400 17px/1.1 var(--pv-heading-font);letter-spacing:.05em;text-transform:uppercase}
.pv-x{position:absolute;top:6px;right:6px;width:44px;height:44px;border:0;background:transparent;color:var(--pv-muted);
  font-size:28px;line-height:1;cursor:pointer}
.pv-ta,.pv-in{display:block;width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--pv-border);
  border-radius:10px;background:var(--pv-bg);color:var(--pv-text);font:16px/1.4 var(--pv-body-font)}
.pv-ta{min-height:100px;resize:vertical}
.pv-ta.sm{min-height:50px}
.pv-ta:focus,.pv-in:focus{outline:2px solid var(--pv-accent);outline-offset:1px}
.pv-q{display:block;margin:12px 0 0}
.pv-q span{display:block;margin:0 0 5px;color:var(--pv-text);font:600 14.5px/1.3 var(--pv-body-font)}
.pv-main{display:block;width:100%;min-height:54px;margin:20px 0 0;border:0;border-radius:12px;
  background:linear-gradient(180deg,var(--pv-action-hi),var(--pv-action));color:var(--pv-on-accent);
  font:400 21px/1 var(--pv-heading-font);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.pv-main:focus-visible{outline:2px solid var(--pv-accent);outline-offset:2px}
.pv-main[disabled]{filter:grayscale(.6) brightness(.8);cursor:wait}
.pv-ghost{min-height:44px;padding:0 16px;border:1px solid var(--pv-border);border-radius:999px;background:transparent;
  color:var(--pv-text);font:600 14px/1 var(--pv-body-font);cursor:pointer}
.pv-saved{margin:12px 0 0;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--pv-success) 18%,var(--pv-bg));
  color:var(--pv-text);font:15px/1.45 var(--pv-body-font)}
.pv-saved b{display:block;font-weight:700}
.pv-list{margin:6px 0 0;padding:0;list-style:none}
.pv-list li{padding:9px 0;border-top:1px solid var(--pv-border);color:var(--pv-text);font:14px/1.4 var(--pv-body-font);overflow-wrap:anywhere}
.pv-list li b{display:block;color:var(--pv-accent);font-weight:600;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
.pv-list .pv-none{color:var(--pv-muted)}
.pv-ask{margin:4px 0 12px;color:var(--pv-text);font:700 14.5px/1.4 var(--pv-body-font);overflow-wrap:anywhere}
.pv-ask-row{margin:12px 0 0;padding:12px 0;border-top:1px solid var(--pv-border)}
.pv-answer-text{margin:0 0 12px;color:var(--pv-text);font:14px/1.4 var(--pv-body-font);white-space:pre-wrap;overflow-wrap:anywhere}
.pv-answer{max-width:100%;height:auto;padding:12px 16px;line-height:1.3;text-align:left;overflow-wrap:anywhere}

/* domain picker */
.pv-taken{margin:6px 0 12px;padding:10px 12px;border-left:3px solid var(--pv-action);background:var(--pv-bg);
  color:var(--pv-text);font:14px/1.5 var(--pv-body-font)}
.pv-doms{display:grid;gap:8px}
.pv-dom{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;width:100%;min-height:52px;padding:8px 14px;box-sizing:border-box;
  border:1px solid var(--pv-border);border-radius:12px;background:var(--pv-bg);color:var(--pv-text);
  font:600 16px/1.2 var(--pv-body-font);text-align:left;cursor:pointer}
/* 244 · at 320 an offered name keeps one line and its status drops under it (basis auto, so the wrap sees the name's width; flex:1 is basis 0 and
   let the name break mid-word instead); anywhere stays as the last resort for a 63-char typed name */
.pv-dom .d{flex:1 1 auto;min-width:min(100%,14ch);overflow-wrap:anywhere}
.pv-dom .st{flex:none;font:600 11.5px/1 var(--pv-body-font);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-success-text)}
.pv-dom.taken{opacity:.6;cursor:default}
.pv-dom.taken .st{color:var(--pv-action-hi)}
.pv-dom[aria-pressed="true"]{border-color:var(--pv-accent);background:color-mix(in srgb,var(--pv-accent) 15%,var(--pv-bg))}
.pv-dom[aria-pressed="true"] .st{color:var(--pv-accent)}
.pv-search{display:flex;gap:8px;margin:12px 0 0}
.pv-search .pv-in{flex:1;min-width:0}
.pv-res .pv-dom{margin:8px 0 0}
.pv-fine{margin:8px 0 0;color:var(--pv-muted);font:13px/1.45 var(--pv-body-font)}
.pv-toast{position:fixed;left:50%;bottom:150px;z-index:80;transform:translateX(-50%);padding:10px 16px;border-radius:16px;
  background:var(--pv-text);color:var(--pv-on-accent);font:600 14px/1.2 var(--pv-body-font);box-shadow:0 8px 24px rgba(0,0,0,.5);
  white-space:normal;width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;text-align:center}
.pv-saved.no{background:color-mix(in srgb,var(--pv-action) 22%,var(--pv-bg))}

/* P4 · photos: thumbnails with a take-out ×, and one add button (the file input sits inside its label) */
.pv-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:4px 0 10px}
.pv-pic{position:relative;margin:0;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--pv-bg);border:1px solid var(--pv-border)}
.pv-pic img{display:block;width:100%;height:100%;object-fit:cover}
.pv-rm{position:absolute;z-index:1;top:2px;right:2px;width:40px;height:40px;border:0;border-radius:999px;background:transparent;
  color:#fff;font:600 22px/1 var(--pv-body-font);cursor:pointer}
.pv-rm::before{content:"";position:absolute;inset:7px;z-index:-1;border-radius:999px;background:rgba(0,0,0,.66)}
.pv-rm:focus-visible{outline:2px solid var(--pv-accent);outline-offset:-2px}
.pv-sent{position:absolute;left:4px;bottom:4px;padding:3px 6px;border-radius:6px;background:rgba(0,0,0,.66);
  color:var(--pv-success-text);font:600 10.5px/1 var(--pv-body-font);letter-spacing:.08em;text-transform:uppercase}
.pv-add{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:160px;min-height:44px;
  padding:0 16px;box-sizing:border-box;border:1px solid var(--pv-border);border-radius:999px;color:var(--pv-text);font:600 14px/1 var(--pv-body-font);cursor:pointer}
.pv-add input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.pv-add:focus-within{outline:2px solid var(--pv-accent);outline-offset:2px}
/* 170.5a · his own names, under the search */
.pv-mine{margin-top:4px}
.pv-mine .pv-dom{margin-top:8px}

/* 170.8 · what the chat answers: the button in The chat, and the sheet's question/reply pairs (its own classes,
   so client's chat CSS can change without moving this) */
.pv-samples{margin:4px 0 2px}
.pv-chat{display:flex;flex-direction:column;gap:14px;margin:4px 0 0}
.pv-pair{display:flex;flex-direction:column;gap:6px}
.pv-pair .q,.pv-pair .a{max-width:86%;margin:0;padding:10px 13px;box-sizing:border-box;font:15px/1.45 var(--pv-body-font);
  overflow-wrap:anywhere}
.pv-pair .q{align-self:flex-end;background:var(--pv-text);color:var(--pv-bg);border-radius:14px 3px 14px 14px}
.pv-pair .a{align-self:flex-start;background:var(--pv-card);border:1px solid var(--pv-border);color:var(--pv-text);
  border-radius:3px 14px 14px 14px;white-space:pre-line}
.pv-pair .a b{display:block;margin:0 0 4px;color:var(--pv-muted);font:600 11.5px/1.2 var(--pv-body-font);letter-spacing:.12em;
  text-transform:uppercase}
.pv-pair .pv-phone{white-space:nowrap}
.pv-pair .pv-fine{max-width:86%;margin:0}
