/* ======================================================================
   Partvendo — Authentication pages (Login / Register / Password Recovery)
   ----------------------------------------------------------------------
   Standalone CSS appended via NopHtml.AppendCssFileParts in
   _LayoutLogin.cshtml — NOT in manifest, loaded only on auth pages.

   Built 1:1 from /Users/cemtugut/Downloads/partvendo-auth/ (login.html +
   register.html + styles.css). Layout, spacing, shadows preserved
   exactly; ONLY colors and fonts are remapped to Direction-D tokens.

   Design → token mapping
     #F7F4EE bg          → var(--pv-cream)
     #FFFFFF card        → var(--pv-color-white)
     #0F1115 text        → var(--pv-ink)
     #6B7280 muted       → var(--pv-muted)
     #9CA3AF faint       → var(--pv-muted-2)
     #E6E2DA border      → var(--pv-line)
     #EFEBE2 border-soft → var(--pv-line-2)
     #F58220 primary     → var(--pv-orange)
     #D9690E primary-dk  → var(--pv-orange-600)
     #0F1115 promo-bg    → var(--pv-ink)
     #1A1D22 promo-tint  → var(--pv-ink-2)
     #1F8A5B success     → var(--pv-green)
     #E8F4EC success-dim → var(--pv-green-tint)
     #E0463A danger      → var(--pv-color-error)
     Inter Tight         → var(--f-display) (Geist)
   ====================================================================== */

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  hide-header-footer body reset                                    ║
   ╚══════════════════════════════════════════════════════════════════╝ */
html.hide-header-footer,
html.hide-header-footer body {
  margin: 0;
  padding: 0;
  background: var(--pv-cream);
  min-height: 100vh;
  font-family: var(--f-display);
  font-size: 14px;
  color: var(--pv-ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.hide-header-footer .master-wrapper-page,
.hide-header-footer .master-wrapper-content,
.hide-header-footer .master-column-wrapper {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.hide-header-footer button { font-family: inherit; cursor: pointer; }
.hide-header-footer input,
.hide-header-footer select,
.hide-header-footer button { font-family: inherit; }
.hide-header-footer input:focus,
.hide-header-footer select:focus,
.hide-header-footer button:focus-visible {
  outline: 2px solid rgb(249 155 39 / 35%);
  outline-offset: 1px;
}

/* required asterisk */
.pv-auth-page .req,
.pv-auth-page .required { color: var(--pv-color-error); margin-left: 3px; font-weight: 700; }

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Logo — works for either custom .brand markup or the existing     ║
   ║  LogoViewComponent (.d-logo.pv-logo > .d-logo-mark + "Partvendo") ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-auth-page .brand,
.pv-auth-page .d-logo,
.pv-auth-page .pv-logo,
.pv-auth-page .header-logo a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
}
.pv-auth-page .brand-mark,
.pv-auth-page .d-logo-mark {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: var(--pv-ink);
  color: var(--pv-color-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pv-auth-page .brand-mark svg,
.pv-auth-page .d-logo-mark svg { width: 22px; height: 22px; }
.pv-auth-page .brand-mark.light { background: var(--pv-color-white); color: var(--pv-ink); }
.pv-auth-page .brand-name {
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.02em;
}
.pv-auth-page .brand-name.light { color: var(--pv-color-white); }
/* Inside promo (dark) panel: invert logo */
.pv-auth-page .promo .d-logo,
.pv-auth-page .promo .pv-logo,
.pv-auth-page .promo .brand { color: var(--pv-color-white); }
.pv-auth-page .promo .d-logo-mark {
  background: var(--pv-color-white);
  color: var(--pv-ink);
}

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Form atoms                                                        ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-auth-page .field-label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--pv-ink);
  margin-bottom: 6px;
  letter-spacing: -0.005em;
}
.pv-auth-page .field-input,
.pv-auth-page .field-select {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  font-size: 14.5px;
  color: var(--pv-ink);
  transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  font-family: inherit;
  box-sizing: border-box;
}
.pv-auth-page .field-input:focus,
.pv-auth-page .field-select:focus {
  border-color: rgb(15 17 21 / 55%);
}
.pv-auth-page .input-wrap .field-input:focus { border-color: transparent; }
.pv-auth-page .field-input::placeholder { color: var(--pv-muted-2); font-size: 14.5px; font-weight: 400; font-family: inherit; }
.pv-auth-page .field-hint {
  font-size: 11.5px;
  color: var(--pv-muted-2);
  margin-top: 5px;
}
.pv-auth-page .field-error {
  font-size: 11.5px;
  color: var(--pv-color-error);
  margin-top: 5px;
  font-weight: 500;
}
.pv-auth-page .field-group {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pv-auth-page .field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.pv-auth-page .field-row.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 520px) {
  .pv-auth-page .field-row,
  .pv-auth-page .field-row.cols-3 { grid-template-columns: 1fr; }
}

/* Input with prefix / suffix — flex layout, no z-index tricks needed */
.pv-auth-page .input-wrap {
  display: flex;
  align-items: center;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  transition: border-color .15s;
}
.pv-auth-page .input-wrap:focus-within {
  border-color: rgb(15 17 21 / 55%);
}
.pv-auth-page .input-wrap .field-input {
  flex: 1;
  min-width: 0;
  height: 46px;
  padding: 0 14px 0 6px;
  background: transparent;
  border: none;
  border-radius: 0;
  outline: none;
  box-shadow: none;
  transition: none;
}
.pv-auth-page .input-wrap.no-prefix .field-input { padding-left: 14px; }
.pv-auth-page .input-wrap .field-input.has-suffix { padding-right: 40px; }
.pv-auth-page .input-prefix {
  flex-shrink: 0;
  padding-left: 14px;
  color: var(--pv-muted);
  font-size: 14.5px;
  font-weight: 400;
  pointer-events: none;
  white-space: nowrap;
}
.pv-auth-page .input-suffix {
  position: absolute;
  right: 14px;
  top: 0;
  height: 46px;
  display: inline-flex;
  align-items: center;
  color: var(--pv-muted);
  font-size: 14px;
  font-weight: 400;
  pointer-events: auto;
  cursor: pointer;
}
.pv-auth-page .input-wrap { position: relative; }
.pv-auth-page .input-suffix.ok {
  color: var(--pv-green);
  font-size: 11.5px;
  font-weight: 600;
  gap: 4px;
}

/* Şifre gözü: input'un/overlay'lerin üstünde kalsın (z-index) + mobil dokunma
   alanı 44px (görsel konum ~aynı: right:0 + 44px genişlik ortalanmış ikon). */
.pv-auth-page .input-suffix.password-eye {
  z-index: 2;
  right: 0;
  min-width: 44px;
  justify-content: center;
}
.pv-auth-page .input-wrap .field-input.has-suffix { padding-right: 46px; }
/* Açık durum: üstü çizili göz */
.pv-auth-page .password-eye.password-eye-open::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 1.8px;
  border-radius: 1px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
}
/* Tarayıcının native şifre-göster/temizle butonları (Edge ::-ms-reveal, alan
   doluyken çıkar) custom gözün üstüne binmesin. */
.pv-auth-page input::-ms-reveal,
.pv-auth-page input::-ms-clear { display: none; }

/* Select with chevron */
.pv-auth-page .field-select-wrap { position: relative; }
.pv-auth-page .field-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236A645C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
}

