/* Mind Linker — Privacy Center (개인정보 보호)
   Full-screen settings surface rendered inside .main.
   Reuses tokens + .gd-topbar / .gd-back / .switch / .appseg / .chip. */

.pv { max-width: 840px; margin: 0 auto; }
.pv-anim { opacity: 1; }
@keyframes pvRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) { .pv-anim { animation: pvRise .42s cubic-bezier(.22,.8,.28,1) both; } }

/* ---------- trust hero ---------- */
.pv-hero {
  position: relative; overflow: hidden; border-radius: 28px; padding: 26px 24px;
  color: oklch(23.2% 0.038 171.6); background: var(--grad-mesh); box-shadow: var(--sh-glow);
}
.pv-hero__seal {
  width: 54px; height: 54px; border-radius: 17px; display: grid; place-items: center;
  background: oklch(100% 0 89.9 / 0.55); color: oklch(29.6% 0.052 172.7);
  box-shadow: inset 0 1px 1px oklch(100% 0 89.9 / .7), 0 6px 16px oklch(40% 0.06 166 / .18);
}
.pv-hero__seal svg { width: 28px; height: 28px; }
.pv-hero__eyebrow { font: var(--fw-mono) 11px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: oklch(42.2% 0.078 171.3); margin: 16px 0 7px; }
.pv-hero__title { font: var(--fw-display) 26px/1.18 var(--font-display); letter-spacing: -.03em; margin: 0; }
.pv-hero__sub { font: var(--fw-strong) 14px/1.5 var(--font-body); color: oklch(33.5% 0.057 173.6); margin: 8px 0 0; max-width: 46ch; }
.pv-hero__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pv-hero__chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px;
  background: oklch(100% 0 89.9 / 0.5); border: 1px solid oklch(100% 0 89.9 / 0.5);
  font: var(--fw-strong) 12px var(--font-body); color: oklch(29.6% 0.052 172.7); white-space: nowrap;
}
.pv-hero__chip svg { width: 14px; height: 14px; }

/* ---------- section ---------- */
.pv-sec { margin-top: 34px; }
.pv-sec__head { display: flex; align-items: center; gap: 9px; margin: 0 2px 13px; }
.pv-sec__no { font: var(--fw-mono) 11px var(--font-mono); color: var(--green-500); letter-spacing: .1em; flex: 0 0 auto; }
.pv-sec__h { font: var(--fw-mono) 11px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin: 0; white-space: nowrap; }
.pv-sec__intro { font: var(--fw-strong) 13px/1.55 var(--font-body); color: var(--ink-3); margin: 0 2px 13px; max-width: 60ch; }

/* ---------- settings list (card with divided rows) ---------- */
.pv-list { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-lg); box-shadow: var(--sh-1); overflow: hidden; }
.pv-row { display: flex; align-items: center; gap: 14px; padding: 16px 18px; }
.pv-row + .pv-row, .pv-sub { border-top: 1px solid var(--line-soft); }
.pv-row--link { cursor: pointer; transition: background .15s; }
.pv-row--link:hover { background: var(--surface-2); }
.pv-row__ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-2); color: var(--green-600); flex: 0 0 auto; }
.pv-row__ic svg { width: 19px; height: 19px; }
.pv-row__ic--coral { background: var(--coral-soft); color: var(--coral); }
.pv-row__body { flex: 1 1 auto; min-width: 0; }
.pv-row__t { display: flex; align-items: center; gap: 8px; font: var(--fw-strong) 15px var(--font-body); color: var(--ink); letter-spacing: -.01em; }
.pv-row__d { font: var(--fw-body) 12.5px/1.45 var(--font-body); color: var(--ink-3); margin-top: 3px; }
.pv-row__d b { color: var(--green-600); font-weight: var(--fw-strong); }
.pv-row__ctrl { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.pv-chev { width: 18px; height: 18px; color: var(--ink-3); flex: 0 0 auto; }
.pv-value { font: var(--fw-strong) 13px var(--font-body); color: var(--green-600); white-space: nowrap; }

/* info button */
.pv-info { width: 19px; height: 19px; border-radius: 50%; border: none; background: var(--surface-2); color: var(--ink-3); display: grid; place-items: center; cursor: pointer; flex: 0 0 auto; padding: 0; transition: color .15s, background .15s; }
.pv-info svg { width: 13px; height: 13px; }
.pv-info:hover { background: var(--green-100); color: var(--green-600); }

/* badges */
.pv-badge { font: var(--fw-mono) 9.5px var(--font-mono); letter-spacing: .08em; padding: 3px 7px; border-radius: 999px; white-space: nowrap; flex: 0 0 auto; }
.pv-badge--req { background: var(--green-100); color: var(--green-600); }
.pv-badge--opt { background: var(--surface-2); color: var(--ink-3); border: 1px solid var(--line); }
.pv-badge--coral { background: var(--coral-soft); color: var(--coral); }

/* expandable sub-region */
.pv-sub { background: var(--surface-2); }
.pv-seg-row { padding: 14px 18px; }
.pv-seg-row .slabel { margin-bottom: 10px; display: block; }
.pv-appseg { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); }
.pv-appseg button { flex: 1; border: none; background: none; cursor: pointer; padding: 9px 4px; border-radius: 999px; font: var(--fw-strong) 12.5px var(--font-body); color: var(--ink-3); transition: color .15s; }
.pv-appseg button[data-on] { background: var(--grad-signature); color: oklch(29.8% 0.055 171.9); box-shadow: 0 2px 5px oklch(56.3% 0.116 162.8 / .26), 0 4px 12px oklch(64.7% 0.134 162.2 / .3); }

