
:root {
  --zv-text: #241a1f;
  --zv-text-soft: #5d4a53;
  --zv-border: rgba(88, 61, 74, 0.16);
  --zv-border-strong: rgba(88, 61, 74, 0.24);
  --zv-surface: #ffffff;
  --zv-surface-soft: #fbf7f8;
  --zv-surface-muted: #f6eef1;
  --zv-accent: #b14d74;
  --zv-accent-soft: rgba(177, 77, 116, 0.10);
  --zv-shadow: 0 10px 30px rgba(58, 30, 41, 0.08);
}

.zv-core {
  display: grid;
  gap: 1.5rem;
  color: var(--zv-text);
}

.zv-core-card {
  border: 1px solid var(--zv-border);
  border-radius: 24px;
  padding: 1.25rem;
  background: var(--zv-surface);
  box-shadow: var(--zv-shadow);
  color: var(--zv-text);
}

.zv-core-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--zv-accent);
  font-weight: 700;
  margin-bottom: 0.45rem;
}

.zv-core h2,
.zv-core h3 { margin: 0 0 0.5rem; color: var(--zv-text); }
.zv-core p,
.zv-core li,
.zv-core small,
.zv-core legend,
.zv-core label,
.zv-core span,
.zv-core div { color: inherit; }

.zv-core__notice {
  border-radius: 16px;
  padding: 0.9rem 1rem;
  background: var(--zv-surface-muted);
  border: 1px solid var(--zv-border);
  color: var(--zv-text);
}
.zv-core__notice.is-error { border-color: rgba(183,51,77,.35); background: rgba(183,51,77,.08); }
.zv-core__notice.is-success { border-color: rgba(55,138,93,.35); background: rgba(55,138,93,.08); }

.zv-core-section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.zv-core-section-head--compact { margin-bottom: 0.75rem; }
.zv-core-actions, .zv-core-card-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.zv-core-actions--end { justify-content:flex-end; }

