/* static/lib/unity_profile.css — 항해 프로필 공용 (static/lib/unity_profile.js) · 접두사 upf- */
:root{--upf-crew:#0e8c7e;--upf-cap:#1f3b88;--upf-gold:#f5b301;--upf-line:#e2e8f0;--upf-sub:#64748b}

/* 프로필명 + 심볼 */
.upf-tag{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;vertical-align:middle}
.upf-tag b{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upf-sym{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-style:normal;vertical-align:middle;box-sizing:border-box}
.upf-sym svg{width:15px;height:15px}
.upf-sym.k-crew{background:linear-gradient(135deg,#2dd4bf,#0d9488);color:#fff;box-shadow:0 1px 3px rgba(13,148,136,.35)}   /* 크루 = 흰 닻 · 밝은 청록 */
.upf-sym.k-captain{background:linear-gradient(135deg,#3b6fe0,#1e3a8a);color:#fcd34d;border:1.5px solid #fbbf24;box-shadow:0 1px 3px rgba(30,58,138,.35)}   /* 캡틴 = 금색 조타륜 · 남색 + 금테 */
.upf-sym.big{width:30px;height:30px}.upf-sym.big svg{width:20px;height:20px}

/* 대표사진 · 재밌는 기본 아이콘 */
.upf-av{flex:0 0 auto;display:inline-flex;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#e2e8f0;vertical-align:middle}
.upf-av img,.upf-av svg{width:100%;height:100%;object-fit:cover;display:block}
.upf-av.sm{width:28px;height:28px}.upf-av.lg{width:56px;height:56px}.upf-av.xl{width:96px;height:96px}

/* 분야·기술 라운드 박스 */
.upf-chips{display:flex;flex-wrap:wrap;gap:6px}
/* 분야·기술 칩 — 마이페이지 장비 칸의 접속·백업·수심 칩(.nm-meta-chip)과 같은 규격: 12px · 4px 10px · 1px 테두리 · 999 라운드 · 심볼 14px */
.upf-chip{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;line-height:1.4;padding:4px 10px;border-radius:999px;border:1px solid;white-space:nowrap;box-sizing:border-box}
.upf-chip svg{width:14px;height:14px;fill:currentColor;flex:0 0 auto}
.upf-chip.f{background:#eef2ff;color:#1f3b88;border-color:#cfdcff}
.upf-chip.s{background:#ecfdf5;color:#047857;border-color:#a7f3d0}

/* 버튼 */
.upf-btn{height:44px;padding:0 16px;border:0;border-radius:12px;background:#f1f5f9;color:#334155;font:700 14px Pretendard,system-ui,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.upf-btn.pri{background:var(--upf-crew);color:#fff}
.upf-tx{border:0;background:none;padding:6px 4px;font:700 14px Pretendard,system-ui,sans-serif;color:var(--upf-crew);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.upf-tx:disabled{color:#94a3b8;text-decoration:none;cursor:default}
.upf-tx.del{color:#94a3b8}.upf-tx.del.arm{color:#dc2626}

/* 등록 시트 */
.upf-reg{display:flex;flex-direction:column;gap:14px}
.upf-nm{height:48px;border:1.5px solid var(--upf-line);border-radius:12px;padding:0 14px;font:800 17px Pretendard,system-ui,sans-serif;color:#0f172a;width:100%;box-sizing:border-box}
.upf-nm:focus{outline:none;border-color:var(--upf-crew)}
.upf-regsh .upf-nm{text-align:center}
.upf-pane{display:none;flex-direction:column;gap:10px}
.upf-pane.on{display:flex}
.upf-pane h5{margin:6px 0 0;font-size:13px;font-weight:800;color:#475569}
.upf-picks{display:flex;flex-wrap:wrap;gap:6px}
.upf-pick{height:40px;padding:0 14px;border-radius:20px;border:1.5px solid var(--upf-line);background:#fff;font:700 14px Pretendard,system-ui,sans-serif;color:#334155;cursor:pointer}
.upf-pick.on{background:var(--upf-crew);border-color:var(--upf-crew);color:#fff}
.upf-note{margin:0;font-size:14px;color:var(--upf-sub);line-height:1.5}
.upf-tg{height:36px;min-width:76px;padding:0 12px;border-radius:18px;border:1.5px solid var(--upf-line);background:#fff;color:#64748b;font:800 13px Pretendard,system-ui,sans-serif;cursor:pointer}
.upf-tg.on{background:var(--upf-crew);border-color:var(--upf-crew);color:#fff}

/* 크루 관리 */
.upf-crew{display:flex;flex-direction:column;gap:12px}
.upf-q{height:44px;border:1.5px solid var(--upf-line);border-radius:12px;padding:0 14px;font:600 14px Pretendard,system-ui,sans-serif;width:100%;box-sizing:border-box}
.upf-found:empty{display:none}
.upf-found{border:1.5px dashed #99d5cd;border-radius:12px;padding:2px 10px}
.upf-seg{display:flex;gap:6px}
.upf-seg button{height:36px;padding:0 16px;border-radius:18px;border:1.5px solid var(--upf-line);background:#fff;font:700 13px Pretendard,system-ui,sans-serif;color:#475569;cursor:pointer}
.upf-seg button.on{background:#0f172a;border-color:#0f172a;color:#fff}
.upf-row{display:flex;align-items:center;gap:10px;min-height:60px;padding:6px 0;border-bottom:1px solid #f1f5f9}
.upf-row:last-child{border-bottom:0}
.upf-row .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:15px;color:#0f172a}
.upf-row .t .k{align-self:flex-start;font-size:13px;font-weight:800;padding:1px 8px;border-radius:10px;background:#f1f5f9;color:#475569}
.upf-row .t .k.crew{background:#e6f4f2;color:var(--upf-crew)}
.upf-row .ac{display:flex;gap:6px;flex:0 0 auto}
.upf-empty{padding:18px 0;text-align:center;color:#94a3b8;font-size:14px}

/* 지도 안내 */
.upf-nudge{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 0 10px;text-align:center}
.upf-nudge .ic{display:flex;gap:8px}
.upf-nudge .ic svg{width:44px;height:44px;padding:9px;border-radius:50%;box-sizing:border-box;color:#fff;fill:currentColor}
.upf-nudge .ic svg:first-child{background:var(--upf-crew)}
.upf-nudge .ic svg:last-child{background:var(--upf-cap);color:var(--upf-gold)}
.upf-nudge p{margin:0;font-size:15px;line-height:1.7;color:#334155;font-weight:600;word-break:keep-all}

/* 등록 버튼 상자 */
.upf-cta{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:#e6f4f2;flex-wrap:wrap}
.upf-cta .ic svg{width:36px;height:36px;padding:7px;border-radius:50%;background:var(--upf-crew);color:#fff;fill:currentColor;box-sizing:border-box;display:block}
.upf-cta p{flex:1;min-width:160px;margin:0;font-size:14px;font-weight:700;color:#134e4a;line-height:1.5;word-break:keep-all}
.upf-cta .upf-btn{flex:0 0 auto}
@media (max-width:420px){.upf-cta .upf-btn{flex:1 1 100%}}

/* 다른 서비스 팝업 맨 위 프로필 줄 */
.upf-top{display:flex;align-items:center;gap:10px;min-height:48px}
.upf-top .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:15px;color:#0f172a}
.upf-top .t small{font-size:13px;color:var(--upf-sub);font-weight:600}
/* 여행기록 등 팝업 맨 위 사람들 — 3명 · 4번째 반만 흐리게 · 더보기 */
.upf-people{display:flex;flex-direction:column;align-items:flex-start;padding:2px 2px 0}
.upf-pr{display:flex;align-items:center;min-height:32px;font-size:15px;color:#0f172a;max-width:100%}
.upf-pr.half{min-height:0;height:16px;overflow:hidden;align-items:flex-start;padding-top:6px;box-sizing:content-box;filter:blur(1.2px);opacity:.55;pointer-events:none;
  -webkit-mask-image:linear-gradient(#000 30%,transparent);mask-image:linear-gradient(#000 30%,transparent)}
.upf-more{margin-top:2px;padding-left:0}
.upf-top{padding-bottom:10px;border-bottom:1px solid #f1f5f9}
.upf-top>small{flex:none;font-size:13px;font-weight:800;color:#475569;padding:3px 9px;border-radius:10px;background:#f1f5f9}
/* 조과인증 사진 칸 — 등록자 프로필 (공개 조과) */
.cg-c .ov .cp.cg-pf{background:rgba(15,23,42,.62);padding:3px 8px 3px 9px;font-size:12px;opacity:1;-webkit-line-clamp:unset;display:inline-flex}
.cg-c .ov .cp.cg-pf .upf-tag{font-size:12px;opacity:1;display:inline-flex;-webkit-line-clamp:unset;color:#fff}
.cg-c .ov .cp.cg-pf i.upf-sym{width:18px;height:18px;border-radius:50%}
.cg-c .ov .cp.cg-pf i.upf-sym.k-crew{background:var(--upf-crew)}
.cg-c .ov .cp.cg-pf i.upf-sym.k-captain{background:var(--upf-cap)}
.cg-c .ov .cp.cg-pf i.upf-sym svg{width:13px;height:13px;fill:currentColor}
/* 메인 랭킹 — '바다를 함께 여는 사람들' 위 */
.v-pf + .v-cf{padding-top:56px}
.upf-rank{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:1080px;margin:0 auto}
.upf-rc{display:flex;align-items:center;gap:10px;min-height:72px;box-sizing:border-box;padding:10px 14px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 2px 8px rgba(15,23,42,.05);min-width:0}
.upf-rc .no{flex:none;width:24px;text-align:center;font-size:15px;font-weight:900;color:#94a3b8}
.upf-rc .no.top{color:#0e8c7e}
.upf-rc .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;font-size:15px;color:#0f172a}
.upf-rc .t .upf-chips{flex-wrap:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.upf-rc .sc{flex:none;font-size:13px;color:#64748b;font-weight:700;white-space:nowrap}
.upf-rc .sc b{font-size:16px;font-weight:900;color:#0e8c7e;margin-right:1px}
@media (max-width:1000px){.upf-rank{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.upf-rank{grid-template-columns:1fr;gap:6px}.upf-rc{min-height:64px;padding:8px 12px}}

/* 등록 시트 (2026-10-14 개편) — 머리 아래 단계 숫자 라운드 박스 · 맨 아래 [이전단계][다음단계] (본문과 분리) */
.upf-regsh .bd{padding-top:18px}   /* 머리와 본문 사이 넉넉히 */
.upf-qrow{display:flex;align-items:center;gap:12px;min-height:36px}
.upf-qrow .upf-stq{flex:1;min-width:0}
.upf-no{flex:none;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;border-radius:18px;background:#f1f5f9;color:#94a3b8;font:900 16px/1 Pretendard,system-ui,sans-serif}
.upf-no i{font-style:normal}
.upf-no i:first-child{font-weight:800;color:#64748b}
.upf-no em{width:1.5px;height:16px;background:#cbd5e1;margin:0 3px}
.upf-no b{font:inherit;color:var(--upf-crew)}   /* 숫자 크기 모두 같게 — 지금 단계 숫자만 색 다름 */
.upf-stq{border:0;padding:0;height:auto;background:none;border-radius:0;margin:0;font-size:18px;line-height:26px;font-weight:900;color:#0f172a}
.upf-warn{margin:0;font-size:14px;line-height:21px;font-weight:700;color:#c2410c}
.upf-ft{flex:0 0 auto;display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #eef2f7;background:#fff}
.upf-fb{flex:1 1 0;min-width:0;height:52px;border:0;border-radius:14px;background:#f1f5f9;color:#334155;font:800 16px Pretendard,system-ui,sans-serif;cursor:pointer}
.upf-fb.pri{background:var(--upf-crew);color:#fff}
/* 지도 없는 화면 — 다른 바닥 시트(내 선박 등록 등)와 같은 자리·폭 : 바닥에 붙고 가운데 최대 720 */
.ufs-sh.fixed.upf-page{left:12px;right:12px;top:auto;bottom:0;margin:0 auto;width:auto;max-width:720px;border-radius:22px 22px 0 0;height:calc(100vh - 64px);height:calc(100dvh - 64px);max-height:none;transform:translateY(105%)}
.ufs-sh.fixed.upf-page.on{transform:translateY(0)}
@media (min-width:861px){.ufs-sh.fixed.upf-page{height:84vh;height:84dvh}}
@media (max-width:860px),(hover:none){.ufs-sh.fixed.upf-page{left:0 !important;right:0 !important;max-width:none;width:100% !important}}   /* 모바일 — 폭 100% */

/* 대표사진 첨부 폼 — 끌어다 놓기 · 사진 올리기 (폰·태블릿은 버튼, PC 는 끌어다 놓기도) */
.upf-drop{border:2px dashed #cbd5e1;border-radius:16px;background:#f8fafc;transition:background .15s,border-color .15s}
.upf-drop.over{border-color:var(--upf-crew);background:#e6f4f2}
.upf-drop.has{border-style:solid;border-color:#e2e8f0;background:#fff}
.upf-dz{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 16px}
.upf-dz svg{width:44px;height:44px;fill:#94a3b8}
.upf-dz .dt{font-size:14px;font-weight:700;color:#64748b}
@media (hover:none){.upf-dz .dt{display:none}}            /* 터치 기기 — 끌어다 놓기 문구 없이 [사진 올리기]만 */
.upf-dz .upf-btn{min-width:160px}
.upf-dpv{display:flex;align-items:center;gap:16px;padding:16px}
.upf-dpv .bt{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.upf-dpv .upf-btn{width:100%}
/* 사진 편집 시트 — 원 안이 대표사진 */
.upf-crop{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:6px}
.upf-crop .stage{position:relative;width:min(100%,360px);aspect-ratio:1/1;overflow:hidden;border-radius:16px;background:#0f172a;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.upf-crop .stage:active{cursor:grabbing}
.upf-crop .stage img{position:absolute;left:50%;top:50%;max-width:none;transform-origin:center;pointer-events:none}
.upf-crop .ring{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 999px rgba(15,23,42,.55);border:2px solid rgba(255,255,255,.9);pointer-events:none}
.upf-crop .zm{display:flex;align-items:center;gap:12px;width:min(100%,360px)}
.upf-crop .zm span{flex:none;width:32px;height:32px;border-radius:50%;background:#f1f5f9;color:#475569;font:800 18px/32px Pretendard,sans-serif;text-align:center}
.upf-crop .zm input{flex:1;accent-color:var(--upf-crew);height:32px}
/* 성별 — 남성 / 여성 / 기타 */
.upf-gd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.upf-gd button{height:56px;border-radius:14px;border:1.5px solid var(--upf-line);background:#fff;font:800 16px Pretendard,system-ui,sans-serif;color:#334155;cursor:pointer}
.upf-gd button.on{background:var(--upf-crew);border-color:var(--upf-crew);color:#fff}
/* 하나·여러 개 고르기 (큰 버튼 · 제목 + 한 줄) — 조사 낚시 수준·채비 준비 등 (성별 버튼과 같은 규격) */
.upf-opts{display:flex;flex-direction:column;gap:8px}
.upf-opts button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:56px;padding:10px 16px;border-radius:14px;border:1.5px solid var(--upf-line);background:#fff;text-align:left;cursor:pointer;font-family:Pretendard,system-ui,sans-serif}
.upf-opts button b{font-size:16px;font-weight:800;color:#334155}
.upf-opts button small{font-size:13px;font-weight:600;color:var(--upf-sub)}
.upf-opts button.on{background:var(--upf-crew);border-color:var(--upf-crew)}
.upf-opts button.on b,.upf-opts button.on small{color:#fff}
/* 연락처·이메일 — 가입정보 값이 있으면 칸에 넣고(읽기 전용), 없으면 여기서 입력 */
.upf-ci{display:flex;align-items:flex-end;gap:10px;padding:4px 0 12px;border-bottom:1px solid #f1f5f9}
.upf-ci label{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.upf-ci b{font-size:14px;font-weight:800;color:#0f172a}
.upf-ci input{height:46px;border:1.5px solid var(--upf-line);border-radius:12px;padding:0 12px;font:700 15px Pretendard,system-ui,sans-serif;color:#0f172a;width:100%;box-sizing:border-box;min-width:0}
.upf-ci input:focus{outline:none;border-color:var(--upf-crew)}
.upf-ci input[readonly]{background:#f8fafc;color:#475569}
.upf-ci .upf-tg{height:46px}
.upf-nudge .ic svg:last-child circle{fill:var(--upf-cap);opacity:1}
/* 프로필 라운드 박스 — 모든 팝업 맨 위 · 사람 목록 (누르면 프로필 시트) */
.upf-av.md{width:56px;height:56px}
.upf-card{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:10px 11px;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;text-align:left;font:inherit;color:#0f172a;min-width:0}
.upf-card:active{background:#eef2f7}
.upf-card.k-captain{background:linear-gradient(90deg,#eef3ff,#f8fafc)}.upf-card.k-crew{background:linear-gradient(90deg,#ecfdf9,#f8fafc)}
.upf-card .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.upf-card .nm{display:flex;align-items:center;gap:6px;min-width:0}.upf-card .nm b{font-size:17px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upf-card .t small{font-size:13px;font-weight:700;color:#64748b}
/* 오른쪽 두 줄 — 심볼 + 숫자 (왕관=랭킹 · 닻=크루) */
.upf-card .st{flex:none;display:flex;flex-direction:column;gap:6px;padding-right:2px}
.upf-card .st .r{display:flex;align-items:center;gap:8px;min-width:58px}
.upf-card .st .ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;font-style:normal}
.upf-card .st .ic svg{width:15px;height:15px;fill:currentColor}
.upf-card .st .ic.rk{background:#fef3c7;color:#d97706}
.upf-card .st .ic.cw{background:#ccfbf1;color:#0e8c7e}
.upf-card .st b{font-size:16px;font-weight:900;line-height:20px;color:#0f172a}
.upf-card.sm{padding:8px 10px;border-radius:14px}.upf-card.sm .upf-av.md{width:44px;height:44px}.upf-card.sm .nm b{font-size:15px}
.upf-people{gap:6px;align-items:stretch;width:100%}
.upf-pr.half{height:22px}
.upf-top{display:block;padding-bottom:0;border-bottom:0 !important;margin-bottom:22px}   /* 팝업 맨 위 — 라운드 박스 하나 + 아래 12px */
/* 프로필 바닥 시트 */
.upf-sh-hd{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0 18px;border-bottom:1px solid #f1f5f9;text-align:center}
.upf-sh-hd .nm{display:flex;align-items:center;gap:8px}.upf-sh-hd .nm b{font-size:21px;font-weight:900}
.upf-sh-hd .kd{font-size:14px;font-weight:700;color:#64748b}
.upf-sh-hd .upf-chips{justify-content:center;margin-top:2px}
.upf-sh-st{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;margin-top:10px}
.upf-sh-st>div{display:flex;flex-direction:column;align-items:center;gap:2px}
.upf-sh-st .ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:4px}
.upf-sh-st .ic svg{width:24px;height:24px;fill:currentColor}
.upf-sh-st .cr .ic svg{fill:none}
.upf-sh-st .rk .ic{background:#f5b301}.upf-sh-st .cr .ic{background:#0e8c7e}.upf-sh-st .fr .ic{background:#2b6cff}.upf-sh-st .sc .ic{background:#7c3aed}
.upf-sh-st b{font-size:18px;font-weight:900;color:#0f172a}.upf-sh-st small{font-size:13px;font-weight:700;color:#64748b}
.upf-svc{margin-top:20px}
.upf-svc>h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;font-weight:900;color:#0f172a;line-height:28px}
.upf-svc>h4 .ic{flex:none;width:28px;height:28px;border-radius:8px;background:var(--c);display:flex;align-items:center;justify-content:center}.upf-svc>h4 .ic svg{width:17px;height:17px;fill:#fff}
.upf-svc>h4 small{font-size:13px;font-weight:800;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);padding:0 8px;border-radius:999px;line-height:22px}
.upf-svc>h4 .upf-tx{margin-left:auto;font-size:14px}
.upf-rows{display:flex;flex-direction:column;gap:8px}
.upf-rows .upf-row:last-child{border-bottom:1px solid #e2e8f0}   /* 카드 칸 — 예전 목록 규칙(.upf-row:last-child 테두리 없음)이 마지막 카드 아래 선을 지우던 것 */
.upf-row{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;box-sizing:border-box;padding:8px 12px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;cursor:pointer;text-align:left;font:inherit;color:inherit}
.upf-row img,.upf-row .ph{flex:none;width:52px;height:52px;border-radius:12px;object-fit:cover;background:#eef2f7;display:flex;align-items:center;justify-content:center}
.upf-row .ph svg{width:26px;height:26px;fill:var(--c)}
.upf-row .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.upf-row .tx b{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upf-row .tx small{font-size:13px;color:#64748b;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upf-row .tx em{font-style:normal;font-weight:800;color:var(--c)}.upf-row .tx em.on{color:#16a34a}
.upf-row .cv{flex:none;width:18px;height:18px;fill:#94a3b8}
.upf-phs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.upf-ph{display:block;padding:0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff;cursor:zoom-in;text-align:left;font:inherit;color:inherit}
.upf-ph img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#e2e8f0}.upf-ph small{display:block;padding:6px 8px;font-size:12px;font-weight:700;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upf-big{position:fixed;inset:0;z-index:100000;background:rgba(2,6,23,.88);display:flex;align-items:center;justify-content:center;padding:16px;cursor:zoom-out}.upf-big img{max-width:100%;max-height:100%;border-radius:12px}
.upf-empty{padding:26px 0;text-align:center;font-size:14px;color:#94a3b8;font-weight:700}

/* 내 선박인데 프로필이 없을 때 — 이 자리에 표시된다는 안내 (다른 사람이 보면 이 칸 자체가 없음) */
.upf-reg-here{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:16px;border:1.5px dashed #99d5cd;background:#f0fbf9;cursor:pointer;text-align:left;font:inherit;color:#0f172a}
.upf-reg-here .ic{flex:none;width:44px;height:44px;border-radius:50%;background:#0e8c7e;display:flex;align-items:center;justify-content:center}
.upf-reg-here .ic svg{width:24px;height:24px;fill:#fff}
.upf-reg-here .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.upf-reg-here b{font-size:16px;font-weight:900;color:#0e8c7e}
.upf-reg-here small{font-size:13px;font-weight:700;color:#64748b}
/* 낚시(조사) 심볼 — 지상낚시 사이트 안내·등록 상자 (닻 대신 물고기·바늘) */
.upf-nudge .ic.ang svg,.upf-nudge .ic.ang svg:last-child{background:#0e7490;color:#fff}
.upf-cta .ic.ang svg{background:#0e7490;color:#fff}