/* Checkboxes — hidden native input + visual .check-box span */
.pv-auth-page .check-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  cursor: pointer;
  position: relative;
}
.pv-auth-page .check-row .check-box {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--pv-line);
  border-radius: 5px;
  background: var(--pv-color-white);
  flex: 0 0 auto;
  margin-top: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s;
}
.pv-auth-page .check-row input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pv-auth-page .check-row input:checked + .check-box {
  background: var(--pv-ink);
  border-color: var(--pv-ink);
}
.pv-auth-page .check-row input:checked + .check-box::after {
  content: '';
  width: 10px;
  height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-11'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pv-auth-page .check-row a {
  color: var(--pv-ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pv-auth-page .opt-tag {
  color: var(--pv-muted-2);
  font-size: 12px;
  margin-left: 4px;
}

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Buttons                                                          ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-auth-page .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: 12px;
  padding: 0 22px;
  height: 48px;
  font-weight: 700;
  font-size: 14.5px;
  font-family: inherit;
  cursor: pointer;
  transition: transform .05s, box-shadow .15s, background .15s;
  text-decoration: none;
  box-sizing: border-box;
}
.pv-auth-page .btn:active { transform: translateY(1px); }
.pv-auth-page .btn-primary {
  background: var(--pv-orange);
  color: var(--pv-color-white);
  height: 52px;
  border-radius: 13px;
  box-shadow: 0 2px 0 var(--pv-orange-700), 0 8px 18px rgb(249 155 39 / 25%);
}
.pv-auth-page .btn-primary:hover {
  background: var(--pv-orange-600);
  color: var(--pv-color-white);
}
.pv-auth-page .btn-ghost {
  background: var(--pv-color-white);
  color: var(--pv-ink);
  border: 1.5px solid var(--pv-line);
}
.pv-auth-page .btn-ghost:hover { border-color: var(--pv-ink); }
.pv-auth-page .btn-link {
  background: transparent;
  border: none;
  padding: 4px 0;
  color: var(--pv-ink);
  font-weight: 600;
  font-size: 13.5px;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.pv-auth-page .btn-block { width: 100%; }
.pv-auth-page .btn .ic { width: 18px; height: 18px; }

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Shared layout — section-head + or-row                            ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-auth-page .section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 28px 0 16px;
}
.pv-auth-page .section-head .n {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--pv-line-2);
  color: var(--pv-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex: 0 0 auto;
}
.pv-auth-page .section-head h3 {
  margin: 0;
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.pv-auth-page .section-head p {
  margin: 1px 0 0;
  font-size: 12.5px;
  color: var(--pv-muted);
}
.pv-auth-page .or-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0 16px;
}
.pv-auth-page .or-row::before,
.pv-auth-page .or-row::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--pv-line);
}
.pv-auth-page .or-row span {
  font-size: 11px;
  color: var(--pv-muted-2);
  letter-spacing: 0.14em;
  font-weight: 600;
}

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  LOGIN — split layout (left brand story / right card)             ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-login-page {
  width: 100%;
  min-height: 100vh;
  background: var(--pv-cream);
}
.pv-login-page .login-shell {
  width: 100%;
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr;
  background: var(--pv-cream);
}
@media (min-width: 960px) {
  .pv-login-page .login-shell { grid-template-columns: 1.1fr 1fr; }
}

/* LEFT brand story — hidden on mobile */
.pv-login-page .login-left {
  display: none;
  padding: 48px 56px;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  background:
    radial-gradient(900px 600px at -10% 110%, rgb(249 155 39 / 10%), transparent 60%),
    var(--pv-cream);
}
@media (min-width: 960px) { .pv-login-page .login-left { display: flex; } }

