.finder-shell { max-width:1000px; padding-block:3.5rem 5rem; }
.finder-header { text-align:center; max-width:680px; margin:0 auto 2.5rem; }
.finder-header h1 { font:400 clamp(2.25rem,4vw,3rem)/1.1 var(--font-display); margin-bottom:1rem; }
.finder-header > p:not(.section-eyebrow) { color:var(--text-muted); line-height:1.8; }
.finder-disclosure { display:block; font-size:.8125rem; color:var(--text-muted); margin-top:.75rem; }

.finder-chat { background:var(--surface); border:1px solid var(--border); padding:2rem; }
.finder-thread { display:flex; flex-direction:column; gap:1.25rem; }
.finder-msg { display:flex; gap:.75rem; align-items:flex-start; scroll-margin-top:140px; }
.finder-avatar { flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--surface-2); border:1px solid var(--border); color:var(--accent-dark); display:grid; place-items:center; font-size:.875rem; }
.finder-bubble { min-width:0; font-size:.9375rem; line-height:1.75; }
.finder-bubble p + p { margin-top:.5rem; }
.finder-msg--ai .finder-bubble { flex:1; padding-top:.3rem; }
.finder-msg--user { justify-content:flex-end; }
.finder-msg--user .finder-bubble { max-width:80%; background:var(--surface-2); border:1px solid var(--border-light); padding:.75rem 1.1rem; border-radius:18px 18px 4px 18px; white-space:pre-wrap; overflow-wrap:anywhere; }
.finder-response { white-space:pre-wrap; }
.finder-msg--error .finder-bubble { color:var(--text-muted); }
.finder-msg--error .text-link { margin-top:.5rem; }

.finder-typing { display:inline-flex; gap:.3rem; padding:.6rem 0; }
.finder-typing > span:not(.sr-only) { width:6px; height:6px; border-radius:50%; background:var(--accent); animation:finderDot 1.2s infinite ease-in-out; }
.finder-typing > span:nth-child(2) { animation-delay:.15s; }
.finder-typing > span:nth-child(3) { animation-delay:.3s; }
@keyframes finderDot { 0%,80%,100% { opacity:.25; transform:translateY(0); } 40% { opacity:1; transform:translateY(-3px); } }
@media(prefers-reduced-motion:reduce) { .finder-typing > span:not(.sr-only) { animation:none; opacity:.6; } }