/* ---------- collection cards ---------- */
.pv-collect { display: grid; gap: 10px; }
.pv-cd { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-md); box-shadow: var(--sh-1); padding: 15px 16px; }
.pv-cd__head { display: flex; align-items: center; gap: 9px; }
.pv-cd__name { font: var(--fw-strong) 14.5px var(--font-body); color: var(--ink); flex: 1 1 auto; }
.pv-cd__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 12px 0 0; }
.pv-cd__meta > div { min-width: 0; }
.pv-cd__meta dt { font: var(--fw-mono) 9.5px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.pv-cd__meta dd { font: var(--fw-strong) 13px var(--font-body); color: var(--ink-2); margin: 4px 0 0; }
@media (max-width: 540px) { .pv-cd__meta { grid-template-columns: 1fr; gap: 9px; } }

/* ---------- device / login rows ---------- */
.pv-dev { display: flex; align-items: center; gap: 13px; padding: 14px 18px; }
.pv-dev + .pv-dev { border-top: 1px solid var(--line-soft); }
.pv-dev__ic { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--line); color: var(--ink-2); flex: 0 0 auto; }
.pv-dev__ic svg { width: 18px; height: 18px; }
.pv-dev__body { flex: 1 1 auto; min-width: 0; }
.pv-dev__t { font: var(--fw-strong) 14px var(--font-body); color: var(--ink); display: flex; align-items: center; gap: 8px; }
.pv-dev__s { font: var(--fw-body) 12px var(--font-body); color: var(--ink-3); margin-top: 2px; }
.pv-dev__now { font: var(--fw-mono) 9.5px var(--font-mono); letter-spacing: .06em; color: var(--green-600); background: var(--green-100); padding: 3px 7px; border-radius: 999px; }
.pv-logout { border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); font: var(--fw-strong) 12px var(--font-body); padding: 7px 12px; border-radius: 10px; cursor: pointer; flex: 0 0 auto; transition: border-color .15s, color .15s; }
.pv-logout:hover { border-color: var(--coral-line); color: var(--coral); }
.pv-dev__dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; }
.pv-dev__dot--ok { background: var(--green-500); }
.pv-dev__dot--bad { background: var(--coral); box-shadow: 0 0 0 3px color-mix(in srgb, var(--coral) 20%, transparent); }

.pv-allout { width: 100%; border: 1px dashed var(--coral-line); background: transparent; color: var(--coral); font: var(--fw-strong) 13px var(--font-body); padding: 13px; border-radius: 13px; cursor: pointer; margin-top: 10px; transition: background .15s; }
.pv-allout:hover { background: var(--coral-soft); }

/* inline password form */
.pv-form { padding: 16px 18px; display: grid; gap: 10px; }
.pv-input { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: var(--fw-body) 14px var(--font-body); }
.pv-input:focus { outline: none; border-color: var(--green-400); box-shadow: 0 0 0 3px oklch(64.7% 0.134 162.2 / .14); }
.pv-form__btn { justify-self: start; border: none; cursor: pointer; padding: 11px 18px; border-radius: 12px; background: var(--green-500); color: oklch(100% 0 89.9); font: var(--fw-strong) 13px var(--font-body); }
.pv-form__btn:hover { background: var(--green-600); }

/* ---------- third-party providers ---------- */
.pv-prov__why { font: var(--fw-body) 11.5px/1.4 var(--font-body); color: var(--ink-3); margin-top: 5px; }

