.finder-modal { position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(560px,100%);height:min(820px,calc(100dvh - 48px));overflow:hidden;border-radius:22px;background:var(--card);box-shadow:0 28px 90px #0008; }
.finder-header { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;padding:12px 20px;border-bottom:1px solid var(--line); }
.finder-header strong { font:800 27px "Playfair Display",serif; }
.finder-brand { display:flex;align-items:center;gap:7px; }
.finder-brand>span { color:#e23f59;font-size:25px; }
.candidate-photos-toggle { display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font:600 12px/1.2 "DM Sans",sans-serif;white-space:nowrap;cursor:pointer; }
.candidate-photos-toggle:hover { color:var(--ink);background:var(--green2); }
.candidate-photos-toggle svg { width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.finder-header .candidate-photos-toggle { grid-column:2;grid-row:1;justify-self:center; }
.finder-header small { grid-column:3;grid-row:1;justify-self:end;margin-right:44px;color:var(--muted);font-weight:700; }
.finder-header .modal-close { position:static;grid-column:3;grid-row:1;justify-self:end;width:36px;height:36px;margin:0; }
.finder-candidate { display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0; }
.finder-deck { position:relative;min-height:0;overflow:hidden;isolation:isolate; }
.finder-profile { position:relative;z-index:2;height:100%;background:var(--card);touch-action:pinch-zoom;user-select:none;cursor:grab;transform:translate(var(--finder-drag-x,0px),var(--finder-drag-y,0px)) rotate(var(--finder-drag-angle,0deg));transform-origin:center 75%;transition:transform .28s cubic-bezier(.2,.8,.3,1.2);animation:finder-card-in .2s ease-out; }
.finder-profile.is-dragging { cursor:grabbing;transition:none; }
.finder-scroll { height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pinch-zoom;padding:12px 20px;scrollbar-gutter:stable; }
.finder-next-card { position:absolute;z-index:1;inset:6px;padding:12px 20px;border:1px solid var(--line);border-radius:16px;background:var(--card);transform:scale(.97);pointer-events:none; }
.finder-portrait { position:relative;height:clamp(150px,38dvh,340px);overflow:hidden;border-radius:16px;background:var(--portrait,linear-gradient(145deg,#e5efe7,#c8dacd)); }
.finder-portrait .partner-photo { width:100%;height:100%;object-fit:cover;pointer-events:none; }
.finder-portrait .silhouette { height:100%;pointer-events:none; }
.finder-swipe-label { position:absolute;z-index:3;top:24px;padding:8px 12px;border:3px solid currentColor;border-radius:8px;background:var(--card);font:800 24px "DM Sans",sans-serif;pointer-events:none; }
.finder-swipe-label.no { right:18px;color:var(--negative,#cf3344);opacity:var(--finder-no-opacity,0);transform:rotate(10deg); }
.finder-swipe-label.yes { left:18px;color:var(--positive,#28955a);opacity:var(--finder-yes-opacity,0);transform:rotate(-10deg); }
.finder-identity { display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .3em;margin:10px 0;font:800 28px/1.2 "Playfair Display",serif;font-variant-numeric:lining-nums; }
.finder-age { font:inherit;font-variant-numeric:lining-nums; }
.finder-description { margin:8px 0;color:var(--muted);font-size:13px;line-height:1.4; }
.finder-profile-details { min-width:0;font-size:14px; }
.finder-profile-details .candidate-summary,.finder-worldviews,.finder-indicators { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:8px 0; }
.finder-profile-details .candidate-stat,.finder-worldviews .candidate-axis,.finder-score { display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 8px;border-radius:7px;font-size:13px;line-height:1.25; }
.finder-profile-details .candidate-stat b,.finder-score b { flex-shrink:0;font-size:13px;font-weight:800; }
.finder-profile-details .candidate-stat:last-child { grid-column:1/-1; }
.finder-worldviews .candidate-axis { grid-column:auto; }
.finder-score { border:0;background:hsl(var(--finder-score-hue) 70% 92%);color:hsl(var(--finder-score-hue) 75% 25%);font-family:inherit;cursor:pointer;text-align:left; }
.finder-indicators .finder-score { min-height:34px; }
:root[data-theme="dark"] .finder-score { background:hsl(var(--finder-score-hue) 25% 18%);color:hsl(var(--finder-score-hue) 65% 72%); }
.finder-profile-details .candidate-wealth { margin:8px 0;padding:6px 8px;font-size:13px; }
.finder-profile-details .candidate-requirements { margin:8px 0;padding:8px; }
.finder-profile-details .candidate-requirements h3 { font-size:14px; }
.finder-profile-details .candidate-requirements h4 { font-size:12px; }
.finder-profile-details .candidate-requirements p { font-size:13px; }
.finder-info-backdrop { z-index:101; }
.finder-info-modal { width:min(520px,100%);font-size:14px;line-height:1.5; }
.finder-info-modal>header { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px; }
.finder-info-modal>header h2 { margin:0;font-size:26px; }
.finder-info-modal .modal-close { position:static;flex:none; }
.finder-info-score { display:inline-flex;font-size:24px;font-weight:800;cursor:default; }
.finder-info-modal .compatibility-details { font-size:14px; }
.finder-info-modal .compatibility-row small { font-size:12px;line-height:1.4; }
.finder-info-modal .candidate-requirements p { font-size:13px; }
.finder-additional-open { display:none;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:600 13px "DM Sans",sans-serif;text-align:left;cursor:pointer; }
.finder-actions { display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;padding:12px 20px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card); }
.finder-decision button { width:100%;min-height:52px;border:0;border-radius:13px;color:white;font:800 18px "DM Sans",sans-serif;cursor:pointer; }
.finder-decision button span { margin-right:6px; }
.finder-decision.no button { background:#cf3344; }
.finder-decision.yes button { background:#28955a; }
.finder-success-chance { grid-column:2;text-align:center;color:var(--green);font-size:12px;font-weight:700; }
.finder-candidate[aria-busy="true"] .finder-actions { opacity:.65;cursor:wait; }
.finder-candidate[aria-busy="true"] .finder-profile { cursor:wait; }
.finder-empty { min-height:0;overflow:auto;display:grid;align-content:center;justify-items:center;gap:18px;text-align:center;padding:24px; }
.finder-empty>span { font-size:64px;color:#e15b6c; }
.finder-empty h2 { margin:0;font:800 27px/1.25 "Playfair Display",serif; }
.partner-search { padding-block:8px; }
main:has(>.partner-search) { padding-bottom:12px; }
.partner-search-toolbar { display:flex;justify-content:flex-end; }
.partner-search .partner-candidates { margin:10px 0;gap:12px;align-items:start; }
.partner-candidate { padding:12px;cursor:default;text-align:left; }
.partner-candidate:hover { border-color:var(--line);box-shadow:none; }
.partner-candidate .finder-identity { font:800 28px/1.2 "Playfair Display",serif;font-variant-numeric:lining-nums;margin:10px 0; }
.partner-candidate .finder-identity span { margin:0;font:inherit;color:inherit;font-variant-numeric:lining-nums; }
.candidate-search-action { display:grid;gap:5px;margin-top:12px; }
.candidate-search-action .candidate-attempt { margin:0;min-height:48px;border-radius:13px;font:800 16px "DM Sans",sans-serif;background:#28955a; }
:root .candidate-search-action .candidate-attempt:not(:disabled) { background:#28955a;color:white; }
.candidate-search-action .candidate-attempt:disabled { background:var(--line);color:var(--muted); }
.candidate-search-action>small { text-align:center;color:var(--green);font-size:12px;font-weight:700; }
@media(min-width:851px) { .partner-search .partner-candidates { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1100px) { .partner-search .partner-candidates { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) {
    .finder-backdrop { padding:8px; }
    .finder-modal { height:calc(100dvh - 16px);width:100%;border-radius:18px; }
    .finder-header { padding:max(8px,env(safe-area-inset-top)) 12px 8px; }
    .finder-scroll { padding:12px; }
    .finder-identity { font-size:25px; }
    .partner-candidate .finder-identity { font-size:25px; }
    .finder-actions { padding-inline:12px; }
    .finder-info-backdrop { align-items:end;padding:0; }
    .finder-info-modal { max-height:88dvh;border-radius:20px 20px 0 0; }
}
@media(max-width:480px) {
    .finder-header { display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 8px; }
    .finder-header .candidate-photos-toggle { grid-column:1/-1;grid-row:2;justify-self:center;min-height:32px; }
    .finder-header small { grid-column:2;grid-row:1;margin:0; }
    .finder-header .modal-close { grid-column:3;grid-row:1;margin:0; }
}
@keyframes finder-card-in { from { opacity:.6;scale:.97; } to { opacity:1;scale:1; } }
@media(max-height:650px) {
    .finder-profile-details>.candidate-requirements { display:none; }
    .finder-additional-open { display:flex; }
}
@media(prefers-reduced-motion:reduce) { .finder-profile { transition:none;animation:none; } }