.finder-suggestions { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.75rem 0 0 calc(34px + .75rem); }
.finder-suggestions[hidden] { display:none; }
.finder-suggestions-label { width:100%; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.finder-chip { min-height:44px; padding:.5rem 1rem; border:1px solid var(--border); border-radius:999px; background:var(--surface); font:inherit; font-size:.8125rem; color:var(--text); cursor:pointer; text-align:left; transition:background .15s,border-color .15s; }
.finder-chip:hover { background:var(--surface-2); border-color:var(--accent-dark); }
.finder-chip:focus-visible { outline:2px solid var(--accent-dark); outline-offset:2px; }
.finder-chip:disabled { opacity:.5; cursor:default; }

.finder-composer { display:flex; align-items:flex-end; gap:.5rem; margin-top:1.75rem; border:1px solid var(--border); background:var(--surface); padding:.5rem .5rem .5rem 1rem; transition:border-color .15s; }
.finder-composer:focus-within { border-color:var(--accent-dark); }
.finder-composer textarea { flex:1; min-width:0; border:0; outline:0; resize:none; background:transparent; font:inherit; font-size:1rem; line-height:1.5; padding:.6rem 0; min-height:44px; max-height:160px; field-sizing:content; }
.finder-send { flex-shrink:0; width:44px; height:44px; border:0; background:var(--accent-dark); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background .15s; }
.finder-send:hover:not(:disabled) { background:var(--accent); }
.finder-send:disabled { opacity:.4; cursor:default; }
.finder-send:focus-visible { outline:2px solid var(--accent-dark); outline-offset:2px; }
.finder-chat-footer { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.75rem; font-size:.8125rem; }
.finder-limit { color:var(--text-muted); }
.finder-chat-footer .text-link { margin-left:auto; }

.finder-exit { text-align:center; margin-top:2rem; font-size:.875rem; color:var(--text-muted); }
.finder-exit a, .finder-sample-note a { text-decoration:underline; text-underline-offset:4px; }

.finder-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.25rem; }
.finder-match { background:var(--surface); border:1px solid var(--border-light); display:flex; flex-direction:column; min-width:0; }
.finder-match-image { position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:var(--surface-2); }
.finder-match-image img { width:100%; height:100%; object-fit:cover; }
.finder-match-image > span { position:absolute; top:.6rem; left:.6rem; background:var(--surface); padding:.3rem .55rem; font-size:.6875rem; }
.finder-match-body { padding:1.1rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.finder-match-body h3 { font:400 1.5rem/1.2 var(--font-display); }
.finder-match-body p { font-size:.8125rem; line-height:1.7; }
.finder-match-notes { color:var(--text-muted); }
.finder-match-body .btn { margin-top:auto; padding-inline:.75rem; font-size:.6875rem; }
.finder-match-body .text-link { font-size:.75rem; }
.finder-sample-note { background:var(--surface-2); padding:1rem 1.25rem; font-size:.8125rem; margin-top:1rem; }

.finder-gender { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem; }
.finder-save { margin-top:1.75rem; border:1px solid var(--border); border-top:2px solid var(--accent); background:var(--surface-2); padding:1.5rem; }
.finder-save[hidden], .finder-save-form[hidden] { display:none; }
.finder-save-intro h2 { font:400 1.5rem/1.2 var(--font-display); margin-bottom:.35rem; }
.finder-save-intro p { font-size:.875rem; line-height:1.7; color:var(--text-muted); }
.finder-save-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto; gap:.5rem; margin-top:1rem; }
.finder-save-form input { min-height:48px; border:1px solid var(--border); background:var(--surface); padding:.6rem .9rem; font:inherit; font-size:1rem; color:var(--text); }
.finder-save-form input:focus { outline:0; border-color:var(--accent-dark); }
.finder-save-form .btn { min-height:48px; white-space:nowrap; }
.finder-save-status { font-size:.875rem; margin-top:.6rem; }
.finder-save-status:empty { display:none; }
.finder-save-status.is-success { color:var(--success); }
.finder-save-status.is-error { color:var(--error); }
.finder-fav { grid-column:1/-1; border:0; padding:0; margin:0 0 .5rem; min-width:0; }
.finder-fav legend { font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); margin-bottom:.5rem; }
.finder-fav-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
.finder-fav-option { display:flex; align-items:center; gap:.6rem; min-height:56px; padding:.4rem .6rem; border:1px solid var(--border); background:var(--surface); cursor:pointer; font-size:.875rem; transition:border-color .2s; }
.finder-fav-option:hover { border-color:var(--accent-light); }
.finder-fav-option:has(input:checked) { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.finder-save-form .finder-fav-option input { min-height:0; padding:0; border:0; accent-color:var(--accent); width:18px; height:18px; flex:none; margin:0; }
.finder-fav-option img { width:40px; height:40px; object-fit:cover; flex:none; background:var(--surface-2); }
.finder-fav-option span { min-width:0; overflow-wrap:anywhere; }
.finder-consent { grid-column:1/-1; display:flex; align-items:flex-start; gap:.6rem; min-height:44px; padding-top:.35rem; font-size:.8125rem; line-height:1.5; color:var(--text-muted); cursor:pointer; }
.finder-save-form .finder-consent input { min-height:0; padding:0; border:0; accent-color:var(--accent); width:18px; height:18px; flex:none; margin:.1rem 0 0; }

@media(max-width:768px) {
  .finder-shell { padding-block:2rem 3rem; }
  .finder-header { margin-bottom:1.5rem; }
  .finder-chat { padding:1.25rem 1rem; }
  .finder-suggestions { margin-left:0; }
  .finder-save { padding:1.25rem 1rem; }
  .finder-save-form { grid-template-columns:1fr; }
  .finder-fav-options { grid-template-columns:1fr; }
  .finder-msg--user .finder-bubble { max-width:88%; }
  .finder-cards { grid-template-columns:1fr; }
  .finder-match { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .finder-match-image { height:100%; aspect-ratio:auto; }
  .finder-match-image > span { position:static; display:block; }
  .finder-match-image img { height:auto; aspect-ratio:1/1; }
  .finder-match-body { padding:.9rem; }
  .finder-match-body h3 { font-size:1.35rem; }
}
@media(max-width:480px) {
  .finder-msg { gap:.5rem; }
  .finder-avatar { width:28px; height:28px; font-size:.75rem; }
  .finder-msg--ai .finder-bubble { padding-top:.15rem; }
}
@media(max-width:380px) { .finder-match { display:flex; } .finder-match-image { aspect-ratio:4/3; } .finder-match-image img { height:100%; object-fit:contain; } .finder-match-image > span { position:absolute; } }
.finder-shell button.text-link { background:none; border:0; padding:.5rem 0; min-height:44px; font:inherit; font-size:.8125rem; color:var(--accent-dark); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.finder-shell button.text-link:hover { color:var(--text); }