/* ---------- rights links grid ---------- */
.pv-rights { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 640px) { .pv-rights { grid-template-columns: 1fr; } }
.pv-right { display: flex; align-items: center; gap: 13px; padding: 16px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line-soft); box-shadow: var(--sh-1); cursor: pointer; transition: border-color .16s, transform .12s; }
.pv-right:hover { border-color: var(--green-200); transform: translateY(-2px); }
.pv-right:active { transform: translateY(0); }
.pv-right__ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-2); color: var(--green-600); flex: 0 0 auto; }
.pv-right__ic svg { width: 19px; height: 19px; }
.pv-right__t { font: var(--fw-strong) 14.5px var(--font-body); color: var(--ink); }
.pv-right__d { font: var(--fw-body) 12px/1.4 var(--font-body); color: var(--ink-3); margin-top: 2px; }

/* ---------- contact / policy panel ---------- */
.pv-contact { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-lg); box-shadow: var(--sh-1); padding: 18px 20px; }
.pv-contact__name { font: var(--fw-strong) 15px var(--font-body); color: var(--ink); }
.pv-contact__line { display: flex; align-items: center; gap: 9px; font: var(--fw-strong) 13px var(--font-body); color: var(--ink-2); margin-top: 11px; }
.pv-contact__line svg { width: 16px; height: 16px; color: var(--green-600); flex: 0 0 auto; }
.pv-contact__line a { color: var(--green-600); text-decoration: none; }
.pv-contact__line a:hover { text-decoration: underline; }
.pv-cert { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line-soft); }
.pv-cert span { font: var(--fw-mono) 10px var(--font-mono); letter-spacing: .08em; color: var(--ink-3); background: var(--surface-2); border: 1px solid var(--line); padding: 5px 10px; border-radius: 999px; }

/* ---------- danger zone ---------- */
.pv-danger { border: 1px solid var(--coral-line); border-radius: var(--r-lg); overflow: hidden; background: color-mix(in srgb, var(--coral-soft) 50%, var(--surface)); }
.pv-danger .pv-row + .pv-row { border-top: 1px solid var(--coral-line); }
.pv-danger__btn { border: 1px solid var(--coral-line); background: var(--surface); color: var(--coral); font: var(--fw-strong) 12.5px var(--font-body); padding: 8px 14px; border-radius: 11px; cursor: pointer; flex: 0 0 auto; transition: background .15s; }
.pv-danger__btn:hover { background: var(--coral); color: oklch(99% 0.01 30); }

.pv-foot { text-align: center; font: var(--fw-body) 11.5px/1.6 var(--font-body); color: var(--ink-3); margin: 30px 0 6px; }

/* ---------- request sheets (동의 관리 / 처리정지) ---------- */
.pv-scrim { position: fixed; inset: 0; z-index: 90; background: oklch(20% 0.02 200 / .42); backdrop-filter: blur(3px); display: flex; align-items: flex-end; justify-content: center; animation: pvScrim .2s ease; }
@media (min-width: 700px) { .pv-scrim { align-items: center; padding: 24px; } }
@keyframes pvScrim { from { opacity: 0; } to { opacity: 1; } }
.pv-sheet { width: 100%; max-width: 520px; background: var(--surface); border-radius: 26px 26px 0 0; box-shadow: var(--sh-3); max-height: 88dvh; display: flex; flex-direction: column; overflow: hidden; animation: pvSheetUp .34s cubic-bezier(.22,.85,.26,1); }
@media (min-width: 700px) { .pv-sheet { border-radius: 24px; } }
@keyframes pvSheetUp { from { transform: translateY(40px); opacity: .6; } to { transform: none; opacity: 1; } }
.pv-sheet__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 22px 22px 14px; }
.pv-sheet__eyebrow { font: var(--fw-mono) 10.5px var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--teal-500); margin-bottom: 7px; }
.pv-sheet__title { font: var(--fw-display) 21px/1.22 var(--font-display); letter-spacing: -.02em; color: var(--ink); margin: 0; }
.pv-sheet__x { width: 38px; height: 38px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); display: grid; place-items: center; cursor: pointer; flex: 0 0 auto; }
.pv-sheet__x:hover { border-color: var(--green-300); color: var(--green-600); }
.pv-sheet__x svg { width: 18px; height: 18px; }
.pv-sheet__body { padding: 4px 22px 18px; overflow-y: auto; }
.pv-sheet__intro { font: var(--fw-strong) 13.5px/1.55 var(--font-body); color: var(--ink-3); margin: 0 0 16px; }
.pv-sheet__foot { padding: 16px 22px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line-soft); display: flex; gap: 10px; }
.pv-sheet__btn { flex: 1; border: none; cursor: pointer; padding: 14px; border-radius: 14px; font: var(--fw-strong) 14px var(--font-body); white-space: nowrap; transition: background .15s, opacity .15s; }
.pv-sheet__btn--ghost { flex: 0 0 auto; padding: 14px 20px; background: var(--surface-2); color: var(--ink-2); }
.pv-sheet__btn--ghost:hover { background: var(--line-soft); }
.pv-sheet__btn--primary { background: var(--green-500); color: oklch(100% 0 89.9); }
.pv-sheet__btn--primary:hover:not(:disabled) { background: var(--green-600); }
.pv-sheet__btn--primary:disabled { opacity: .45; cursor: not-allowed; }
.pv-sheet__btn--coral { background: var(--coral); color: oklch(99% 0.01 30); }
.pv-sheet__btn--coral:hover:not(:disabled) { background: var(--coral-600); }
.pv-sheet__btn--coral:disabled { opacity: .45; cursor: not-allowed; }