/* Logo in left brand story — top-left, NOT centered */
.pv-login-page .login-left > .header-logo {
  display: inline-flex;
  align-self: flex-start;
  margin: 0;
  padding: 0;
}
.pv-login-page .login-left > .header-logo a {
  font-size: 22px;
}

/* Middle wrapper (pill + h1 + sub + stats) — stretch to fill width */
.pv-login-page .login-left > div:not(.header-logo):not(.login-foot) {
  width: 100%;
  align-self: stretch;
}

/* Footer — bottom-left */
.pv-login-page .login-foot { align-self: flex-start; }
.pv-login-page .login-left h1 {
  font-size: 48px;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--pv-ink);
}
.pv-login-page .login-left h1 .accent { color: var(--pv-orange); }
.pv-login-page .login-left .sub {
  font-size: 16px;
  color: var(--pv-muted);
  margin: 16px 0 0;
  max-width: 460px;
  line-height: 1.55;
}
.pv-login-page .login-left .pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  padding: 7px 12px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  color: var(--pv-ink-2);
  margin-bottom: 22px;
}
.pv-login-page .login-left .pill .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--pv-green);
}
.pv-login-page .login-left .stat-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
  margin-top: 36px;
}
.pv-login-page .login-left .stat {
  padding: 14px 0;
  border-top: 1px solid var(--pv-line);
}
.pv-login-page .login-left .stat .k {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--pv-ink);
}
.pv-login-page .login-left .stat .v {
  font-size: 12px;
  color: var(--pv-muted);
  margin-top: 2px;
}
.pv-login-page .login-foot {
  font-size: 12px;
  color: var(--pv-muted);
  display: flex;
  gap: 18px;
}
.pv-login-page .login-foot a { text-decoration: none; color: inherit; }
.pv-login-page .login-foot a:hover { color: var(--pv-ink); }

/* RIGHT login card
   flex-direction: column ŞART — kolonun içinde .mobile-brand (mobil logo) + hata partial'ı +
   .login-card alt alta durmalı. Eksikken hepsi TEK SATIRA diziliyor, mobilde logo kartın
   soluna düşüp düzeni bozuyordu (masaüstünde logo display:none olduğu için fark edilmiyordu). */
.pv-login-page .login-right {
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
@media (min-width: 960px) { .pv-login-page .login-right { padding: 56px 64px 56px 24px; } }

.pv-login-page .login-card {
  width: 100%;
  max-width: 440px;
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  border-radius: 18px;
  padding: 32px;
  box-shadow: 0 1px 0 rgb(0 0 0 / 2%), 0 24px 50px rgb(15 17 21 / 8%);
}
@media (max-width: 480px) {
  .pv-login-page .login-card {
    padding: 24px;
    box-shadow: none;
    border-color: transparent;
    background: transparent;
  }
  .pv-login-page .login-right { padding: 24px 22px 28px; }
}

.pv-login-page .login-eyebrow {
  font-size: 11px;
  font-weight: 700;
  color: var(--pv-muted);
  letter-spacing: 0.18em;
  margin-bottom: 8px;
}
.pv-login-page .login-title {
  font-size: 28px;
  font-weight: 800;
  margin: 0;
  letter-spacing: -0.02em;
  color: var(--pv-ink);
}
.pv-login-page .login-subtitle {
  font-size: 14px;
  color: var(--pv-muted);
  margin: 8px 0 24px;
}
.pv-login-page .row-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2px;
}
.pv-login-page .social-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.pv-login-page .social-btn {
  height: 46px;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--pv-ink);
  text-decoration: none;
  cursor: pointer;
}
.pv-login-page .social-btn:hover { border-color: var(--pv-ink); }
.pv-login-page .login-tail {
  text-align: center;
  font-size: 14px;
  color: var(--pv-muted);
  margin-top: 22px;
}
.pv-login-page .login-tail a {
  color: var(--pv-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* mobile-only header logo (desktop hides it; .login-left shows brand on desktop) */
.pv-login-page .mobile-brand {
  display: flex;
  justify-content: center;
  margin: 24px 0 12px;
}
@media (min-width: 960px) { .pv-login-page .mobile-brand { display: none; } }

/* External auth plugin (Partvendo.Plugin.ExternalAuth) — adapt to .social-row */
.pv-login-page .external-authentication .pv-extauth {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0;
  max-width: none;
}
.pv-login-page .external-authentication .pv-extauth__form { margin: 0; }
.pv-login-page .external-authentication .pv-extauth__btn {
  width: 100%;
  height: 46px;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--pv-ink);
  cursor: pointer;
  padding: 0 14px;
}
.pv-login-page .external-authentication .pv-extauth__btn:hover {
  border-color: var(--pv-ink);
  background: var(--pv-color-white);
}
.pv-login-page .external-authentication > .title { display: none; }
@media (max-width: 480px) {
  .pv-login-page .external-authentication .pv-extauth { grid-template-columns: 1fr; }
}

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  REGISTER — split layout (promo + form)                           ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-register-page .reg-shell {
  min-height: 100vh;
  background: var(--pv-cream);
  display: flex;
  justify-content: center;
  padding: 24px;
}
.pv-register-page .reg-wrap {
  width: 100%;
  max-width: 1280px;
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgb(0 0 0 / 2%), 0 24px 60px rgb(15 17 21 / 10%);
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 960px) {
  .pv-register-page .reg-wrap { grid-template-columns: 460px 1fr; }
}
@media (max-width: 720px) {
  .pv-register-page .reg-shell { padding: 0; }
  .pv-register-page .reg-wrap {
    border-radius: 0;
    border: none;
    box-shadow: none;
  }
}

/* PROMO PANEL */
.pv-register-page .promo {
  background: var(--pv-ink);
  color: var(--pv-color-white);
  padding: 32px 28px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media (min-width: 960px) { .pv-register-page .promo { padding: 40px 36px; } }
.pv-register-page .promo::before {
  content: '';
  position: absolute;
  top: -120px;
  right: -120px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgb(249 155 39 / 40%), rgb(249 155 39 / 0%));
  pointer-events: none;
}
.pv-register-page .promo > * { position: relative; z-index: 1; }
.pv-register-page .promo .top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.pv-register-page .promo .back {
  background: transparent;
  border: none;
  color: var(--pv-color-white);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  font-weight: 600;
  padding: 4px 0;
  text-decoration: none;
  cursor: pointer;
}
.pv-register-page .promo .back svg { width: 16px; height: 16px; }
@media (min-width: 960px) { .pv-register-page .promo .back { display: none; } }

.pv-register-page .promo-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--pv-ink-2);
  /* Beyaz etiket metni (turuncu ~7:1 idi; beyaz ~15:1 daha net).
     İkon currentColor kullandığı için o da beyaza döner; turuncu
     kenarlık aksan olarak korunur. */
  color: var(--pv-color-white);
  padding: 6px 12px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border: 1px solid rgb(249 155 39 / 25%);
  align-self: flex-start;
  margin: 36px 0 18px;
}
@media (max-width: 959px) { .pv-register-page .promo-tag { margin-top: 22px; } }
.pv-register-page .promo h2 {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--pv-color-white);
}
@media (min-width: 960px) { .pv-register-page .promo h2 { font-size: 34px; } }
.pv-register-page .promo h2 .accent { color: var(--pv-orange); }
.pv-register-page .promo p.lead {
  font-size: 14px;
  color: rgb(255 255 255 / 70%);
  margin: 14px 0 0;
  line-height: 1.55;
  max-width: 380px;
}