.zv-core-save-control { display:grid; gap:.35rem; justify-items:end; }
.zv-core-save-feedback {
  min-height: 1.2rem;
  font-size: .88rem;
  color: var(--zv-text-soft);
  text-align: right;
}
.zv-core-save-feedback.is-success { color: #2b7a52; font-weight: 600; }
.zv-core-save-feedback.is-error { color: #a3354e; font-weight: 600; }
.zv-core-save-feedback.is-busy { color: var(--zv-accent); font-weight: 600; }
.zv-core-btn[disabled] { opacity: .72; cursor: progress; }


.zv-core-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border-radius:999px; padding:.78rem 1rem; border:1px solid var(--zv-border-strong);
  background:#fff; color:var(--zv-text); cursor:pointer; text-decoration:none; font-weight:600; transition:.18s ease;
}
.zv-core-btn:hover { border-color: rgba(177,77,116,.32); background:#fff8fb; }
.zv-core-btn--primary { background:linear-gradient(135deg,#c85a84,#edb38f); color:#fff; border:none; }
.zv-core-btn--primary:hover { filter:brightness(1.03); background:linear-gradient(135deg,#c85a84,#edb38f); }

.zv-core-form, .zv-core-filters { display:grid; gap:.95rem; }
.zv-core-grid { display:grid; gap:1rem; }
.zv-core-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.zv-core-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.zv-core-grid--cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.zv-core-grid-span-2 { grid-column: span 2; }

.zv-core-form > label,
.zv-core-filters > label,
.zv-core-language-row,
.zv-core-select-with-other,
.zv-core-choice-group {
  border:1px solid var(--zv-border); border-radius:18px; padding:1rem; background:var(--zv-surface-soft); box-shadow: inset 0 1px 0 rgba(255,255,255,.5); color:var(--zv-text);
}
.zv-core-form > label:hover,
.zv-core-filters > label:hover,
.zv-core-language-row:hover,
.zv-core-select-with-other:hover,
.zv-core-choice-group:hover { border-color: rgba(177,77,116,.24); background:#fff; }

.zv-core-form > label > span,
.zv-core-filters > label > span,
.zv-core-choice-other > span,
.zv-core-choice-group legend,
.zv-core-language-row .zv-core-field-title {
  display:block; font-weight:800; font-size:1.04rem; line-height:1.35; margin-bottom:.55rem; color:var(--zv-text);
}

.zv-core-form small,
.zv-core-filters small,
.zv-core-choice-other small,
.zv-core-select-with-other small {
  display:block; margin-top:.42rem; font-size:.82rem; line-height:1.45; color:var(--zv-text-soft); opacity:1;
}
.zv-core-muted { margin-top:.35rem; max-width:72ch; color:var(--zv-text-soft); opacity:1; }

.zv-core-form input,
.zv-core-form textarea,
.zv-core-form select,
.zv-core-filters input,
.zv-core-filters textarea,
.zv-core-filters select,
.zv-core-thread-form textarea,
.zv-core-select-with-other input,
.zv-core-select-with-other select,
.zv-core-choice-other input {
  width:100%; border-radius:14px; border:1px solid var(--zv-border); background:#fff; color:var(--zv-text); padding:.82rem .95rem; box-sizing:border-box;
}
.zv-core-form input::placeholder,
.zv-core-form textarea::placeholder,
.zv-core-filters input::placeholder,
.zv-core-filters textarea::placeholder,
.zv-core-thread-form textarea::placeholder,
.zv-core-select-with-other input::placeholder,
.zv-core-choice-other input::placeholder { color:#907b85; }
.zv-core-form input:focus,
.zv-core-form textarea:focus,
.zv-core-form select:focus,
.zv-core-filters input:focus,
.zv-core-filters textarea:focus,
.zv-core-filters select:focus,
.zv-core-thread-form textarea:focus,
.zv-core-select-with-other input:focus,
.zv-core-select-with-other select:focus,
.zv-core-choice-other input:focus { outline:none; border-color:rgba(177,77,116,.45); box-shadow:0 0 0 4px rgba(177,77,116,.1); }

.zv-core-choice-group { display:grid; gap:.8rem; margin:0; min-width:0; }
.zv-core-choice-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(185px,1fr)); gap:.65rem; }
.zv-core-choice-item {
  display:flex !important; align-items:center; gap:.65rem; border:1px solid var(--zv-border); border-radius:14px; padding:.78rem .85rem; background:#fff; min-height:52px; color:var(--zv-text);
}
.zv-core-choice-item:hover { border-color: rgba(177,77,116,.26); background:#fff8fb; }
.zv-core-choice-item input[type="checkbox"], .zv-core-check input { width:18px !important; height:18px; margin:0; flex:0 0 auto; accent-color: var(--zv-accent); }
.zv-core-choice-item span, .zv-core-check span { font-weight:400; line-height:1.35; color:var(--zv-text); }
.zv-core-choice-other { display:grid !important; gap:.45rem; border-top:1px solid var(--zv-border); padding-top:.8rem; }
.zv-core-select-with-other { display:grid; gap:.6rem; }
.zv-core-check { display:flex !important; align-items:center; gap:.75rem; border-radius:14px; }

.zv-core-language-list { display:grid; gap:.75rem; }
.zv-core-language-row { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:.65rem; align-items:end; }
.zv-core-language-row > * { min-width:0; }

.zv-core-profile-card { display:grid; gap:.8rem; border-radius:22px; padding:1rem; background:var(--zv-surface); border:1px solid var(--zv-border); box-shadow:var(--zv-shadow); color:var(--zv-text); }
.zv-core-profile-card__head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.zv-core-profile-card__meta, .zv-core-pill-row { display:flex; flex-wrap:wrap; gap:.45rem; }
.zv-core-pill { display:inline-flex; align-items:center; padding:.32rem .58rem; border-radius:999px; background:var(--zv-surface-muted); border:1px solid rgba(88,61,74,.10); color:var(--zv-text); font-size:.85rem; }
.zv-core-score { min-width:80px; text-align:center; border-radius:18px; padding:.7rem .85rem; background:linear-gradient(135deg, rgba(200,90,132,.16), rgba(237,179,143,.22)); border:1px solid rgba(177,77,116,.14); color:var(--zv-text); }
.zv-core-score strong { display:block; font-size:1.2rem; color:var(--zv-text); }
.zv-core-breakdown { display:grid; gap:.3rem; font-size:.85rem; color:var(--zv-text-soft); opacity:1; }

.zv-core-photo-manager { display:grid; gap:1rem; margin-bottom:1.25rem; }
.zv-core-photo-main-wrap { min-height: 320px; }
.zv-core-photo-empty {
  display:grid; place-items:center; min-height:320px; border:1px dashed var(--zv-border-strong); border-radius:22px; background:var(--zv-surface-soft); color:var(--zv-text-soft); text-align:center; padding:1rem;
}
.zv-core-photo-stage-card { display:grid; gap:.85rem; }
.zv-core-photo-stage__button,
.zv-core-gallery__main {
  position:relative; display:block; width:100%; min-height:320px; border-radius:22px; overflow:hidden; border:1px solid var(--zv-border); background:#f2e8ec; padding:0; cursor:zoom-in;
}
.zv-core-photo-stage__img,
.zv-core-gallery__img,
.zv-core-photo-modal__img { width:100%; height:100%; object-fit:cover; display:block; -webkit-user-drag:none; user-select:none; pointer-events:none; }
.zv-core-photo-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.85rem; }
.zv-core-photo-help { color: var(--zv-text-soft); font-size:.9rem; }
.zv-core-photo-strip,
.zv-core-gallery__thumbs,
.zv-core-photo-modal__thumbs {
  display:flex; gap:.7rem; overflow-x:auto; padding-bottom:.25rem; scrollbar-width:thin;
}
.zv-core-photo-thumb-card { min-width: 140px; display:grid; gap:.55rem; }
.zv-core-photo-thumb,
.zv-core-gallery__thumb {
  position:relative; width:120px; height:120px; border-radius:16px; overflow:hidden; border:1px solid var(--zv-border); background:#fff; padding:0; cursor:zoom-in; flex:0 0 auto;
}
.zv-core-photo-thumb.is-active,
.zv-core-gallery__thumb.is-active { border-color: rgba(177,77,116,.45); box-shadow: 0 0 0 3px rgba(177,77,116,.12); }
.zv-core-photo-thumb__img,
.zv-core-gallery__thumb-img { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; -webkit-user-drag:none; user-select:none; }
.zv-core-photo-thumb-actions { display:grid; gap:.45rem; }
.zv-core-photo-badge {
  position:absolute; left:.5rem; bottom:.5rem; z-index:2; border-radius:999px; padding:.26rem .5rem; background:rgba(255,255,255,.92); color:var(--zv-text); font-size:.74rem; font-weight:700;
}
.zv-core-photo-overlay {
  position:absolute; right:.7rem; bottom:.7rem; z-index:2; border-radius:999px; padding:.3rem .55rem; background:rgba(22,16,19,.55); color:#fff; font-size:.78rem; letter-spacing:.03em; backdrop-filter: blur(3px);
}
.zv-core-photo-overlay--modal { right:1rem; bottom:1rem; }
.zv-core-upload-btn input { display:none; }
.zv-core-gallery { display:grid; gap:.7rem; }

.zv-core-photo-modal { position:fixed; inset:0; z-index:10000; }
.zv-core-photo-modal[hidden] { display:none; }
.zv-core-photo-modal__backdrop { position:absolute; inset:0; background:rgba(18,12,16,.78); backdrop-filter: blur(4px); }
.zv-core-photo-modal__dialog {
  position:relative; z-index:2; width:min(1100px, calc(100vw - 32px)); max-height:calc(100vh - 32px); margin:16px auto; background:#120d10; color:#fff; border-radius:24px; padding:1rem; display:grid; gap:1rem; box-shadow:0 24px 80px rgba(0,0,0,.38);
}
.zv-core-photo-modal__close {
  position:absolute; top:.8rem; right:.8rem; width:42px; height:42px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.08); color:#fff; font-size:1.5rem; cursor:pointer;
}
.zv-core-photo-modal__frame { position:relative; min-height: 60vh; border-radius:20px; overflow:hidden; background:#0d090b; }
.zv-core-photo-modal__img { max-height: 72vh; object-fit:contain; background:#0d090b; }
html.zv-core-photo-modal-open { overflow:hidden; }

.zv-core-messages { display:grid; grid-template-columns:280px minmax(0,1fr); gap:1rem; align-items:start; }
.zv-core-messages__main { min-width:0; min-height:0; display:flex; flex-direction:column; }
.zv-core-thread-list { display:grid; gap:.7rem; align-content:start; }
.zv-core-thread { display:grid; gap:.7rem; align-content:start; flex:1 1 auto; min-height:320px; max-height:min(58vh, 680px); overflow:auto; padding-right:.35rem; scroll-behavior:smooth; }
.zv-core-thread-item, .zv-core-message { border-radius:16px; padding:.8rem .9rem; background:var(--zv-surface-soft); border:1px solid var(--zv-border); color:var(--zv-text); }
.zv-core-thread-item { text-align:left; display:grid; gap:.28rem; }
.zv-core-thread-item__top { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.zv-core-thread-item__badge { min-width:1.65rem; height:1.65rem; padding:0 .45rem; border-radius:999px; display:inline-grid; place-items:center; background:linear-gradient(135deg, rgba(177,77,116,.94), rgba(237,179,143,.94)); color:#fff; font-weight:800; font-size:.82rem; }
.zv-core-thread-item [data-zv-thread-preview] { color:var(--zv-text-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zv-core-thread-item.is-active { border-color: rgba(177,77,116,.28); background:#fff; }
.zv-core-message { max-width:min(80%, 900px); width:fit-content; white-space:pre-wrap; word-break:break-word; }
.zv-core-message.is-mine { margin-left:auto; background:rgba(200,90,132,.10); border-color:rgba(177,77,116,.18); }
.zv-core-thread-form { display:grid; gap:.75rem; margin-top:.75rem; position:sticky; bottom:0; z-index:2; padding-top:.75rem; background:linear-gradient(180deg, rgba(245,240,238,0), rgba(245,240,238,.92) 24%, rgba(245,240,238,.98) 100%); backdrop-filter: blur(6px); }
.zv-core-thread-header { color:var(--zv-text-soft); margin-bottom:.25rem; }
.zv-core-thread-profile-slot { margin:0 0 .8rem; }
.zv-core-thread-profile-card { display:grid; gap:.7rem; padding:.9rem 1rem; border:1px solid rgba(177,77,116,.18); border-radius:18px; background:linear-gradient(135deg, rgba(255,248,251,.98), rgba(247,239,243,.96)); }
.zv-core-thread-profile-card__top { display:flex; justify-content:space-between; gap:.8rem; align-items:flex-start; }
.zv-core-thread-profile-card__top h3 { margin:.15rem 0 0; }
.zv-core-thread-profile-card p { margin:0; color:var(--zv-text-soft); }
.zv-core-thread-form textarea { min-height:100px; max-height:28vh; resize:vertical; }
.zv-core-thread::-webkit-scrollbar { width:8px; }
.zv-core-thread::-webkit-scrollbar-thumb { background: rgba(29,23,34,0.18); border-radius:999px; }

@media (max-width: 960px) {
  .zv-core-grid--2, .zv-core-grid--3, .zv-core-messages, .zv-core-language-row { grid-template-columns:1fr; }
  .zv-core-thread { max-height:52vh; }
  .zv-core-section-head { flex-direction: column; }
  .zv-core-save-control { justify-items:start; }
  .zv-core-save-feedback { text-align:left; }
  .zv-core-choice-grid { grid-template-columns:1fr; }
  .zv-core-photo-stage__button, .zv-core-gallery__main { min-height:260px; }
  .zv-core-photo-thumb, .zv-core-gallery__thumb { width:96px; height:96px; }
}

.zv-core-private-badge-box { margin-bottom:1rem; }
.zv-core-badge-row { display:flex; flex-wrap:wrap; gap:.55rem; }
.zv-core-badge { display:inline-flex; align-items:center; padding:.36rem .68rem; border-radius:999px; font-size:.82rem; font-weight:700; border:1px solid transparent; }
.zv-core-badge--soft { background:rgba(177,77,116,.10); color:#8f4968; }
.zv-core-badge--accent { background:rgba(107,114,128,.10); color:#374151; }
.zv-core-badge--gold { background:rgba(237,179,143,.28); color:#8a5b28; }
.zv-core-badge--live { background:rgba(39,174,96,.14); color:#1f7a45; }
.zv-core-badge--muted { background:#f3f4f6; color:#6b7280; }

.zv-core-webcam-top { align-items:stretch; }
.zv-core-pill-row { display:flex; flex-wrap:wrap; gap:.55rem; }
.zv-core-video-stage { display:grid; gap:.65rem; }
.zv-core-video-box {
  min-height: 280px;
  border:1px solid var(--zv-border);
  border-radius:22px;
  background:linear-gradient(180deg,#1d1619 0%, #2b2025 100%);
  display:grid;
  place-items:center;
  overflow:hidden;
  color:rgba(255,255,255,.78);
  text-align:center;
  padding:1rem;
}
.zv-core-video-media { width:100%; height:100%; object-fit:cover; display:block; background:#000; }
.zv-core-profile-card--webcam .zv-core-profile-card__body { display:grid; gap:.7rem; }
.zv-core-profile-card__empty { display:grid; place-items:center; min-height:180px; background:var(--zv-surface-soft); border:1px dashed var(--zv-border-strong); border-radius:18px; color:var(--zv-text-soft); }
.zv-core-webcam-room .zv-core-pill { font-weight:700; }
.zv-core-breakdown.is-error { border-color: rgba(185, 28, 28, .2); background:#fff1f2; color:#991b1b; }
.zv-core-breakdown.is-info { border-color: rgba(59,130,246,.18); background:#eff6ff; color:#1d4ed8; }


.zv-core-actions--wrap { flex-wrap:wrap; }
.zv-core-webcam-canvas { position:relative; margin-top:16px; }
.zv-core-video-stage--remote { position:relative; min-height:560px; }
.zv-core-video-box--remote { min-height:560px; border-radius:22px; overflow:hidden; background:#0b0f14; position:relative; }
.zv-core-video-box--remote [data-zv-remote-video-media],
.zv-core-video-box--remote [data-zv-remote-video-media] > * { width:100%; height:100%; }
.zv-core-video-box--remote video,
.zv-core-video-box--remote audio,
.zv-core-video-box--localpip video { width:100%; height:100%; object-fit:cover; display:block; background:#0b0f14; }
.zv-core-video-box--localpip video { transform:scaleX(-1); }
.zv-core-video-box--localpip { position:absolute; left:18px; top:18px; width:min(28vw,220px); min-height:140px; z-index:4; border:2px solid rgba(255,255,255,.22); box-shadow:0 14px 40px rgba(0,0,0,.28); background:#101621; overflow:hidden; }
.zv-core-video-box--localpip span,
.zv-core-video-box--remote span { display:flex; align-items:center; justify-content:center; height:100%; padding:1rem; color:#d6dae4; text-align:center; }
.zv-core-webcam-overlay-actions { position:absolute; top:18px; right:18px; z-index:5; display:flex; gap:10px; }
.zv-core-webcam-chat { position:absolute; left:18px; right:18px; bottom:18px; z-index:4; width:auto; background:rgba(11, 9, 17, .62); backdrop-filter: blur(12px); border:1px solid rgba(255,255,255,.12); border-radius:18px; box-shadow:0 12px 34px rgba(0,0,0,.22); color:#fff; overflow:hidden; }
.zv-core-webcam-chat,
.zv-core-webcam-chat * { color:#fff !important; }
.zv-core-webcam-chat__head { display:none; }
.zv-core-webcam-chat__messages { height:78px; overflow:auto; padding:12px 12px 10px; display:grid; gap:8px; background:linear-gradient(180deg, rgba(18, 14, 24, .18) 0%, rgba(18, 14, 24, .34) 100%); }
.zv-core-webcam-chat__form { display:grid; grid-template-columns:1fr auto; gap:10px; padding:10px 12px; border-top:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.14); }
.zv-core-webcam-chat__form input { width:100%; min-width:0; background:rgba(23, 18, 29, .78); border:1px solid rgba(255,255,255,.2); color:#ffffff !important; font-weight:700; }
.zv-core-webcam-chat__form input::placeholder { color:rgba(255,255,255,.88) !important; font-weight:700; }
.zv-core-webcam-chat__bubble { max-width:100%; padding:9px 12px; border-radius:14px; line-height:1.45; font-size:.96rem; font-weight:700; color:#fff !important; }
.zv-core-webcam-chat__bubble.is-mine { justify-self:end; background:rgba(255, 111, 164, .22); color:#ffffff !important; border:1px solid rgba(255, 182, 208, .26); }
.zv-core-webcam-chat__bubble.is-other { justify-self:start; background:rgba(255,255,255,.12); color:#ffffff !important; border:1px solid rgba(255,255,255,.10); }
.zv-core-webcam-chat__meta { display:block; margin-top:4px; font-size:11px; font-weight:700; color:#ffffff !important; opacity:1; }
.zv-core-webcam-chat__empty { color:#ffffff !important; font-size:.94rem; font-weight:700; }
.zv-core-webcam-upsell { position:absolute; right:18px; top:72px; z-index:4; width:min(380px,calc(100% - 36px)); background:#fff5f8; color:#452636; border:1px solid #f0c8da; border-radius:18px; box-shadow:0 12px 34px rgba(0,0,0,.16); padding:14px; display:grid; gap:10px; }
.zv-core-webcam-upsell__title { font-weight:700; font-size:1rem; }
.zv-core-webcam-upsell__grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.zv-core-webcam-upsell__grid a { text-decoration:none; }
.zv-core-webcam-upsell__hint { font-size:.86rem; color:#6a4254; }
.zv-core-video-stage:fullscreen .zv-core-video-box--remote,
.zv-core-video-stage:-webkit-full-screen .zv-core-video-box--remote { min-height:100vh; border-radius:0; }
.zv-core-video-stage:fullscreen .zv-core-video-box--localpip,
.zv-core-video-stage:-webkit-full-screen .zv-core-video-box--localpip { width:min(22vw,260px); min-height:150px; }
@media (max-width: 920px) {
  .zv-core-video-stage--remote { min-height:460px; }
  .zv-core-video-box--remote { min-height:460px; }
  .zv-core-webcam-chat { position:relative; right:auto; bottom:auto; width:100%; margin-top:14px; }
  .zv-core-webcam-upsell { position:relative; right:auto; top:auto; width:100%; margin-top:14px; }
  .zv-core-video-box--localpip { width:min(34vw,170px); min-height:108px; }
  .zv-core-webcam-chat__messages { height:74px; }
}
@media (max-width: 680px) {
  .zv-core-video-stage--remote,
  .zv-core-video-box--remote { min-height:320px; }
  .zv-core-video-box--remote { border-radius:18px; }
  .zv-core-webcam-overlay-actions { top:12px; right:12px; }
  .zv-core-video-box--localpip { left:12px; top:12px; bottom:auto; width:min(34vw,128px); min-height:86px; }
  .zv-core-webcam-chat__messages { height:72px; }
  .zv-core-webcam-chat__form { grid-template-columns:1fr; }
  .zv-core-webcam-upsell__grid { grid-template-columns:1fr; }
}


.zv-core-webcam-settings-panel { margin: 10px 0 16px; }
.zv-core-webcam-settings { background: rgba(255,255,255,.72); border:1px solid var(--zv-border); border-radius:16px; overflow:hidden; }
.zv-core-webcam-settings summary { cursor:pointer; list-style:none; padding:12px 16px; font-weight:800; color:var(--zv-text); }
.zv-core-webcam-settings summary::-webkit-details-marker { display:none; }
.zv-core-webcam-settings__body { padding:0 16px 14px; display:grid; gap:10px; }
.zv-core-webcam-settings__field { display:grid; gap:6px; }
.zv-core-webcam-settings__field span { font-weight:700; color:var(--zv-text); }
.zv-core-webcam-settings__field select { max-width:280px; }

.zv-core-webcam-chat { background:rgba(11, 9, 17, .72); }
.zv-core-webcam-chat .zv-core-muted { color:#ffffff !important; opacity:.9; }
.zv-core-webcam-chat__head,
.zv-core-webcam-chat__head strong,
.zv-core-webcam-chat__messages,
.zv-core-webcam-chat__messages * { color:#ffffff; }
.zv-core-webcam-chat__head { color:#ffffff; }
.zv-core-webcam-chat__messages { background:linear-gradient(180deg, rgba(18, 14, 24, .28) 0%, rgba(18, 14, 24, .44) 100%); }
.zv-core-webcam-chat__form input,
.zv-core-webcam-chat__form input::placeholder,
.zv-core-webcam-chat__bubble.is-mine,
.zv-core-webcam-chat__bubble.is-other,
.zv-core-webcam-chat__meta,
.zv-core-webcam-chat__empty { color:#ffffff; }
.zv-core-webcam-chat__meta { opacity:.88; }

.zv-core-webcam-chat__head{display:none!important;}
.zv-core-webcam-chat__messages,.zv-core-webcam-chat__empty,.zv-core-webcam-chat__bubble,.zv-core-webcam-chat__meta,.zv-core-webcam-chat__form input,.zv-core-webcam-chat__form input::placeholder{color:#fff!important;}


/* 0.8.11 webcam polish */
.zv-core-btn--icon[data-zv-webcam-fullscreen]{min-width:56px;padding:.72rem .9rem;font-size:1.28rem;line-height:1;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.zv-core-webcam-upsell[hidden]{display:none !important;}
.zv-core-webcam-chat{background:rgba(11,9,17,.50)!important;}
.zv-core-webcam-chat__messages{background:linear-gradient(180deg, rgba(18,14,24,.50) 0%, rgba(18,14,24,.50) 100%)!important;}
.zv-core-webcam-chat__form{background:rgba(0,0,0,.50)!important;}
.zv-core-webcam-chat__form input{background:rgba(255,255,255,.50)!important;color:#111111!important;caret-color:#111111!important;}
.zv-core-webcam-chat__form input::placeholder{color:rgba(17,17,17,.72)!important;}
.zv-core-webcam-chat__messages,.zv-core-webcam-chat__messages *,.zv-core-webcam-chat__empty,.zv-core-webcam-chat__bubble,.zv-core-webcam-chat__meta{color:#ffffff!important;}


/* 0.8.12 chat usability polish */
.zv-core-webcam-chat__messages{
  height:92px !important;
  padding:10px 10px 8px !important;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.35) rgba(255,255,255,.08);
}
.zv-core-webcam-chat__messages::-webkit-scrollbar{
  width:8px;
  height:8px;
}
.zv-core-webcam-chat__messages::-webkit-scrollbar-track{
  background:rgba(255,255,255,.08);
  border-radius:999px;
}
.zv-core-webcam-chat__messages::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.34);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
}
.zv-core-webcam-chat__messages::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.50);
}
.zv-core-webcam-chat__form{
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:8px !important;
  padding:8px 10px !important;
}
.zv-core-webcam-chat__form input{
  min-height:42px;
  height:42px;
  padding:.68rem .9rem !important;
  font-size:.95rem;
  line-height:1.2;
  color:#111111 !important;
}
.zv-core-webcam-chat__form input::placeholder{
  color:rgba(17,17,17,.72) !important;
}
.zv-core-webcam-chat__form .zv-core-btn{
  min-height:42px;
  padding:.64rem .95rem !important;
  font-size:.95rem;
  line-height:1.1;
  white-space:nowrap;
  align-self:stretch;
}
@media (max-width: 920px){
  .zv-core-webcam-chat__messages{
    height:88px !important;
  }
}
@media (max-width: 680px){
  .zv-core-webcam-chat{
    left:12px;
    right:12px;
    bottom:12px;
  }
  .zv-core-webcam-chat__messages{
    height:84px !important;
    padding:9px 9px 7px !important;
  }
  .zv-core-webcam-chat__form{
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:7px !important;
    padding:7px 9px !important;
  }
  .zv-core-webcam-chat__form input{
    min-height:40px;
    height:40px;
    padding:.58rem .8rem !important;
    font-size:.92rem;
  }
  .zv-core-webcam-chat__form .zv-core-btn{
    min-height:40px;
    min-width:auto;
    padding:.58rem .82rem !important;
    font-size:.92rem;
  }
}

.zv-core-dashboard-hero {
  display:grid;
  gap:1rem;
}

.zv-core-dashboard-links {
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap:.85rem;
}

.zv-core-dashboard-link {
  display:grid;
  gap:.28rem;
  padding:1rem;
  border-radius:18px;
  text-decoration:none;
  color:var(--zv-text);
  background:var(--zv-surface-soft);
  border:1px solid var(--zv-border);
}
.zv-core-dashboard-link:hover {
  border-color: rgba(177,77,116,.28);
  background:#fff;
}
.zv-core-dashboard-link strong { font-size:1rem; }
.zv-core-dashboard-link span { color:var(--zv-text-soft); font-size:.92rem; line-height:1.45; }

.zv-core-dashboard-stats {
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:1rem;
}

.zv-core-stat-card {
  display:grid;
  gap:.55rem;
}
.zv-core-stat-card strong {
  font-size:1.8rem;
  line-height:1;
}
.zv-core-stat-card p { margin:0; color:var(--zv-text-soft); }

.zv-core-dashboard-grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:1rem;
}

.zv-core-dashboard-grid__wide {
  grid-column: span 2;
}

.zv-core-dashboard-list {
  display:grid;
  gap:.75rem;
}

.zv-core-dashboard-list__item {
  display:grid;
  gap:.22rem;
  padding:.9rem 1rem;
  border-radius:16px;
  border:1px solid var(--zv-border);
  background:var(--zv-surface-soft);
}
.zv-core-dashboard-list__item p { margin:0; }
.zv-core-dashboard-list__item small { color:var(--zv-text-soft); }

.zv-core-dashboard-steps {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:.85rem;
}
.zv-core-dashboard-steps > div {
  display:flex;
  gap:.75rem;
  padding:1rem;
  border-radius:18px;
  border:1px solid var(--zv-border);
  background:var(--zv-surface-soft);
}
.zv-core-dashboard-steps strong {
  font-size:1.15rem;
  min-width:1.25rem;
}
.zv-core-dashboard-note {
  margin-top:1rem;
  padding:1rem 1.1rem;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(200,90,132,.10), rgba(237,179,143,.16));
  border:1px solid rgba(177,77,116,.16);
}

.zv-core-dashboard-lockgrid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:1rem;
}

.zv-core-locked-card {
  display:grid;
  gap:.7rem;
  padding:1rem;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(251,247,248,.94), rgba(245,238,241,.98));
  border:1px dashed var(--zv-border-strong);
  opacity:.94;
}

.zv-core-locked-card button[disabled] {
  cursor:not-allowed;
  opacity:.72;
}

@media (max-width: 1080px) {
  .zv-core-dashboard-stats,
  .zv-core-dashboard-lockgrid,
  .zv-core-dashboard-steps {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 820px) {
  .zv-core-dashboard-stats,
  .zv-core-dashboard-grid,
  .zv-core-dashboard-lockgrid,
  .zv-core-dashboard-steps,
  .zv-core-grid--2,
  .zv-core-grid--3 {
    grid-template-columns: 1fr;
  }

  .zv-core-dashboard-grid__wide,
  .zv-core-grid-span-2 {
    grid-column: auto;
  }
}


.zv-core-avatar {
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(177,77,116,.18), rgba(237,179,143,.28));
  border:1px solid rgba(177,77,116,.22);
  color:var(--zv-text);
  font-weight:800;
  font-size:.92rem;
}

.zv-core-location-shell { margin-bottom:1rem; }
.zv-core-location-card {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:1rem;
  align-items:center;
  padding:1rem;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,241,244,.96));
  border:1px solid var(--zv-border);
}
.zv-core-location-card__visual,
.zv-community-location-map {
  position:relative;
  min-height:120px;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 50%, rgba(177,77,116,.16) 0, rgba(177,77,116,.08) 18%, transparent 19%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(242,232,236,.92));
  overflow:hidden;
}
.zv-core-location-card__ring,
.zv-community-location-map__ring {
  position:absolute;
  inset:auto;
  border-radius:999px;
  border:2px solid rgba(177,77,116,.16);
}
.zv-core-location-card__ring--one,
.zv-community-location-map__ring--one {
  width:92px; height:92px; left:14px; top:14px;
}
.zv-core-location-card__ring--two,
.zv-community-location-map__ring--two {
  width:54px; height:54px; left:33px; top:33px;
}
.zv-core-location-card__pin,
.zv-community-location-map__pin {
  position:absolute;
  width:20px; height:20px; left:50%; top:50%;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:var(--zv-accent);
  box-shadow:0 0 0 8px rgba(177,77,116,.12);
}
.zv-core-location-card__body {
  display:grid;
  gap:.35rem;
}
.zv-core-location-card__body p {
  margin:0;
  color:var(--zv-text-soft);
}
.zv-community-card--location .zv-community-location-map {
  margin-top:.85rem;
}
@media (max-width: 720px) {
  .zv-core-location-card {
    grid-template-columns:1fr;
  }
}


.zv-core-nl-map-card {
  display:grid;
  grid-template-columns:minmax(180px, 220px) minmax(0,1fr);
  gap:1.1rem;
  align-items:center;
}
.zv-core-nl-map-card__visual {
  min-height:200px;
  border-radius:24px;
  border:1px solid var(--zv-border);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(242,232,236,.92));
  display:grid;
  place-items:center;
  padding:1rem;
}
.zv-core-nl-map-card__visual svg {
  width:100%;
  max-width:180px;
  height:auto;
}
.zv-core-nl-map-card__visual--map {
  padding:.35rem;
  overflow:hidden;
}
.zv-core-nl-map-card__leaflet {
  width:100%;
  min-height:220px;
  border-radius:20px;
  overflow:hidden;
}
.zv-core-nl-map-card__leaflet .leaflet-control-attribution {
  font-size:10px;
}
.zv-core-nl-map-card__leaflet .leaflet-control-container .leaflet-top,
.zv-core-nl-map-card__leaflet .leaflet-control-container .leaflet-bottom {
  z-index:1;
}
.zv-core-nl-map-card__outline {
  fill:rgba(177,77,116,.10);
  stroke:rgba(177,77,116,.34);
  stroke-width:4;
  stroke-linejoin:round;
}
.zv-core-nl-map-card__pulse {
  fill:rgba(177,77,116,.14);
}
.zv-core-nl-map-card__pulse.is-second {
  fill:rgba(237,179,143,.22);
}
.zv-core-nl-map-card__pin {
  fill:var(--zv-accent);
}
.zv-core-nl-map-card__body {
  display:grid;
  gap:.45rem;
}
.zv-core-nl-map-card__body h3,
.zv-core-nl-map-card__body p {
  margin:0;
}
@media (max-width: 720px) {
  .zv-core-nl-map-card {
    grid-template-columns:1fr;
  }
}

.zv-core-profile-progress {
  display:grid;
  gap:.9rem;
  margin-bottom:1rem;
}
.zv-core-progressbar {
  height:12px;
  border-radius:999px;
  background:rgba(177,77,116,.10);
  overflow:hidden;
}
.zv-core-progressbar > span {
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, rgba(177,77,116,.9), rgba(224,162,124,.95));
}
.zv-core-profile-progress__grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px,1fr));
  gap:.6rem;
}
.zv-core-profile-progress__item {
  display:flex;
  align-items:center;
  gap:.55rem;
  border:1px solid var(--zv-border);
  border-radius:16px;
  padding:.7rem .8rem;
  background:#fff;
  color:var(--zv-text-soft);
}
.zv-core-profile-progress__item.is-done {
  border-color:rgba(177,77,116,.22);
  background:rgba(255,248,251,.9);
  color:var(--zv-text);
}
.zv-core-profile-progress__item span {
  width:22px;
  height:22px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(177,77,116,.10);
  color:var(--zv-accent);
  font-weight:700;
}
.zv-core-profile-progress__item.is-done span {
  background:rgba(177,77,116,.18);
}
.zv-core-score--gold,
.zv-core-score--accent,
.zv-core-score--soft {
  min-width:130px;
}
.zv-core-profile-card.is-map-focus,
.zv-core-profile-card.is-focused-profile {
  border-color:rgba(177,77,116,.40);
  box-shadow:0 0 0 4px rgba(177,77,116,.12), var(--zv-shadow);
  transform:translateY(-2px);
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.zv-core-profile-sections {
  display:grid;
  gap:.7rem;
}
.zv-core-profile-section {
  display:grid;
  gap:.45rem;
  border:1px solid rgba(88,61,74,.08);
  border-radius:18px;
  padding:.8rem .85rem;
  background:rgba(255,255,255,.72);
}
.zv-core-profile-section p,
.zv-core-profile-section strong {
  margin:0;
}
.zv-core-profile-section--breakdown .zv-core-breakdown {
  grid-template-columns:repeat(auto-fit, minmax(120px,1fr));
  gap:.5rem;
}
.zv-core-profile-section--breakdown .zv-core-breakdown > div {
  display:flex;
  justify-content:space-between;
  gap:.65rem;
  border-radius:14px;
  background:var(--zv-surface-soft);
  padding:.55rem .65rem;
}
.zv-core-match-cta {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  margin-bottom:1rem;
  border:1px solid rgba(177,77,116,.22);
  background:linear-gradient(135deg, rgba(255,248,251,.98), rgba(247,239,243,.98));
}
.zv-core-match-cta[hidden] { display:none; }
.zv-core-match-cta__content,
.zv-core-match-cta__actions {
  display:grid;
  gap:.55rem;
}
.zv-core-map-attribution {
  display:block;
  color:var(--zv-text-soft);
}
.zv-core-nl-map-card__leaflet,
.zv-core-nl-map-card__leaflet .leaflet-container,
.zv-core-nl-map-card__leaflet .leaflet-pane,
.zv-core-nl-map-card__leaflet .leaflet-tile-pane {
  cursor:default !important;
}
.zv-core-nl-map-card__leaflet .leaflet-interactive {
  cursor:pointer !important;
}
.zv-core-nl-map-card__leaflet .leaflet-control-container {
  display:none;
}
@media (max-width: 720px) {
  .zv-core-match-cta {
    grid-template-columns:1fr;
  }
}


.zv-core-breakdown[data-zv-webcam-room-log][data-tone="success"] {
  border-color:rgba(70,150,92,.25);
  background:rgba(70,150,92,.08);
}
.zv-core-breakdown[data-zv-webcam-room-log][data-tone="error"] {
  border-color:rgba(177,77,116,.26);
  background:rgba(177,77,116,.08);
}
.zv-core-filters {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--zv-border);
  border-radius: 22px;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), rgba(255,255,255,0.82) 40%),
    linear-gradient(145deg, rgba(246,238,241,0.88), rgba(255,248,251,0.92));
}

.zv-core-filters input,
.zv-core-filters select {
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid var(--zv-border);
  background: rgba(255,255,255,0.94);
}

.zv-core-profile-card {
  overflow: hidden;
  gap: 1rem;
  background:
    radial-gradient(circle at top right, rgba(255,245,248,0.95), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(252,247,249,0.96) 100%);
}

.zv-core-profile-card__media-shell {
  position: relative;
}

.zv-core-profile-card__media-badges {
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  pointer-events: none;
}

.zv-core-profile-card__media-badges .zv-core-pill {
  background: rgba(20, 14, 19, 0.64);
  color: #fff;
  border-color: rgba(255,255,255,0.14);
  backdrop-filter: blur(8px);
}

.zv-core-profile-card__identity {
  display: grid;
  gap: 0.45rem;
}

.zv-core-profile-card__identity h3 {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.15;
}

.zv-core-score--glow {
  min-width: 118px;
  padding: 0.85rem 0.9rem;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(177,77,116,0.12), rgba(232,163,139,0.20));
  border: 1px solid rgba(177,77,116,0.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.zv-core-score--glow strong {
  font-size: 1.45rem;
}

.zv-core-profile-highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.zv-core-profile-section {
  padding: 0.95rem 1rem;
  border-radius: 18px;
  background: rgba(251,247,248,0.88);
  border: 1px solid rgba(88, 61, 74, 0.10);
}

.zv-core-profile-section strong {
  display: block;
  margin-bottom: 0.45rem;
}

.zv-core-profile-section p {
  margin: 0;
  color: var(--zv-text-soft);
  line-height: 1.65;
}

.zv-core-card-actions--stack-mobile {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.zv-core-dashboard-link,
.zv-core-dashboard-list__item,
.zv-core-locked-card,
.zv-core-stat-card,
.zv-core-location-card,
.zv-core-nl-map-card {
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.zv-core-dashboard-link:hover,
.zv-core-dashboard-list__item:hover,
.zv-core-profile-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(58, 30, 41, 0.10);
}

@media (max-width: 1080px) {
  .zv-core-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .zv-core-filters,
  .zv-core-profile-highlight-grid {
    grid-template-columns: 1fr;
  }

  .zv-core-card-actions--stack-mobile .zv-core-btn,
  .zv-core-card-actions--stack-mobile a.zv-core-btn {
    width: 100%;
    justify-content: center;
  }

  .zv-core-profile-card__head {
    flex-direction: column;
  }

  .zv-core-score--glow {
    width: 100%;
  }
}

.zv-core-onboarding-shell {
  display:grid;
  gap:1rem;
  background:linear-gradient(145deg, rgba(255,248,251,.98), rgba(246,236,241,.96));
}
.zv-core-onboarding-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1rem;
}
.zv-core-onboarding-card {
  position:relative;
  overflow:hidden;
  display:grid;
  gap:.85rem;
  min-height:220px;
  padding:1.15rem;
  border-radius:22px;
  border:1px solid rgba(88,61,74,.12);
  color:var(--zv-text);
  box-shadow:0 14px 34px rgba(29,23,34,.08);
}
.zv-core-onboarding-card::after {
  content:'';
  position:absolute;
  right:-32px;
  bottom:-36px;
  width:132px;
  height:132px;
  border-radius:999px;
  background:rgba(255,255,255,.32);
  filter:blur(2px);
}
.zv-core-onboarding-card--rose { background:linear-gradient(155deg, rgba(255,246,249,.98), rgba(236,197,211,.78)); }
.zv-core-onboarding-card--amber { background:linear-gradient(155deg, rgba(255,249,240,.98), rgba(240,210,169,.8)); }
.zv-core-onboarding-card--plum { background:linear-gradient(155deg, rgba(250,243,249,.98), rgba(219,196,223,.84)); }
.zv-core-onboarding-card__eyebrow { font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.75; }
.zv-core-onboarding-card h4 { margin:0; }
.zv-core-onboarding-card p { margin:0; color:var(--zv-text-soft); }
.zv-core-onboarding-note {
  padding:1rem 1.1rem;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(88,61,74,.10);
  color:var(--zv-text-soft);
}
@media (max-width: 960px) {
  .zv-core-onboarding-grid { grid-template-columns:1fr; }
}
/* ==== ZachteVonk register funnel visuals – force image backgrounds ==== */

.zv-register-path__visual[data-zv-prompt-slot],
.zv-register-step-card__visual[data-zv-prompt-slot]{
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-size:cover !important;
  background-color:#f4e8ec !important;
  overflow:hidden;
  isolation:isolate;
}

.zv-register-path__visual[data-zv-prompt-slot]{
  min-height:120px;
}

.zv-register-step-card__visual[data-zv-prompt-slot]{
  min-height:164px;
}

/* Iets zachtere overlays zodat je beeld niet verstopt raakt */
.zv-register-path__visual::before,
.zv-register-path__visual::after{
  opacity:.28 !important;
}

.zv-register-step-card__visual::after{
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(29,23,34,.10)) !important;
}

/* Forum only */
[data-zv-prompt-slot="forum-entry"]{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(29,23,34,.12)),
    url('/wp-content/uploads/2026/04/forum-entry.png') !important;
}

/* Forum + dating */
[data-zv-prompt-slot="dating-entry"]{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(29,23,34,.14)),
    url('/wp-content/uploads/2026/04/dating-entry.png') !important;
}

/* Stap 1 */
[data-zv-prompt-slot="identity-step"]{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(29,23,34,.14)),
    url('/wp-content/uploads/2026/04/identity-step.png') !important;
}

/* Stap 2 */
[data-zv-prompt-slot="vibe-step"]{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(29,23,34,.14)),
    url('/wp-content/uploads/2026/04/vibe-step.png') !important;
}

/* Stap 3 */
[data-zv-prompt-slot="tempo-step"]{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(29,23,34,.14)),
    url('/wp-content/uploads/2026/04/tempo-step.png') !important;
}

/* Avatar Studio */
.zv-core-avatar-shell {
  margin-bottom: 24px;
}

.zv-core-avatar-studio {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.zv-core-avatar-studio__preview-shell {
  position: sticky;
  top: 18px;
  display: grid;
  gap: 12px;
}

.zv-core-avatar-studio__preview,
.zv-core-avatar-card,
.zv-core-avatar-chip {
  border-radius: 24px;
  overflow: hidden;
}

.zv-core-avatar-studio__preview {
  background: linear-gradient(180deg, rgba(255, 247, 249, 0.96), rgba(244, 232, 241, 0.94));
  border: 1px solid rgba(120, 86, 109, 0.14);
  box-shadow: 0 16px 40px rgba(83, 43, 72, 0.10);
  padding: 12px;
}

.zv-core-avatar-studio__preview .zv-core-avatar-svg {
  display: block;
  width: 100%;
  height: auto;
}

.zv-core-avatar-studio__summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zv-core-avatar-studio__controls {
  display: grid;
  gap: 18px;
}

.zv-core-avatar-toggle {
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(120, 86, 109, 0.12);
}

.zv-core-avatar-slider-groups {
  display: grid;
  gap: 16px;
}

.zv-core-avatar-slider-group {
  padding: 16px;
  border-radius: 18px;
  background: rgba(255,255,255,0.68);
  border: 1px solid rgba(120, 86, 109, 0.12);
}

.zv-core-avatar-slider-group h4 {
  margin: 0 0 14px;
  font-size: 1rem;
}

.zv-core-avatar-slider {
  display: grid;
  gap: 8px;
}

.zv-core-avatar-slider span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.95rem;
  color: #4d3644;
}

.zv-core-avatar-slider strong {
  font-weight: 700;
  color: #8b4a68;
}

.zv-core-avatar-slider input[type="range"] {
  width: 100%;
}

.zv-core-avatar-svg {
  display: block;
  width: 100%;
  height: auto;
}

.zv-core-avatar-card {
  min-height: 320px;
  background: linear-gradient(180deg, rgba(255, 247, 249, 0.96), rgba(244, 232, 241, 0.94));
  border: 1px solid rgba(120, 86, 109, 0.16);
}

.zv-core-avatar-card--webcam {
  min-height: 0;
}

.zv-core-avatar-card--webcam .zv-core-avatar-svg {
  min-height: 280px;
}

.zv-core-avatar-chip {
  flex: 0 0 auto;
  width: 62px;
  border: 1px solid rgba(120, 86, 109, 0.12);
  background: linear-gradient(180deg, rgba(255, 247, 249, 0.96), rgba(244, 232, 241, 0.94));
}

.zv-core-avatar-chip--mini .zv-core-avatar-svg {
  width: 62px;
  height: 86px;
}

.zv-core-profile-card__identity-main {
  display: flex;
  align-items: center;
  gap: 12px;
}

.zv-core-profile-card__identity-main h3 {
  margin: 0;
}

@media (max-width: 900px) {
  .zv-core-avatar-studio {
    grid-template-columns: 1fr;
  }

  .zv-core-avatar-studio__preview-shell {
    position: static;
  }
}

/* Avatar Studio V2 - cute body-positive drieluik */
.zv-core-avatar-triptych {
  display: grid;
  gap: 12px;
}

.zv-core-avatar-triptych--studio {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .92fr);
  align-items: stretch;
}

.zv-core-avatar-triptych--studio .zv-core-avatar-view--head {
  grid-column: 2;
}

.zv-core-avatar-view {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,247,250,.96), rgba(244,232,241,.94));
  border: 1px solid rgba(120, 86, 109, 0.14);
  box-shadow: 0 14px 34px rgba(83, 43, 72, 0.09);
}

.zv-core-avatar-view__label {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: #72596a;
  font-size: .75rem;
  font-weight: 800;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(120,86,109,.10);
}

.zv-core-avatar-triptych--studio .zv-core-avatar-view--front,
.zv-core-avatar-triptych--studio .zv-core-avatar-view--side {
  min-height: 310px;
}

.zv-core-avatar-triptych--studio .zv-core-avatar-view--head {
  min-height: 148px;
}

.zv-core-avatar-card {
  position: relative;
  width: 100%;
  border: 1px solid rgba(120, 86, 109, 0.16);
  cursor: pointer;
  padding: 0;
  text-align: inherit;
  appearance: none;
}

.zv-core-avatar-card:hover,
.zv-core-avatar-card:focus-visible {
  border-color: rgba(177,77,116,.32);
  box-shadow: 0 18px 44px rgba(83,43,72,.14);
  outline: none;
}

.zv-core-avatar-card__privacy {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  display: block;
  padding: 9px 11px;
  border-radius: 16px;
  background: rgba(30,19,28,.66);
  color: #fff;
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 700;
  backdrop-filter: blur(10px);
}

.zv-core-profile-card__empty small {
  display: block;
  margin-top: .55rem;
  color: var(--zv-text-soft);
  font-size: .86rem;
  line-height: 1.45;
}

.zv-core-photo-modal__frame--avatar {
  min-height: 68vh;
  display: grid;
  place-items: center;
  padding: 18px;
  background: radial-gradient(circle at 50% 10%, rgba(255,247,250,.22), rgba(18,12,16,.94));
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-view {
  width: min(520px, 100%);
  max-height: 72vh;
  box-shadow: 0 22px 70px rgba(0,0,0,.30);
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-svg {
  max-height: 72vh;
  width: 100%;
}

.zv-core-photo-thumb--avatar {
  background: linear-gradient(180deg, rgba(255,247,250,.96), rgba(244,232,241,.94));
}

.zv-core-photo-thumb--avatar .zv-core-avatar-svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zv-core-thread-item__identity,
.zv-core-thread-profile-card__identity {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.zv-core-thread-item__identity strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.zv-core-thread-item .zv-core-avatar-chip,
.zv-core-thread-profile-card .zv-core-avatar-chip {
  width: 46px;
  border-radius: 16px;
}

.zv-core-thread-item .zv-core-avatar-chip--mini .zv-core-avatar-svg,
.zv-core-thread-profile-card .zv-core-avatar-chip--mini .zv-core-avatar-svg {
  width: 46px;
  height: 46px;
}

.zv-core-avatar-svg--head {
  aspect-ratio: 1 / 1;
}

@media (max-width: 900px) {
  .zv-core-avatar-triptych--studio {
    grid-template-columns: 1fr;
  }
  .zv-core-avatar-triptych--studio .zv-core-avatar-view--head {
    grid-column: auto;
  }
}

.zv-core-avatar-chip--mini .zv-core-avatar-svg--head {
  width: 62px;
  height: 62px;
}

.zv-core-avatar-triptych--modal {
  width: min(920px, 100%);
  grid-template-columns: minmax(0, 1fr) minmax(0, .88fr) minmax(0, .72fr);
  align-items: stretch;
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal .zv-core-avatar-view {
  width: 100%;
  max-height: 72vh;
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal .zv-core-avatar-svg {
  max-height: 72vh;
}

@media (max-width: 760px) {
  .zv-core-avatar-triptych--modal {
    grid-template-columns: 1fr;
  }
}

/* Avatar Studio V3 - clay 3D plus-size cartoon refinement */
.zv-core-avatar-svg--clay3d {
  filter: saturate(1.04) contrast(1.01);
}

.zv-core-avatar-svg--front,
.zv-core-avatar-svg--side {
  aspect-ratio: 420 / 620;
}

.zv-core-avatar-triptych--studio .zv-core-avatar-view--front,
.zv-core-avatar-triptych--studio .zv-core-avatar-view--side {
  min-height: 390px;
}

.zv-core-avatar-card .zv-core-avatar-svg--front,
.zv-core-avatar-card .zv-core-avatar-svg--side {
  min-height: 380px;
}

.zv-core-avatar-view {
  background:
    radial-gradient(circle at 38% 16%, rgba(255,255,255,.76), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, rgba(255,247,250,.98), rgba(244,232,241,.96));
}

.zv-core-avatar-triptych--studio {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.zv-core-avatar-triptych--studio .zv-core-avatar-view--head {
  grid-column: 1 / -1;
  justify-self: center;
  width: min(260px, 100%);
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal {
  width: min(1040px, 100%);
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal .zv-core-avatar-view--front,
.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal .zv-core-avatar-view--side {
  max-width: 360px;
}

.zv-core-photo-modal__frame--avatar .zv-core-avatar-triptych--modal .zv-core-avatar-view--head {
  align-self: start;
}

@media (max-width: 760px) {
  .zv-core-avatar-triptych--studio .zv-core-avatar-view--head {
    width: 100%;
  }
  .zv-core-avatar-triptych--studio .zv-core-avatar-view--front,
  .zv-core-avatar-triptych--studio .zv-core-avatar-view--side {
    min-height: 320px;
  }
}


/* Avatar Studio V4 - preset body bases */
.zv-core-avatar-studio__controls label small {
  display: block;
  margin-top: 6px;
  color: var(--zv-text-soft);
  font-size: .82rem;
  line-height: 1.35;
}

.zv-core-avatar-studio__controls [name="avatar_body_preset"] {
  border-color: rgba(177,77,116,.26);
  background:
    radial-gradient(circle at 12% 0%, rgba(255,255,255,.88), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, rgba(255,249,252,.98), rgba(255,242,247,.98));
  font-weight: 800;
}

.zv-core-avatar-svg--clay3d {
  filter: saturate(1.08) contrast(1.02) drop-shadow(0 12px 22px rgba(92,56,78,.10));
}

.zv-core-avatar-hair--none,
.zv-core-avatar-hair--shaved {
  pointer-events: none;
}

.zv-core-avatar-view {
  border-color: rgba(177,77,116,.14);
  box-shadow: 0 18px 44px rgba(88,45,75,.10), inset 0 1px 0 rgba(255,255,255,.72);
}


/* Avatar Studio V5 - graphical preset cards + uploaded style references */
.zv-core-avatar-reference {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 20px;
  border: 1px solid rgba(177, 77, 116, .13);
  background: linear-gradient(180deg, rgba(255,255,255,.70), rgba(255,246,250,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.76);
}

.zv-core-avatar-reference__head {
  display: grid;
  gap: 3px;
  color: #4d3644;
}

.zv-core-avatar-reference__head span {
  color: var(--zv-text-soft);
  font-size: .82rem;
  line-height: 1.35;
}

.zv-core-avatar-reference__grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(112px, 42%);
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-bottom: 4px;
}

.zv-core-avatar-reference__item {
  display: grid;
  gap: 6px;
  text-decoration: none;
  color: #5b4252;
  font-size: .75rem;
  font-weight: 800;
}

.zv-core-avatar-reference__item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(120,86,109,.12);
  box-shadow: 0 10px 24px rgba(83,43,72,.10);
}

.zv-core-avatar-visual-picker {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 14% 0%, rgba(255,255,255,.92), rgba(255,255,255,0) 32%),
    linear-gradient(180deg, rgba(255,249,252,.92), rgba(248,235,243,.86));
  border: 1px solid rgba(177,77,116,.15);
  box-shadow: 0 18px 44px rgba(88,45,75,.09), inset 0 1px 0 rgba(255,255,255,.72);
}

.zv-core-avatar-visual-picker__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.zv-core-avatar-visual-picker__head strong {
  display: block;
  color: #3e2b38;
  font-size: 1rem;
}

.zv-core-avatar-visual-picker__head span {
  display: block;
  color: var(--zv-text-soft);
  font-size: .86rem;
  line-height: 1.35;
  margin-top: 3px;
}

.zv-core-avatar-preset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 10px;
  max-height: 480px;
  overflow: auto;
  padding-right: 4px;
}

.zv-core-avatar-preset-card {
  appearance: none;
  border: 1px solid rgba(120,86,109,.14);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,242,247,.88));
  color: #4d3644;
  cursor: pointer;
  padding: 8px;
  text-align: center;
  display: grid;
  gap: 7px;
  box-shadow: 0 12px 26px rgba(83,43,72,.08);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.zv-core-avatar-preset-card:hover,
.zv-core-avatar-preset-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(177,77,116,.34);
  box-shadow: 0 16px 34px rgba(83,43,72,.13);
  outline: none;
}

.zv-core-avatar-preset-card.is-active {
  border-color: rgba(177,77,116,.64);
  box-shadow: 0 0 0 3px rgba(177,77,116,.12), 0 16px 36px rgba(83,43,72,.14);
}

.zv-core-avatar-preset-card__art {
  display: block;
  border-radius: 15px;
  overflow: hidden;
  background: linear-gradient(180deg, #fffafd, #f7eaf1);
}

.zv-core-avatar-preset-card__art .zv-core-avatar-svg {
  width: 100%;
  height: 132px;
  object-fit: contain;
}

.zv-core-avatar-preset-card__label {
  display: block;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1.15;
  min-height: 2.3em;
}


.zv-core-avatar-visual-picker--skin {
  background:
    radial-gradient(circle at 12% 0%, rgba(255,255,255,.94), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, rgba(255,249,246,.94), rgba(247,235,226,.88));
}

.zv-core-avatar-skin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 10px;
}

.zv-core-avatar-skin-card {
  appearance: none;
  border: 1px solid rgba(120,86,109,.14);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,246,240,.9));
  color: #4d3644;
  cursor: pointer;
  padding: 8px;
  text-align: center;
  display: grid;
  gap: 7px;
  box-shadow: 0 12px 26px rgba(83,43,72,.08);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.zv-core-avatar-skin-card:hover,
.zv-core-avatar-skin-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(177,77,116,.34);
  box-shadow: 0 16px 34px rgba(83,43,72,.13);
  outline: none;
}

.zv-core-avatar-skin-card.is-active {
  border-color: rgba(177,77,116,.64);
  box-shadow: 0 0 0 3px rgba(177,77,116,.12), 0 16px 36px rgba(83,43,72,.14);
}

.zv-core-avatar-skin-card__art {
  display: block;
  height: 92px;
  border-radius: 15px;
  overflow: hidden;
  background: linear-gradient(180deg, #fffafd, #f7eaf1);
}

.zv-core-avatar-skin-card__label {
  display: block;
  font-size: .74rem;
  font-weight: 900;
  line-height: 1.15;
}

.zv-avatar-facial-hair { pointer-events: none; }

@media (max-width: 760px) {
  .zv-core-avatar-preset-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 420px;
  }
}


/* Avatar v2 Hair Registry + Asset Contract V1 */
.zv-core-avatar-visual-picker--hair {
  background:
    radial-gradient(circle at 12% 0%, rgba(255,255,255,.94), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, rgba(255,249,252,.94), rgba(242,232,239,.90));
}
.zv-core-avatar-hair-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(112px, 1fr));
  gap:10px;
}
.zv-core-avatar-hair-card {
  appearance:none;
  border:1px solid rgba(120,86,109,.14);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,242,247,.90));
  color:#4d3644;
  cursor:pointer;
  padding:8px;
  text-align:center;
  display:grid;
  gap:7px;
  box-shadow:0 12px 26px rgba(83,43,72,.08);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.zv-core-avatar-hair-card:hover,
.zv-core-avatar-hair-card:focus-visible {
  transform:translateY(-1px);
  border-color:rgba(177,77,116,.34);
  box-shadow:0 16px 34px rgba(83,43,72,.13);
  outline:none;
}
.zv-core-avatar-hair-card.is-active {
  border-color:rgba(177,77,116,.64);
  box-shadow:0 0 0 3px rgba(177,77,116,.12), 0 16px 36px rgba(83,43,72,.14);
}
.zv-core-avatar-hair-card.is-unavailable {
  opacity:.78;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(246,235,241,.64));
}
.zv-core-avatar-hair-card__art {
  display:grid;
  place-items:center;
  min-height:92px;
  border-radius:15px;
  overflow:hidden;
  background:linear-gradient(180deg, #fffafd, #f7eaf1);
}
.zv-core-avatar-hair-card__placeholder {
  display:grid;
  place-items:center;
  width:100%;
  min-height:92px;
  border:1px dashed rgba(122,75,92,.24);
  border-radius:15px;
  color:var(--zv-text-soft, #8b6d78);
  font-weight:900;
  font-size:.78rem;
  background:linear-gradient(135deg, #fff8fb, #f7e7ef);
}
.zv-core-avatar-hair-card__label {
  display:block;
  font-size:.74rem;
  font-weight:900;
  line-height:1.15;
}
.zv-core-avatar-hair-card small {
  color:var(--zv-text-soft, #8b6d78);
  font-size:.70rem;
  line-height:1.2;
  font-weight:800;
}


/* Avatar Studio V6 - asset based exact reference figures */
.zv-core-avatar-asset {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(180deg, #fcf7f0 0%, #f6eee4 100%);
}
.zv-core-avatar-asset img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.zv-core-avatar-chip .zv-core-avatar-asset {
  border-radius: 999px;
  background: #f8f1e8;
}
.zv-core-avatar-chip .zv-core-avatar-asset img {
  object-fit: cover;
}
.zv-core-avatar-card .zv-core-avatar-asset,
.zv-core-avatar-preset-card__art .zv-core-avatar-asset,
.zv-core-photo-thumb--avatar .zv-core-avatar-asset {
  min-height: 100%;
}
.zv-core-avatar-view .zv-core-avatar-asset {
  min-height: 260px;
}
.zv-core-avatar-view--head .zv-core-avatar-asset {
  min-height: 220px;
}
.zv-core-avatar-preset-card__art {
  overflow: hidden;
}


/* Avatar v2 public anonymous bodybase repair — 0.14.27 */
.zv-core-avatar-card .zv-core-avatar-asset {
  min-height: 320px;
  aspect-ratio: 420 / 620;
}
.zv-core-avatar-chip {
  width: 62px;
  height: 62px;
  min-width: 62px;
}
.zv-core-avatar-chip .zv-core-avatar-asset {
  width: 62px;
  height: 62px;
  min-height: 62px;
  aspect-ratio: 1 / 1;
}
.zv-core-avatar-chip .zv-core-avatar-asset img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.zv-core-profile-card__media-shell .zv-core-avatar-card {
  display: block;
}
.zv-core-profile-card__media-shell .zv-core-avatar-card .zv-core-avatar-asset img {
  object-fit: contain;
}


/* Avatar v2-only safety patch 0.14.28 */
.zv-core-avatar-img {
  display:inline-grid;
  place-items:center;
  overflow:hidden;
  border-radius:999px;
  background:var(--zv-surface-soft, #fff4f7);
  border:1px solid rgba(122, 75, 92, .18);
  box-shadow:0 10px 26px rgba(72, 35, 55, .12);
  flex:0 0 auto;
}
.zv-core-avatar-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.zv-core-avatar-asset--missing {
  min-height:140px;
  display:grid;
  place-items:center;
  border:1px dashed rgba(122,75,92,.24);
  color:var(--zv-text-soft, #8b6d78);
  font-weight:800;
  background:linear-gradient(135deg, #fff8fb, #f7e7ef);
}
.zv-core-avatar-toggle input[disabled] + span {
  opacity:.86;
}

/* Avatar Library V1 — complete PNG avatarsets, no slider/overlay rendering. */
.zv-core-avatar-library-shell {
  overflow: hidden;
}

.zv-core-avatar-library {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.zv-core-avatar-library__filters {
  position: sticky;
  top: 18px;
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(122, 77, 63, .12);
  border-radius: 22px;
  background: rgba(255, 248, 241, .76);
  box-shadow: 0 18px 40px rgba(91, 55, 43, .07);
}

.zv-core-avatar-library__filters label {
  display: grid;
  gap: 6px;
}

.zv-core-avatar-library__filters label > span {
  font-size: .78rem;
  font-weight: 800;
  color: #7b5145;
}

.zv-core-avatar-library__hover-preview {
  display: grid;
  min-height: 220px;
  border: 1px solid rgba(188, 103, 75, .18);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .88), rgba(255, 238, 229, .78));
  box-shadow: 0 18px 42px rgba(91, 55, 43, .09);
  overflow: hidden;
}

.zv-core-avatar-library__hover-preview[hidden] {
  display: none;
}

.zv-core-avatar-library__hover-preview--floating {
  position: fixed;
  left: max(16px, env(safe-area-inset-left));
  top: 92px;
  width: min(326px, calc(100vw - 32px));
  max-height: calc(100vh - 112px);
  overflow: hidden;
  z-index: 99999;
  pointer-events: none;
  backdrop-filter: blur(12px);
  animation: zvCoreAvatarHoverPreviewIn .14s ease-out;
}

.zv-core-avatar-library__hover-preview--floating .zv-core-avatar-hover-card {
  max-height: calc(100vh - 112px);
}

.zv-core-avatar-library__hover-preview--floating .zv-core-avatar-hover-card figure {
  min-height: 240px;
}

.zv-core-avatar-library__hover-preview--floating .zv-core-avatar-hover-card img {
  height: min(58vh, 520px);
}

@keyframes zvCoreAvatarHoverPreviewIn {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.zv-core-avatar-library__hover-preview-empty {
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 18px;
  color: #7b5145;
  min-height: 220px;
}

.zv-core-avatar-library__hover-preview-empty strong {
  color: #4c3029;
  font-size: 1rem;
}

.zv-core-avatar-library__hover-preview-empty span {
  color: #8a665c;
  font-size: .84rem;
  line-height: 1.45;
}

.zv-core-avatar-hover-card {
  display: grid;
  gap: 10px;
  padding: 13px;
}

.zv-core-avatar-hover-card figure {
  margin: 0;
  display: grid;
  place-items: center;
  min-height: 300px;
  border-radius: 18px;
  background: rgba(255, 255, 255, .72);
  box-shadow: inset 0 0 0 1px rgba(122, 77, 63, .08);
  overflow: hidden;
}

.zv-core-avatar-hover-card img {
  width: 100%;
  height: min(52vh, 420px);
  object-fit: contain;
  display: block;
}

.zv-core-avatar-hover-card__missing {
  display: grid;
  place-items: center;
  min-height: 260px;
  color: #8a665c;
  font-weight: 900;
}

.zv-core-avatar-hover-card__body {
  display: grid;
  gap: 4px;
}

.zv-core-avatar-hover-card__body strong {
  color: #4c3029;
  font-size: 1rem;
  line-height: 1.2;
}

.zv-core-avatar-hover-card__body span,
.zv-core-avatar-hover-card__body small {
  color: #806058;
  font-size: .78rem;
  line-height: 1.3;
}

.zv-core-avatar-hover-card__body em {
  justify-self: start;
  margin-top: 3px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(247, 221, 207, .72);
  color: #7b5145;
  font-style: normal;
  font-size: .72rem;
  font-weight: 900;
}

.zv-core-avatar-hover-card.is-locked figure {
  border: 1px dashed rgba(122, 77, 63, .22);
}

.zv-core-avatar-library__main {
  min-width: 0;
  display: grid;
  gap: 16px;
}

.zv-core-avatar-library__toolbar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}

.zv-core-avatar-library__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 14px;
}

.zv-core-avatar-library-card {
  position: relative;
  border: 1px solid rgba(122, 77, 63, .12);
  border-radius: 22px;
  background: rgba(255, 255, 255, .84);
  box-shadow: 0 14px 34px rgba(91, 55, 43, .08);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.zv-core-avatar-library-card:hover,
.zv-core-avatar-library-card:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 20px 44px rgba(91, 55, 43, .12);
  border-color: rgba(204, 126, 92, .38);
}

.zv-core-avatar-library-card.is-active {
  border-color: rgba(188, 103, 75, .82);
  box-shadow: 0 20px 48px rgba(188, 103, 75, .18);
}

.zv-core-avatar-library-card.is-locked {
  opacity: .86;
}

.zv-core-avatar-library-card__button {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  padding: 0;
}

.zv-core-avatar-library-card.is-locked .zv-core-avatar-library-card__button {
  cursor: not-allowed;
}

.zv-core-avatar-library-card__thumb {
  display: block;
  aspect-ratio: 1 / 1;
  background: linear-gradient(180deg, rgba(255, 247, 237, .92), rgba(255, 255, 255, .86));
  overflow: hidden;
}

.zv-core-avatar-library-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.zv-core-avatar-library-card__body {
  display: grid;
  gap: 5px;
  padding: 12px 13px 10px;
}

.zv-core-avatar-library-card__body strong {
  font-size: .94rem;
  line-height: 1.22;
  color: #4c3029;
}

.zv-core-avatar-library-card__body span,
.zv-core-avatar-library-card__body small {
  font-size: .76rem;
  color: #8a665c;
  line-height: 1.25;
}

.zv-core-avatar-library-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 13px 12px;
}

.zv-core-avatar-library-card__badges em {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(247, 221, 207, .72);
  color: #7b5145;
  font-style: normal;
  font-size: .7rem;
  font-weight: 800;
}

.zv-core-avatar-library-card__badges .is-lock {
  background: rgba(70, 50, 45, .1);
}

.zv-core-avatar-library-card__badges .is-selected {
  background: rgba(172, 104, 76, .16);
  color: #8d442e;
}

.zv-core-avatar-library-card__triptych {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4px;
  padding: 0 10px 12px;
}

.zv-core-avatar-library-card__triptych img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 12px;
  background: #fff8f1;
}

.zv-core-avatar-library-card__triptych img:nth-child(3) {
  aspect-ratio: 1 / 1;
}

.zv-core-avatar-library .zv-core-avatar-studio__preview-shell {
  position: relative;
  top: auto;
}

@media (max-width: 980px) {
  .zv-core-avatar-library {
    grid-template-columns: 1fr;
  }

  .zv-core-avatar-library__filters {
    position: relative;
    top: auto;
  }

  .zv-core-avatar-library__hover-preview,
  .zv-core-avatar-library__hover-preview--floating {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .zv-core-avatar-library__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .zv-core-avatar-library__toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
}

.zv-core-avatar-placeholder-admin {
  margin-top: 18px;
  border: 1px dashed rgba(122, 77, 63, .24);
  border-radius: 22px;
  background: rgba(255, 252, 247, .88);
  padding: 14px;
}

.zv-core-avatar-placeholder-admin__details > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  color: #4c3029;
}

.zv-core-avatar-placeholder-admin__details > summary span {
  display: grid;
  gap: 3px;
}

.zv-core-avatar-placeholder-admin__details > summary small,
.zv-core-avatar-placeholder-admin__details > summary em {
  color: #8a665c;
  font-size: .78rem;
  font-style: normal;
  font-weight: 800;
}

.zv-core-avatar-placeholder-table {
  display: grid;
  gap: 8px;
  max-height: 460px;
  overflow: auto;
  padding-right: 4px;
}

.zv-core-avatar-placeholder-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.15fr) minmax(170px, .95fr) minmax(140px, .8fr) minmax(120px, .72fr);
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(122, 77, 63, .10);
  color: #6b4a42;
  font-size: .78rem;
}

.zv-core-avatar-placeholder-row strong,
.zv-core-avatar-placeholder-row small {
  display: block;
}

.zv-core-avatar-placeholder-row small {
  color: #9a776d;
  margin-top: 2px;
}

.zv-core-avatar-placeholder-row.is-made {
  border-color: rgba(85, 145, 98, .28);
  background: rgba(237, 250, 239, .78);
}

.zv-core-avatar-placeholder-row.is-missing {
  border-color: rgba(196, 126, 75, .20);
}

@media (max-width: 760px) {
  .zv-core-avatar-placeholder-admin__details > summary,
  .zv-core-avatar-placeholder-row {
    grid-template-columns: 1fr;
    display: grid;
  }
}


/* Avatar Library V2 lazy selectie — filtervenster, grote selectie en paging. */
.zv-core-avatar-library__filter-window {
  display: grid;
  gap: 14px;
}

.zv-core-avatar-library__filter-window > summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 0 8px;
  color: #5b372b;
  font-weight: 900;
}

.zv-core-avatar-library__filter-window > summary small {
  color: #9a7063;
  font-size: .72rem;
  font-weight: 800;
}

.zv-core-avatar-library__filter-window[open] > label,
.zv-core-avatar-library__filter-window[open] > .zv-core-grid,
.zv-core-avatar-library__filter-window[open] > button,
.zv-core-avatar-library__filter-window[open] > p {
  margin-top: 12px;
}

.zv-core-avatar-library__selected {
  min-width: 0;
}

.zv-core-avatar-selected-card {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr);
  gap: 18px;
  align-items: stretch;
  border: 1px solid rgba(188, 103, 75, .18);
  border-radius: 26px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(255, 250, 246, .96), rgba(255, 238, 229, .82));
  box-shadow: 0 24px 56px rgba(91, 55, 43, .1);
}

.zv-core-avatar-selected-card.is-locked {
  border-style: dashed;
}

.zv-core-avatar-selected-card__media {
  display: grid;
  grid-template-columns: 1fr 1fr .82fr;
  gap: 10px;
  min-width: 0;
}

.zv-core-avatar-selected-card__media figure {
  margin: 0;
  display: grid;
  gap: 6px;
  min-width: 0;
}

.zv-core-avatar-selected-card__media img {
  width: 100%;
  height: 360px;
  object-fit: contain;
  display: block;
  border-radius: 20px;
  background: rgba(255, 255, 255, .72);
  box-shadow: inset 0 0 0 1px rgba(122, 77, 63, .1);
}

.zv-core-avatar-selected-card__media figure:nth-child(3) img {
  height: 260px;
  align-self: end;
}

.zv-core-avatar-selected-card__media figcaption {
  text-align: center;
  color: #9a7063;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.zv-core-avatar-selected-card__body {
  display: grid;
  align-content: center;
  gap: 10px;
  min-width: 0;
}

.zv-core-avatar-selected-card__body h4 {
  margin: 0;
  color: #4c3029;
  font-size: clamp(1.25rem, 2.4vw, 1.9rem);
  line-height: 1.08;
}

.zv-core-avatar-selected-card__body p {
  margin: 0;
  color: #76584f;
  line-height: 1.55;
}

.zv-core-avatar-selected-card__criteria {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.zv-core-avatar-selected-card__criteria span {
  display: inline-grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .74);
  color: #7f5e54;
  font-size: .74rem;
  line-height: 1.2;
  box-shadow: inset 0 0 0 1px rgba(122, 77, 63, .08);
}

.zv-core-avatar-selected-card__criteria strong {
  color: #5b372b;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.zv-core-avatar-library__pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 2px 2px;
}

.zv-core-avatar-library__pagination-info {
  color: #8a665c;
  font-size: .86rem;
  font-weight: 800;
}

.zv-core-avatar-library__pagination-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.zv-core-avatar-library__loading {
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  min-height: 120px;
  border: 1px dashed rgba(122, 77, 63, .22);
  border-radius: 22px;
  background: rgba(255, 248, 241, .74);
  color: #7b5145;
  font-weight: 900;
}

.zv-core-avatar-library__loading.is-overlay {
  min-height: auto;
  padding: 10px;
  margin-bottom: 8px;
}

.zv-core-avatar-library-card__thumb img {
  transition: transform .2s ease;
}

.zv-core-avatar-library-card:hover .zv-core-avatar-library-card__thumb img,
.zv-core-avatar-library-card:focus-within .zv-core-avatar-library-card__thumb img {
  transform: scale(1.025);
}

@media (max-width: 1120px) {
  .zv-core-avatar-selected-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .zv-core-avatar-selected-card__media {
    grid-template-columns: 1fr 1fr;
  }

  .zv-core-avatar-selected-card__media figure:nth-child(3) {
    grid-column: 1 / -1;
  }

  .zv-core-avatar-selected-card__media img,
  .zv-core-avatar-selected-card__media figure:nth-child(3) img {
    height: 260px;
  }
}

@media (max-width: 520px) {
  .zv-core-avatar-selected-card {
    padding: 12px;
    border-radius: 20px;
  }

  .zv-core-avatar-selected-card__media {
    grid-template-columns: 1fr;
  }

  .zv-core-avatar-selected-card__media figure:nth-child(3) {
    grid-column: auto;
  }

  .zv-core-avatar-selected-card__media img,
  .zv-core-avatar-selected-card__media figure:nth-child(3) img {
    height: 240px;
  }

  .zv-core-avatar-library__pagination {
    align-items: flex-start;
    flex-direction: column;
  }
}