/* consent-manage rows */
.pv-mrow { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.pv-mrow:last-of-type { border-bottom: none; }
.pv-mrow__t { font: var(--fw-strong) 14px var(--font-body); color: var(--ink); }
.pv-mrow__d { font: var(--fw-body) 12px/1.4 var(--font-body); color: var(--ink-3); margin-top: 2px; }
.pv-bulk { width: 100%; border: 1px solid var(--line); background: var(--surface-2); color: var(--ink-2); font: var(--fw-strong) 13px var(--font-body); padding: 13px; border-radius: 13px; cursor: pointer; margin-top: 16px; transition: border-color .15s, color .15s; }
.pv-bulk:hover { border-color: var(--green-300); color: var(--green-600); }

/* suspend scope options */
.pv-opt { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1.5px solid var(--line); border-radius: 14px; cursor: pointer; margin-bottom: 10px; transition: border-color .15s, background .15s; }
.pv-opt[data-on] { border-color: var(--green-400); background: color-mix(in srgb, var(--green-100) 55%, var(--surface)); }
.pv-opt[data-danger][data-on] { border-color: var(--coral-line); background: var(--coral-soft); }
.pv-opt__box { width: 22px; height: 22px; border-radius: 7px; border: 1.5px solid var(--line); display: grid; place-items: center; flex: 0 0 auto; margin-top: 1px; color: transparent; transition: background .15s, border-color .15s, color .15s; }
.pv-opt__box svg { width: 15px; height: 15px; }
.pv-opt[data-on] .pv-opt__box { background: var(--green-500); border-color: var(--green-500); color: oklch(100% 0 89.9); }
.pv-opt[data-danger][data-on] .pv-opt__box { background: var(--coral); border-color: var(--coral); }
.pv-opt__t { font: var(--fw-strong) 14px var(--font-body); color: var(--ink); }
.pv-opt__d { font: var(--fw-body) 12px/1.45 var(--font-body); color: var(--ink-3); margin-top: 3px; }
.pv-warn { display: flex; gap: 10px; padding: 13px 14px; border-radius: 13px; background: var(--coral-soft); color: var(--coral-ink); font: var(--fw-strong) 12.5px/1.5 var(--font-body); margin: 4px 0 2px; }
.pv-warn svg { width: 17px; height: 17px; color: var(--coral); flex: 0 0 auto; margin-top: 1px; }
.pv-note { display: flex; gap: 9px; font: var(--fw-body) 12px/1.5 var(--font-body); color: var(--ink-3); margin-top: 14px; }
.pv-note svg { width: 15px; height: 15px; color: var(--ink-3); flex: 0 0 auto; margin-top: 1px; }

/* request submitted state */
.pv-done { text-align: center; padding: 18px 8px 6px; }
.pv-done__ic { width: 60px; height: 60px; border-radius: 50%; margin: 0 auto 16px; display: grid; place-items: center; background: var(--green-100); color: var(--green-600); }
.pv-done__ic svg { width: 30px; height: 30px; }
.pv-done__t { font: var(--fw-display) 20px var(--font-display); color: var(--ink); letter-spacing: -.02em; }
.pv-done__d { font: var(--fw-strong) 13.5px/1.6 var(--font-body); color: var(--ink-3); margin-top: 10px; max-width: 38ch; margin-left: auto; margin-right: auto; }
.pv-ticket { font: var(--fw-mono) 12px var(--font-mono); letter-spacing: .08em; color: var(--green-600); background: var(--green-100); display: inline-block; padding: 7px 13px; border-radius: 999px; margin-top: 16px; }