.pv-register-page .benefits {
  margin: 32px 0 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pv-register-page .benefit { display: flex; gap: 14px; }
.pv-register-page .benefit .b-ic {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--pv-ink-2);
  color: var(--pv-orange);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(249 155 39 / 22%);
}
.pv-register-page .benefit .b-k {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--pv-color-white);
}
.pv-register-page .benefit .b-v {
  font-size: 12.5px;
  color: rgb(255 255 255 / 65%);
  margin-top: 2px;
  line-height: 1.5;
}

.pv-register-page .social-proof {
  margin-top: 28px;
  background: var(--pv-ink-2);
  border: 1px solid rgb(255 255 255 / 6%);
  border-radius: 14px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.pv-register-page .avatars { display: flex; }
.pv-register-page .avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid var(--pv-ink);
  /* Koyu baş harf: beyaz, canlı avatar tonlarında düşük kontrasttı
     (turuncuda 2.15:1). Koyu ile turuncu 8.7:1 / mavi 5.1:1 / yeşil 5.9:1. */
  color: var(--pv-ink);
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pv-register-page .avatar + .avatar { margin-left: -8px; }
.pv-register-page .avatar.o { background: var(--pv-orange); }
.pv-register-page .avatar.b { background: #3B82F6; }
/* Marka yeşili (#1F8A5B) orta parlaklıkta — koyu yazıyla 4.34:1 (AA altı);
   avatar için bir tık açık ton ile 5.9:1'e çıkarıldı. */
.pv-register-page .avatar.g { background: #2EA46C; }
.pv-register-page .social-proof .sp-k {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--pv-color-white);
}
.pv-register-page .social-proof .sp-v {
  font-size: 11.5px;
  color: rgb(255 255 255 / 65%);
  margin-top: 1px;
}

/* FORM PANEL */
.pv-register-page .form-panel {
  padding: 28px 24px 36px;
  overflow: auto;
}
@media (min-width: 960px) { .pv-register-page .form-panel { padding: 36px 48px 48px; } }
@media (min-width: 1200px) { .pv-register-page .form-panel { padding: 40px 64px 56px; } }

.pv-register-page .form-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}
.pv-register-page .form-head .back {
  background: transparent;
  border: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--pv-muted);
  font-size: 13px;
  font-weight: 600;
  padding: 4px 0;
  text-decoration: none;
  cursor: pointer;
}
.pv-register-page .form-head .back svg { width: 16px; height: 16px; }
@media (max-width: 959px) { .pv-register-page .form-head .back { display: none; } }
.pv-register-page .form-head .login-link {
  font-size: 13px;
  color: var(--pv-muted);
}
.pv-register-page .form-head .login-link a {
  color: var(--pv-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Type tabs */
.pv-register-page .type-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  background: var(--pv-line-2);
  border-radius: 12px;
  margin-bottom: 24px;
}
.pv-register-page .type-tab {
  height: 42px;
  background: transparent;
  border: none;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--pv-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  font-family: inherit;
}
.pv-register-page .type-tab.active {
  background: var(--pv-color-white);
  color: var(--pv-ink);
  box-shadow: 0 1px 2px rgb(0 0 0 / 6%);
}
.pv-register-page .type-tab .pill-badge {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  background: var(--pv-ink);
  color: var(--pv-color-white);
  padding: 2px 6px;
  border-radius: 4px;
}
.pv-register-page .type-tab.active .pill-badge { background: var(--pv-orange); }
@media (max-width: 480px) {
  .pv-register-page .type-tab .pill-badge { display: none; }
}

/* Form title + sub */
.pv-register-page .form-title {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--pv-ink);
}
.pv-register-page .form-sub {
  font-size: 13.5px;
  color: var(--pv-muted);
  margin: 6px 0 0;
  line-height: 1.55;
}

/* File upload + uploaded row */
.pv-register-page .file-drop {
  border: 1.5px dashed var(--pv-line);
  background: var(--pv-cream);
  border-radius: 12px;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.pv-register-page .file-drop .fd-ic {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  color: var(--pv-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.pv-register-page .file-drop .fd-title { font-size: 13.5px; font-weight: 600; color: var(--pv-ink); }
.pv-register-page .file-drop .fd-sub { font-size: 12px; color: var(--pv-muted); margin-top: 1px; }
.pv-register-page .file-drop .fd-sub a {
  color: var(--pv-orange-600);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pv-register-page .file-row {
  margin-top: 10px;
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.pv-register-page .file-row .fr-ic {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--pv-green-tint);
  color: var(--pv-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.pv-register-page .file-row .fr-name { font-size: 13px; font-weight: 600; color: var(--pv-ink); }
.pv-register-page .file-row .fr-meta { font-size: 11px; color: var(--pv-muted); }
.pv-register-page .file-row .fr-del {
  background: transparent;
  border: none;
  color: var(--pv-muted);
  padding: 6px;
  cursor: pointer;
}

/* Submit row */
.pv-register-page .submit-row {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}
.pv-register-page .submit-row .btn-primary {
  height: 54px;
  font-size: 15px;
}
.pv-register-page .submit-note {
  font-size: 12px;
  color: var(--pv-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  line-height: 1.45;
}

/* Type toggle: keep promo panel visible for BOTH bireysel & kurumsal —
   the promo CONTENT differs (see [data-show-for] inside .promo); only the
   text/benefits switch, not the panel itself. */
.pv-register-page[data-type="kurumsal"] #bireysel-form,
.pv-register-page[data-type="bireysel"] #kurumsal-form { display: none; }

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Password recovery / Change password / Registration result        ║
   ║  Simple centered card layout.                                      ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-password-recovery-page,
.html-password-recovery-confirm-page .page,
.html-change-password-page .page,
.html-registration-result-page .page {
  min-height: 100vh;
  background: var(--pv-cream);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 24px;
}
.pv-password-recovery-page .header-logo,
.html-password-recovery-confirm-page .header-logo,
.html-change-password-page .header-logo,
.html-registration-result-page .header-logo {
  margin: 0 0 22px;
}
.pv-password-recovery-page .page-title,
.html-password-recovery-confirm-page .page-title,
.html-change-password-page .page-title,
.html-registration-result-page .page-title {
  text-align: center;
  margin: 0 0 24px;
  max-width: 440px;
}
.pv-password-recovery-page .page-title h1,
.html-password-recovery-confirm-page .page-title h1,
.html-change-password-page .page-title h1,
.html-registration-result-page .page-title h1 {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--pv-ink);
}
.pv-password-recovery-page .page-title .page-subtitle,
.html-password-recovery-confirm-page .page-title .page-subtitle,
.html-change-password-page .page-title .page-subtitle {
  font-size: 14px;
  color: var(--pv-muted);
  margin: 8px 0 0;
}
.pv-password-recovery-page .page-body,
.html-password-recovery-confirm-page .page-body,
.html-change-password-page .page-body,
.html-registration-result-page .page-body {
  width: 100%;
  max-width: 440px;
}
.pv-password-recovery-page .back-to-home {
  align-self: flex-start;
  background: transparent;
  border: 0;
  color: var(--pv-muted);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  margin-bottom: 8px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pv-password-recovery-page .back-to-home:hover { color: var(--pv-ink); }

/* Recovery/ChangePassword forms — fall back to card */
.pv-password-recovery-page .fieldset,
.html-change-password-page .fieldset,
.html-registration-result-page .result {
  background: var(--pv-color-white);
  border: 1px solid var(--pv-line);
  border-radius: 18px;
  padding: 32px;
  box-shadow: 0 1px 0 rgb(0 0 0 / 2%), 0 18px 40px rgb(15 17 21 / 6%);
}

/* Legacy .inputs (for Recovery/ChangePassword) — basic field styling */
.pv-password-recovery-page .inputs,
.html-change-password-page .inputs {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 14px;
}
.pv-password-recovery-page .inputs > label,
.html-change-password-page .inputs > label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--pv-ink);
  letter-spacing: -0.005em;
}
.pv-password-recovery-page .inputs > input,
.pv-password-recovery-page .inputs > select,
.html-change-password-page .inputs > input,
.html-change-password-page .inputs > select {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  font-size: 14.5px;
  color: var(--pv-ink);
  outline: none;
  font-family: inherit;
  transition: border-color .15s;
}
.pv-password-recovery-page .inputs > input:focus,
.html-change-password-page .inputs > input:focus {
  border-color: rgb(15 17 21 / 55%);
}
.pv-password-recovery-page .buttons,
.html-change-password-page .buttons,
.html-registration-result-page .buttons { margin-top: 22px; }
.pv-password-recovery-page .buttons button,
.pv-password-recovery-page .buttons .d-btn,
.html-change-password-page .buttons button,
.html-change-password-page .buttons .d-btn {
  width: 100%;
  height: 52px;
  border-radius: 13px;
  background: var(--pv-orange);
  color: var(--pv-color-white);
  border: none;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  font-family: inherit;
  box-shadow: 0 2px 0 var(--pv-orange-700), 0 8px 18px rgb(249 155 39 / 25%);
}
.pv-password-recovery-page .buttons button:hover,
.html-change-password-page .buttons button:hover { background: var(--pv-orange-600); }

/* Validation */
.pv-auth-page .message-error,
.pv-auth-page .field-validation-error {
  font-size: 11.5px;
  color: var(--pv-color-error);
  margin-top: 5px;
  font-weight: 500;
  display: block;
}
.pv-auth-page .message-error:empty { display: none; }
.pv-auth-page .field-validation-valid { display: none; }
.pv-auth-page .input-validation-error { border-color: var(--pv-color-error) !important; }
.pv-auth-page .validation-summary-errors {
  background: var(--pv-color-error-soft);
  border: 1px solid var(--pv-color-error);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 14px;
  color: var(--pv-color-error);
  font-size: 13px;
}
.pv-auth-page .validation-summary-errors ul {
  margin: 0;
  padding-left: 18px;
}

/* CAPTCHA — force visible */
.pv-auth-page .captcha-box,
.pv-auth-page nop-captcha,
.pv-auth-page .g-recaptcha {
  display: flex !important;
  justify-content: center;
  margin: 14px 0 4px;
  visibility: visible !important;
  overflow: visible;
}
@media (max-width: 360px) {
  .pv-auth-page .captcha-box,
  .pv-auth-page .g-recaptcha {
    transform: scale(0.85);
    transform-origin: center top;
  }
}

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Customer attributes (nopCommerce _CustomerAttributes partial)    ║
   ║  Section 4 "Ek bilgiler": Vergi No, Vergi Dairesi, Şirket Tipi    ║
   ║  Default partial renders <label>:</label><input/> without our     ║
   ║  field classes — override to match .field-input / .field-select.  ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-auth-page .customer-attributes-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pv-auth-page .customer-attributes-wrap > * {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
}
.pv-auth-page .customer-attributes-wrap label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--pv-ink);
  margin: 0;
  letter-spacing: -0.005em;
}
/* Strip trailing ":" from labels (server adds it) */
.pv-auth-page .customer-attributes-wrap label::after { content: ''; }
.pv-auth-page .customer-attributes-wrap input[type="text"],
.pv-auth-page .customer-attributes-wrap input[type="email"],
.pv-auth-page .customer-attributes-wrap input[type="tel"],
.pv-auth-page .customer-attributes-wrap input[type="number"],
.pv-auth-page .customer-attributes-wrap input:not([type]),
.pv-auth-page .customer-attributes-wrap select,
.pv-auth-page .customer-attributes-wrap textarea {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  border-radius: 11px;
  font-size: 14.5px;
  color: var(--pv-ink);
  outline: none;
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}
.pv-auth-page .customer-attributes-wrap textarea {
  height: auto;
  min-height: 96px;
  padding: 12px 14px;
}
.pv-auth-page .customer-attributes-wrap input:focus,
.pv-auth-page .customer-attributes-wrap select:focus,
.pv-auth-page .customer-attributes-wrap textarea:focus {
  border-color: rgb(15 17 21 / 55%);
}
.pv-auth-page .customer-attributes-wrap input::placeholder {
  color: var(--pv-muted-2);
}
/* Select chevron */
.pv-auth-page .customer-attributes-wrap select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236A645C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}
/* Hide the orphan "*" that nop-required renders as standalone <span class="required"> */
.pv-auth-page .customer-attributes-wrap .required {
  display: none;
}
/* Add asterisk to label of required field via :has() */
.pv-auth-page .customer-attributes-wrap > *:has(.required) label::after,
.pv-auth-page .customer-attributes-wrap > *:has(nop-required) label::after {
  content: '*';
  color: var(--pv-color-error);
  margin-left: 3px;
  font-weight: 700;
}

/* nop-required + asterisk asterisk fallback (orphan handling) */
.pv-auth-page .form-panel > .required,
.pv-auth-page .pv-auth-form > .required {
  display: none;
}

/* ======================================================================
   Register sayfası — daha önce Register.cshtml içinde inline <style> idi.
   Sayfa içi CSS tutmama kuralı gereği buraya taşındı (bu dosya auth
   sayfalarında _Root.Head üzerinden bundle'lardan SONRA yüklenir).
   ====================================================================== */

/* Bireysel/Kurumsal sekme görünürlük toggle'ı */
.pv-register-page [data-show-for] { display: none; }
.pv-register-page[data-type="bireysel"] [data-show-for="bireysel"] { display: block; }
.pv-register-page[data-type="kurumsal"] [data-show-for="kurumsal"] { display: block; }
.pv-register-page[data-type="kurumsal"] .auth-section[data-show-for="kurumsal"],
.pv-register-page[data-type="kurumsal"] .section-head[data-show-for="kurumsal"] { display: flex; }
.pv-register-page[data-type="kurumsal"] .field-group[data-show-for="kurumsal"],
.pv-register-page[data-type="bireysel"] .field-group[data-show-for="bireysel"] { display: flex; }
.pv-register-page[data-type="kurumsal"] .submit-row[data-show-for="kurumsal"] { display: flex; }
.pv-register-page[data-type="kurumsal"] .field-hint[data-show-for="kurumsal"] { display: block; }

/* Dosya yükleme alanı */
.reg-drop-area {
    position: relative;
    width: 100%;
    border: 2px dashed var(--color-border, #d1d5db);
    border-radius: 10px;
    padding: 28px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: border-color .18s, background .18s;
    background: var(--color-surface, #fafafa);
    text-align: center;
}
.reg-drop-area:hover, .reg-drop-area.dragover {
    border-color: var(--color-primary, #2563eb);
    background: var(--color-primary-light, #eff6ff);
}
.reg-drop-area svg { color: var(--color-primary, #2563eb); opacity: .7; }
.reg-drop-area span { font-size: .9rem; color: var(--color-text-muted, #6b7280); }
.reg-drop-area b { color: var(--color-primary, #2563eb); }
.reg-drop-hint { font-size: .78rem !important; opacity: .75; }
.reg-drop-area input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.reg-file-list { width: 100%; display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.reg-file-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 8px 12px; border-radius: 8px;
    background: var(--color-surface-2, #f3f4f6);
    font-size: .85rem;
}
.reg-file-item-info { display: flex; align-items: center; gap: 8px; min-width: 0; }
.reg-file-item-name { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.reg-file-item-size { color: var(--color-text-muted, #6b7280); white-space: nowrap; }
.reg-file-item-remove {
    cursor: pointer; padding: 4px; border-radius: 4px; color: var(--color-danger, #ef4444);
    display: flex; align-items: center; flex-shrink: 0;
    background: none; border: none;
}
.reg-file-item-remove:hover { background: var(--color-danger-light, #fee2e2); }

/* Submit / kaydediliyor göstergesi */
.reg-submitting-overlay {
    display: none;
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(255, 255, 255, .72);
    backdrop-filter: blur(2px);
    align-items: center; justify-content: center; flex-direction: column; gap: 16px;
}
.pv-register-page.is-submitting .reg-submitting-overlay { display: flex; }
.reg-submitting-overlay .reg-spinner {
    width: 46px; height: 46px; border-radius: 50%;
    border: 3px solid var(--color-primary-light, #dbeafe);
    border-top-color: var(--color-primary, #2563eb);
    animation: regSpin .7s linear infinite;
}
.reg-submitting-overlay .reg-submitting-text {
    font-size: .98rem; font-weight: 600; color: var(--color-text, #1f2937);
}
.reg-submitting-overlay .reg-submitting-sub {
    font-size: .82rem; color: var(--color-text-muted, #6b7280); margin-top: -8px;
}
.pv-register-page.is-submitting button[name="register-button"] {
    position: relative; pointer-events: none; opacity: .85;
}
button[name="register-button"][aria-busy="true"] { color: transparent !important; }
button[name="register-button"][aria-busy="true"] svg { visibility: hidden; }
button[name="register-button"][aria-busy="true"]::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    width: 18px; height: 18px; margin: -9px 0 0 -9px;
    border: 2px solid rgba(255, 255, 255, .5);
    border-top-color: #fff; border-radius: 50%;
    animation: regSpin .7s linear infinite;
}
@keyframes regSpin { to { transform: rotate(360deg); } }

/* ╔══════════════════════════════════════════════════════════════════╗
   ║  Yasal sözleşmeler / onaylar — checklist + modal                  ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.pv-register-page .reg-consents {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pv-register-page .reg-consents-head h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--pv-ink);
  margin: 0 0 3px;
}
.pv-register-page .reg-consents-head p {
  font-size: 12.5px;
  color: var(--pv-muted);
  margin: 0;
  line-height: 1.5;
}
/* Checklist üyelik tipine göre değişir: iki .consent-list render edilir. Varsayılan
   gizli; yalnız aktif sekmenin tipine uyan liste (daha yüksek specificity) gösterilir.
   Aksi halde her iki listede de "Üyelik Sözleşmesi" satırı olduğundan çift görünür. */
.pv-register-page .consent-list {
  display: none;
  flex-direction: column;
  gap: 8px;
}
.pv-register-page[data-type="bireysel"] .consent-list[data-show-for="bireysel"],
.pv-register-page[data-type="kurumsal"] .consent-list[data-show-for="kurumsal"] {
  display: flex;
}

/* Satır */
.pv-register-page .consent-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border: 1.5px solid var(--pv-line);
  border-radius: 12px;
  background: var(--pv-color-white);
  /* Satırın tamamı modalı açar (daire + chevron dahil) — bkz. Register.cshtml consent JS */
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pv-register-page .consent-row.is-approved {
  border-color: var(--pv-green);
  background: var(--pv-green-tint);
}
.pv-register-page .consent-row.is-declined {
  border-color: var(--pv-line-2);
  background: var(--pv-cream);
}
.pv-register-page .consent-row.is-missing {
  border-color: var(--pv-color-error);
  box-shadow: 0 0 0 3px var(--pv-color-error-soft);
}

/* Durum göstergesi (soldaki daire) */
.pv-register-page .consent-status {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--pv-line);
  background: var(--pv-cream);
  position: relative;
  transition: background .15s, border-color .15s;
}
.pv-register-page .consent-row.is-approved .consent-status {
  background: var(--pv-green);
  border-color: var(--pv-green);
}
.pv-register-page .consent-row.is-approved .consent-status::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-11'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.pv-register-page .consent-row.is-declined .consent-status {
  border-color: var(--pv-muted-2);
}
.pv-register-page .consent-row.is-declined .consent-status::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 10px; height: 2px;
  margin: -1px 0 0 -5px;
  background: var(--pv-muted-2);
  border-radius: 2px;
}

/* "info" satırı (Aydınlatma Metni): onay gerektirmez — yalnız görüntülenir. Durum dairesi
   nötr bir "i" bilgisi gösterir; yeşil onay / kırmızı eksik durumuyla karışmasın. */
.pv-register-page .consent-row--info .consent-status {
  border-color: var(--pv-line-2);
  background: var(--pv-cream);
}
.pv-register-page .consent-row--info .consent-status::after {
  content: 'i';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  font-style: italic;
  color: var(--pv-muted);
}

/* Kurumsal ticari ileti bilgilendirmesi (onay DEĞİL — tacirden onay alınmaz) */
.pv-register-page .consent-corporate-info {
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--pv-muted);
  background: var(--pv-cream);
  border: 1px solid var(--pv-line);
  border-radius: 12px;
  padding: 11px 14px;
  margin-top: 4px;
}
.pv-register-page .consent-corporate-info strong { color: var(--pv-ink); }

/* Açan buton (başlık + durum metni) */
.pv-register-page .consent-open {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  font: inherit;
}
.pv-register-page .consent-name {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--pv-ink);
}
.pv-register-page .consent-open:hover .consent-name {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pv-register-page .consent-action {
  font-size: 12px;
  color: var(--pv-muted);
}
.pv-register-page .consent-row.is-approved .consent-action {
  color: var(--pv-green);
  font-weight: 600;
}
.pv-register-page .consent-chevron {
  flex: 0 0 auto;
  color: var(--pv-muted-2);
  transition: transform .15s, color .15s;
}
.pv-register-page .consent-open:hover ~ .consent-chevron,
.pv-register-page .consent-row:hover .consent-chevron {
  color: var(--pv-orange);
  transform: translateX(2px);
}
/* Native input'lar gizli — durum modal onayıyla programatik set edilir */
.pv-register-page .consent-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.pv-register-page .consent-newsletter {
  margin-top: 4px;
}

/* ── Modal ── */
body.consent-modal-open { overflow: hidden; }
.consent-modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.consent-modal[hidden] { display: none; }
.consent-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 39, 66, .55);
  backdrop-filter: blur(2px);
}
.consent-modal__dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(760px, 100%);
  max-height: min(88vh, 900px);
  background: var(--pv-color-white);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(8, 39, 66, .28);
  overflow: hidden;
  animation: consentModalIn .18s ease-out;
}
@keyframes consentModalIn {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.consent-modal__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--pv-line);
  flex: 0 0 auto;
}
.consent-modal__title {
  flex: 1 1 auto;
  font-size: 16px;
  font-weight: 700;
  color: var(--pv-ink);
  margin: 0;
  line-height: 1.3;
}
.consent-modal__x {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 8px;
  background: var(--pv-cream);
  color: var(--pv-muted);
  cursor: pointer;
  transition: background .15s, color .15s;
}
.consent-modal__x:hover { background: var(--pv-line); color: var(--pv-ink); }
.consent-modal__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 22px 24px;
  -webkit-overflow-scrolling: touch;
}
.consent-modal__body .legal-doc { font-size: 14px; }
/* Belgenin kendi başlık bandı gizlenir; modal başlık çubuğu zaten liste ismini gösterir
   (isimler her yerde tutarlı olsun diye). */
.consent-modal__body .legal-doc .legal-doc__hero { display: none; }
.consent-modal__body .legal-doc .legal-doc__intro { margin-top: 0; }
.consent-modal__loading {
  padding: 40px 0;
  text-align: center;
  color: var(--pv-muted);
  font-size: 14px;
}
.consent-modal__error { color: var(--pv-color-error); font-size: 14px; }
.consent-modal__foot {
  flex: 0 0 auto;
  padding: 14px 20px;
  border-top: 1px solid var(--pv-line);
  background: var(--pv-cream);
}
.consent-modal__hint {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--pv-muted);
  text-align: center;
}
.consent-modal__hint[hidden] { display: none; }
.consent-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
/* Modal .pv-auth-page dışında olduğundan buton stilleri burada kendi kendine yeter */
.consent-modal .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 130px;
  height: 48px;
  padding: 0 22px;
  border: none;
  border-radius: 12px;
  font-family: inherit;
  font-weight: 700;
  font-size: 14.5px;
  cursor: pointer;
  box-sizing: border-box;
  transition: transform .05s, box-shadow .15s, background .15s, border-color .15s;
}
.consent-modal .btn:active { transform: translateY(1px); }
.consent-modal .btn-primary {
  background: var(--pv-orange);
  color: var(--pv-color-white);
  box-shadow: 0 2px 0 var(--pv-orange-700), 0 8px 18px rgb(249 155 39 / 25%);
}
.consent-modal .btn-primary:hover { background: var(--pv-orange-600); }
.consent-modal .btn-ghost {
  background: var(--pv-color-white);
  border: 1.5px solid var(--pv-line);
  color: var(--pv-ink);
}
.consent-modal .btn-ghost:hover { border-color: var(--pv-muted-2); }
.consent-modal .btn[disabled] { opacity: .5; cursor: not-allowed; pointer-events: none; }
.consent-modal .btn[hidden] { display: none; }

@media (max-width: 560px) {
  .consent-modal { padding: 0; }
  .consent-modal__dialog { width: 100%; max-height: 100vh; border-radius: 0; }
  .consent-modal__actions .btn { flex: 1 1 auto; min-width: 0; }
}
