/* ============================================================================
 * VibeCheck PWA — app.css (Flat Prototype — design-prototype-20261002)
 * Light warm flat look is the default: bg #faf9f6 · white surfaces · 1px lines
 * · terracotta accent · Manrope · soft shadows. Dark = flat warm-dark override.
 * Every class referenced in app.js is styled here.
 * ============================================================================ */

/* Manrope (Cyrillic + Latin) — local, from the 2026-10-02 redesign prototype. License: assets/fonts/OFL-Manrope.txt */
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-regular.woff2') format('woff2'),url('assets/fonts/manrope-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-medium.woff2') format('woff2'),url('assets/fonts/manrope-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-semibold.woff2') format('woff2'),url('assets/fonts/manrope-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-bold.woff2') format('woff2'),url('assets/fonts/manrope-bold.ttf') format('truetype');font-weight:700 800;font-display:swap}

:root{
  color-scheme:light;
  --c-accent:#b04a35;--c-green:#3d7358;--c-gold:#8a5d0a;--c-red:#c02f4b;
  --bg:#faf9f6;--text:#2e302f;
  --text2:rgba(46,48,47,.84);--text3:rgba(46,48,47,.70);
  --surface:#fff;--soft:#f1f1ea;--line:#e1e2d9;--hint:#f3f0e9;--border2:#cfd0c5;
  --accent:#e77762;--accent-hover:#af4837;--accent-soft:#fdf0eb;--action:#c1523f;
  --coral:#e77762;--coral2:#c1523f;--purple:#c1523f;
  --action-coral:#c1523f;--action-coral2:#af4837;--action-purple:#c1523f;
  --gold:#9a6a10;--gold2:#ad7517;--green:#52856b;--green-soft:#eef5ee;
  --red:#d93d59;--amber:#b86d00;--blue:#52856b;
  --panel:#fff;--panel2:#f1f1ea;--glass-bg:#fff;--glass-border:#e1e2d9;--glass-glow:transparent;
  --border:#e1e2d9;--div:#e1e2d9;
  --surface-1:#fff;--surface-2:#f1f1ea;--surface-3:#fff;--surface-border:#e1e2d9;--surface-highlight:transparent;
  --control-bg:#fff;--control-border:#cfd0c5;
  --r-shell:0px;--r-panel:14px;--r-glass:19px;--r-card:19px;--r-pill:999px;--r-btn:10px;
  --sh-soft:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08);--sh-glass:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08);
  --glow-coral:0 0 0 0 transparent;--glow-blue:0 0 0 0 transparent;--glow-purple:0 0 0 0 transparent;
  --font:Manrope,'Plus Jakarta Sans','Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --notice-bg:#fff;--notice-bg-read:#f1f1ea;--notice-border:#e1e2d9;--notice-shadow:0 12px 40px rgba(54,53,35,.1);
  --notice-message:#52856b;--notice-like:#c1523f;--notice-guest:#357e8c;
  --accent-btn:#c1523f;--accent-btn-hover:#af4837;--accent-btn-active:#9c3f30;
  --t-body:14px;--t-lh:1.5;--t-chat:15px;--t-secondary:12px;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;
  --shadow:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;min-height:100%}
body{font-family:var(--font);font-size:var(--t-body);line-height:var(--t-lh);background:var(--bg);color:var(--text);display:grid;place-items:stretch;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}

button{cursor:pointer;border:0;background:none;color:inherit;font-family:inherit;touch-action:manipulation}
svg{display:block;flex-shrink:0}
a{text-decoration:none;color:inherit;touch-action:manipulation}
img,svg{max-width:100%}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;outline:none;border:0;background:none}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role="button"]:focus-visible{outline:3px solid rgba(231,119,98,.55);outline-offset:2px}
::selection{background:#c1523f;color:#fff}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(24,27,22,.18);border-radius:4px}

/* App shell */
.app {
  position: relative;
  z-index: 1;
  width: min(1280px, 94vw);
  height: min(720px, 90vh);
  display: grid;
  grid-template-columns: 240px minmax(0,1fr);
  grid-template-rows: minmax(0,1fr);
  border-radius: var(--r-shell);
  overflow: hidden;

  /* Премиальное ультра-прозрачное стекло */
  background:rgba(24,27,22,0.20) !important;
  border:1px solid var(--line);
  
  

  box-shadow:0 30px 80px rgba(24,27,22,.5),
    inset 0 1px 1px transparent;
}
.app:not(.auth-screen)>.left,.app:not(.auth-screen)>.center,.app:not(.auth-screen)>.right{height:100%;min-height:0}
.app:not(.auth-screen)>.left{overflow-y:auto;overflow-x:hidden}
.app:not(.auth-screen)>.center{overflow:hidden}
.app.auth-screen{position:fixed;inset:0;grid-template-columns:1fr;display:block!important;width:100%;max-width:none;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;border:0;border-radius:0}

/* ===== LEFT SIDEBAR — glassmorphism (transparent, blurs body blobs through) ===== */
.left {
  position: relative;
  z-index: 2;
  border:0;
  border-right:1px solid var(--line);

  /* Убираем плотный rgba(15,15,20, 0.35) и делаем изящное размытие */
  background:var(--soft) !important;
  
  

  /* Эффект легкого внутреннего свечения грани */
  box-shadow:inset -1px 0 0 transparent;
  display: flex;
  flex-direction: column;
  padding-top: 24px;
}
.brand{padding:0 24px 20px;border-bottom:1px solid var(--div)}
.brand h1{font-size:24px;font-weight:700;letter-spacing:.02em;line-height:1}
.brand h1 span{background:linear-gradient(90deg,var(--coral),var(--gold2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand .sub{margin-top:8px;font-size:9px;letter-spacing:.10em;color:var(--text3)}
.vc-sidebar-brand{display:flex;align-items:center;gap:9px}.vc-sidebar-brand>img{width:44px;height:44px;flex:0 0 44px;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(255,89,144,.24))}.vc-sidebar-brand .sub{margin-top:5px;font-size:7px;letter-spacing:.075em;white-space:nowrap}
.nav{display:flex;flex-direction:column;margin-top:4px}
.nav-item{position:relative;height:48px;display:flex;align-items:center;gap:14px;padding:0 24px;
  color:var(--text2);font-size:15px;font-weight:500;cursor:pointer;transition:.18s;overflow:hidden;
  border-radius:12px;margin:0 8px}
.nav-item svg{width:20px;height:20px;stroke-width:1.8;flex-shrink:0;opacity:.85}
.nav-item:hover{color:var(--text);background:var(--soft);
  }
.nav-item.active{color:#fff;font-weight:600;
  background:linear-gradient(90deg,var(--accent-soft) 0%,transparent 100%)!important;
  border-left:0;
  
  box-shadow:inset 0 1px 0 transparent}
.nav-item.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--coral),var(--gold2));box-shadow:0 0 12px var(--coral)}
.nav-item .badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:var(--red);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.nav-sep{font-size:9px;font-weight:700;letter-spacing:.10em;color:var(--text3);padding:16px 24px 6px}
.vc-rail-theme{display:block;margin:auto 16px 0;padding:4px;border:1px solid var(--line);border-radius:16px;background:var(--soft);box-shadow:inset 0 1px 0 transparent}
.vc-rail-theme button{display:grid;grid-template-columns:30px minmax(0,1fr) 38px;align-items:center;gap:8px;width:100%;min-width:0;min-height:48px;padding:6px 8px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text2);text-align:left;cursor:pointer;transition:background .16s cubic-bezier(.2,.8,.2,1),border-color .16s,color .16s,transform .16s}
.vc-rail-theme button:hover{border-color:var(--coral);background:var(--soft);color:var(--text)}
.vc-rail-theme button:active{transform:translateY(1px)}
.vc-rail-theme button:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.vc-rail-theme-current{display:grid;place-items:center}.vc-rail-theme .vc-glass-icon{width:27px;height:27px}.vc-rail-theme-copy{display:grid;min-width:0;gap:1px}.vc-rail-theme-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:11px;font-weight:800}.vc-rail-theme-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text3);font-size:8px;font-weight:650}
.vc-rail-theme-track{position:relative;display:block;width:38px;height:22px;border:1px solid var(--line);border-radius:999px;background:var(--soft);box-shadow:inset 0 2px 6px rgba(54,53,35,.14)}.vc-rail-theme-track i{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--gold2);box-shadow:0 2px 8px rgba(54,53,35,.14);transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s}.vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track{border-color:var(--coral);background:var(--accent-soft)}.vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track i{transform:translateX(16px);background:#b79cff;box-shadow:0 2px 9px rgba(231,118,98,.18)}
.vc-rail-theme+.user-mini{margin:8px 16px 16px}
.user-mini{margin:auto 16px 16px;display:flex;align-items:center;gap:10px;padding:12px;
  border-radius:18px;
  background:var(--soft)!important;
  
  border:1px solid var(--line);
  box-shadow:0 4px 20px rgba(54,53,35,.14),inset 0 1px 0 transparent;
  cursor:pointer;transition:.18s}
.user-mini:hover{background:var(--soft)!important;border-color:var(--line)}
.user-mini .av{width:42px;height:42px;border-radius:12px;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700}
.user-mini .av img{width:100%;height:100%;object-fit:cover}
.user-mini .ui{flex:1;min-width:0}
.user-mini .un{font-size:13px;font-weight:600}
.user-mini .ub{max-width:100%;margin-top:2px;overflow:hidden;color:var(--text3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}

/* ===== CENTER ===== */
.center{position:relative;z-index:2;display:flex;flex-direction:column;overflow:visible;min-width:0}
.center.no-topbar .topbar{display:none}
.topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--div);flex-shrink:0;
  background:rgba(24,27,22,0.35);}
.search{flex:1;max-width:280px;height:38px;display:flex;align-items:center;gap:8px;padding:0 14px;
  border-radius:var(--r-pill);background:var(--soft);
  
  border:1px solid var(--line);box-shadow:inset 0 1px 0 transparent;transition:.18s}
.search:focus-within{border-color:var(--coral);background:var(--soft);
  box-shadow:0 0 0 3px rgba(231,118,98,.18),inset 0 1px 0 transparent}
.search svg{width:16px;height:16px;color:var(--text2);flex-shrink:0;stroke-width:2}
.search input{flex:1;font-size:13px;min-width:0}
.search input::placeholder{color:var(--text3)}
.daily-inline{display:flex;align-items:center;gap:8px;margin-left:auto;padding:6px 14px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,var(--hint),var(--accent-soft));
  
  border:1px solid var(--gold2);box-shadow:inset 0 1px 0 transparent;cursor:pointer;transition:.18s}
.daily-inline:hover{border-color:var(--gold2)}
.daily-inline .ico{font-size:18px}
.daily-inline .txt{font-size:12px;font-weight:600;color:var(--c-gold)}
.daily-inline .txt span{display:block;font-size:10px;color:var(--text3);font-weight:400}
.top-actions{display:flex;gap:8px;flex-shrink:0}
.tool-btn{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:var(--text2);cursor:pointer;position:relative;transition:.18s;
  background:var(--soft);border:1px solid var(--line)}
.tool-btn:hover{background:var(--soft);color:var(--text)}
.tool-btn svg{width:18px;height:18px}
.tool-btn .dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--red);border:1.5px solid var(--bg)}
.tool-av{width:36px;height:36px;border-radius:50%;overflow:hidden;border:1px solid var(--border);cursor:pointer;flex-shrink:0;background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px}
.tool-av img{width:100%;height:100%;object-fit:cover}

.main-body{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:0}

/* Stage (discover) — blobs now live on body (under .app) so the global blur flows through; stage stays clean */
.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:16px;overflow:visible;gap:16px;min-height:100%;position:relative}
.stage>*{position:relative;z-index:1}

/* ===== UNIFIED GLASS CONTAINER (split-card) ===== */
.card-back-wrap{position:relative;width:100%;max-width:620px;display:flex;justify-content:center}
.card-back-peek{position:absolute;inset:0;border-radius:var(--r-glass);z-index:-1;pointer-events:none;
  background:var(--soft);border:1px solid var(--line)}
.card-back-peek.b1{transform:translateY(12px) scale(0.96);opacity:.5}
.card-back-peek.b2{transform:translateY(24px) scale(0.92);opacity:.3}

.glass-container{
  display:flex;width:100%;max-width:620px;height:min(480px,55vh);border-radius:24px;
  overflow:hidden;position:relative;
  background:var(--soft)!important;
  border:1px solid var(--line)!important;
  box-shadow:0 8px 32px 0 rgba(54,53,35,.14),inset 0 1px 0 transparent!important;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .25s ease;
  will-change:transform,opacity;
  touch-action:pan-y;
}
.glass-container.dragging{transition:none;z-index:10}
/* No vertical seam between photo and info zones — card is one seamless glass space */
.glass-container::after{display:none}
.glass-container.show-like .drag-badge.like{opacity:1}
.glass-container.show-nope .drag-badge.nope{opacity:1}

/* LEFT ZONE: Photo (45%) — transparent (no coral/purple slab; only the photo shows) */
.photo-zone{width:45%;height:100%;align-self:stretch;position:relative;flex-shrink:0;overflow:hidden;
  background:transparent}
/* Photo fades out on the right edge — seamless blend into the glass info-zone, no hard seam.
   Overlays (story bars, nav arrows, online dot) sit above and stay crisp. */
.photo-zone .photo{width:100%;height:100%;max-width:none;display:block;object-fit:cover;position:absolute;inset:0;
  -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to right,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%);
  -webkit-mask-size:100% 100%;mask-size:100% 100%}

/* Story bars on photo — thin (2px) for finesse */
.swtop{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:4px;z-index:6}
.swtop i{flex:1;height:2px;border-radius:2px;background:var(--soft);overflow:hidden;position:relative;cursor:pointer}
.swtop i b{display:block;height:100%;width:0;background:#fff;border-radius:2px;transition:width 5s linear}
.swtop i.done b{width:100%!important;transition:none}
.swtop i.active b{width:0;transition:none}

/* Arrow nav buttons on photo — pure icons, no background/border/outline */
.photo-nav{position:absolute;z-index:7;background:none!important;border:0!important;outline:none!important;box-shadow:none!important;padding:6px}
.photo-nav svg{width:18px;height:18px;stroke-width:2}
.photo-nav:hover{background:none!important;color:#fff!important}
.photo-nav:focus-visible{outline:3px solid var(--coral)!important;outline-offset:2px!important;background:rgba(24,27,22,.62)!important}
.photo-nav.is-left{left:8px}
.photo-nav.is-right{right:8px}

/* Online dot */
.online-dot{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px rgba(163,189,147,0.5);border:2px solid rgba(24,27,22,0.3);z-index:6;display:none}
.online-dot.on{display:block}

/* RIGHT ZONE: Info (55%) — transparent so glass-container blur shows through */
.info-zone{width:55%;padding:18px 20px;display:flex;flex-direction:column;gap:0;position:relative;overflow-y:auto;overflow-x:hidden;background:transparent}
.info-zone::-webkit-scrollbar{width:3px}
.info-zone::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
/* Name row */
.info-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.info-name{font-size:22px;font-weight:700;letter-spacing:.01em;color:var(--text);line-height:1.1}
.info-name .age{font-weight:400;color:var(--text2)}
/* Location — separate block (icon + text) */
.info-block{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.info-block svg{width:16px;height:16px;color:var(--text3);flex-shrink:0;stroke-width:1.8}
.info-block .lbl{font-size:14px;color:var(--text2);font-weight:500}
/* Other info chips — separated from city */
.info-chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.info-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r-pill);
  background:var(--soft);
  
  border:1px solid var(--line);
  box-shadow:inset 0 1px 0 transparent;
  font-size:12px;font-weight:500;color:var(--text2)}
.info-chip svg{width:14px;height:14px;color:var(--text3);flex-shrink:0;stroke-width:1.8}
.info-chip .emoji{font-size:13px}
/* Ask button (when interests hidden) */
.info-ask-btn{padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--coral);
  background:var(--accent-soft);color:var(--c-accent);font-size:12px;font-weight:600;cursor:pointer;transition:.18s}
.info-ask-btn:hover{background:var(--accent-soft);border-color:var(--coral)}
/* Premium glass sections */
.info-section{padding:10px 0;border-top:1px solid var(--line)}
.info-section:first-of-type{border-top:0;padding-top:4px}
.info-section .sh{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--text)!important;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.info-section .sh::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--coral);opacity:.7}
.info-section .bio{font-size:13.5px;line-height:1.6;color:var(--text2);white-space:pre-wrap;word-break:break-word}
.info-bio-placeholder{font-size:13px;color:var(--text3);font-style:italic;padding:6px 0}
/* Interest tags */
.info-tags{display:flex;flex-wrap:wrap;gap:6px}
.info-tag{font-size:12.5px;font-weight:600;color:var(--text2);
  padding:5px 12px;border-radius:var(--r-pill);
  background:var(--soft)!important;
  
  border:1px solid var(--line)!important;
  box-shadow:inset 0 1px 0 transparent;
  transition:.18s}
.info-tag:hover{border-color:var(--coral);background:var(--accent-soft)}
.info-placeholder{font-size:12.5px;color:var(--text3);font-style:italic;padding:8px 14px;
  border:1px dashed var(--line);border-radius:var(--r-pill);text-align:center}
/* Drag badges on glass-container */
.drag-badge{position:absolute;top:40px;padding:6px 16px;border-radius:10px;font-size:18px;font-weight:900;
  letter-spacing:2px;border:3px solid;opacity:0;transition:opacity .12s;pointer-events:none;z-index:10}
.drag-badge.like{left:20px;color:var(--c-green);border-color:var(--green);transform:rotate(-12deg)}
.drag-badge.nope{right:20px;color:var(--c-red);border-color:var(--red);transform:rotate(12deg)}

/* ===== ACTION BAR — floating glass capsule holding the 5 buttons ===== */
.actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-shrink:0;
  padding:10px 24px;border-radius:50px;
  background:rgba(24,27,22,0.6)!important;
  
  border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(24,27,22,.5)}
.act{border-radius:50%;display:grid;place-items:center;transition:all .18s cubic-bezier(.34,1.56,.64,1);
  background:var(--soft)!important;
  
  border:1px solid var(--line)!important;
  box-shadow:0 4px 18px rgba(54,53,35,.14),inset 0 1px 0 transparent}
.act:active{transform:scale(.88)!important;transition:transform .08s}
.act svg{width:20px;height:20px;stroke-width:2.2;color:var(--text2)}
.act-rewind{width:48px;height:48px}
.act-rewind svg{color:var(--c-gold)}
.act-rewind:hover{box-shadow:0 0 18px rgba(54,53,35,.14);transform:scale(1.08);border-color:var(--gold2)!important;background:var(--hint)!important}
.act-dislike{width:56px;height:56px}
.act-dislike svg{color:var(--c-red)}
.act-dislike:hover{box-shadow:0 0 22px rgba(255,138,154,0.35);transform:scale(1.08);border-color:rgba(255,138,154,0.5)!important;background:rgba(255,138,154,0.12)!important}
.act-like{width:66px;height:66px;background:linear-gradient(135deg,var(--coral),var(--coral2))!important;border-color:transparent!important;
  box-shadow:0 0 24px rgba(231,118,98,.18),0 4px 16px rgba(54,53,35,.14)}
.act-like svg{width:26px;height:26px;color:#fff}
.act-like:hover{transform:scale(1.08);box-shadow:0 0 36px rgba(231,118,98,.18),0 4px 16px rgba(54,53,35,.14)}
.act-profile{width:56px;height:56px}
.act-profile svg{color:var(--c-accent)}
.act-profile:hover{box-shadow:0 0 22px var(--soft);transform:scale(1.08);border-color:var(--line)!important;background:var(--soft)!important}
.act-message{width:48px;height:48px}
.act-message svg{color:var(--c-accent)}
.act-message:hover{box-shadow:0 0 18px rgba(192,153,255,0.35);transform:scale(1.08);border-color:rgba(192,153,255,0.5)!important;background:rgba(192,153,255,0.12)!important}

/* Discover workspace: primary profile + calm live recommendations rail. */
.discover-workspace{display:grid;grid-template-columns:minmax(0,620px) minmax(270px,300px);align-items:start;justify-content:center;gap:16px;width:min(100%,936px);min-width:0}
.discover-primary{display:flex;flex-direction:column;align-items:center;gap:16px;min-width:0}
.discover-primary .card-back-wrap{max-width:620px}
.discover-more{min-width:0;padding:18px;border:1px solid var(--surface-border);border-radius:22px;background:linear-gradient(150deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight),0 20px 48px rgba(54,53,35,.14);overflow:hidden}
.discover-more>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:1px 2px 8px}
.discover-more>header div{min-width:0}.discover-more>header span{display:block;color:var(--c-accent);font-size:9px;font-weight:800;letter-spacing:.13em;}.discover-more>header h2{margin:5px 0 0;color:var(--text);font-size:18px;line-height:1.15;letter-spacing:-.035em}
.discover-more>header b{flex:0 0 auto;padding:6px 9px;border:1px solid var(--surface-border);border-radius:999px;background:var(--surface-2);color:var(--text3);font-size:9px;font-weight:750;white-space:nowrap}
.discover-more-list{display:grid;gap:4px}
.discover-more-person{display:grid;grid-template-columns:46px minmax(0,1fr) 28px;align-items:center;gap:10px;width:100%;min-height:76px;padding:8px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.discover-more-person:hover{transform:translateX(3px);border-color:var(--surface-border);background:var(--surface-2)}
.discover-more-person:focus-visible,.discover-more-toggle:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.discover-more-person>img,.discover-more-avatar{display:grid;place-items:center;width:46px;height:46px;object-fit:cover;border:1px solid var(--line);border-radius:14px;box-shadow:inset 0 1px 0 transparent,0 8px 18px rgba(54,53,35,.14);font-size:13px;font-weight:800;color:#fff}
.discover-more-copy{display:grid;gap:4px;min-width:0}.discover-more-copy strong,.discover-more-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discover-more-copy strong{font-size:12px;line-height:1.2}.discover-more-copy small{color:var(--text3);font-size:9px;line-height:1.2}.discover-more-copy small i{display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:var(--text3);vertical-align:1px}.discover-more-person.is-online .discover-more-copy small{color:var(--c-green)}.discover-more-person.is-online .discover-more-copy small i{background:var(--green);box-shadow:0 0 0 3px rgba(163,189,147,.12)}
.discover-more-copy em{display:flex;min-width:0;gap:4px;font-style:normal}.discover-more-copy em span{max-width:88px;padding:3px 6px;overflow:hidden;border-radius:999px;background:var(--accent-soft);color:var(--text2);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.discover-more-arrow{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--surface-border);border-radius:10px;background:var(--surface-1);color:var(--text3);transition:color .18s,border-color .18s}.discover-more-arrow svg,.discover-more-arrow img{width:14px!important;height:14px!important;object-fit:contain}.discover-more-person:hover .discover-more-arrow{border-color:var(--coral);color:var(--c-accent)}
.discover-more-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:42px;margin-top:9px;padding:0 12px;border:1px solid var(--surface-border);border-radius:13px;background:var(--surface-2);color:var(--text2);font-size:10px;font-weight:800;cursor:pointer;transition:border-color .18s,background .18s,color .18s}.discover-more-toggle:hover{border-color:var(--coral);background:var(--accent-soft);color:var(--text)}.discover-more-toggle svg,.discover-more-toggle img{width:14px!important;height:14px!important;object-fit:contain}.discover-more-toggle[aria-expanded="true"] svg,.discover-more-toggle[aria-expanded="true"] img{transform:rotate(90deg)}

/* ===== Deck heading, icebreaker and safety note (redesign stage 3) ===== */
.vc-deck-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 2px 12px}
.vc-deck-heading h2{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--text)}
.vc-deck-heading h2 .vc-deck-heading-ic{width:16px;height:16px}
.vc-deck-counter{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--text3);white-space:nowrap}
.vc-icebreaker{margin-top:14px;padding:16px;border:1px solid var(--surface-border);border-radius:var(--r-panel);background:var(--surface-2)}
.vc-icebreaker-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.vc-icebreaker-tag{font-size:9px;font-weight:800;letter-spacing:1.4px;color:var(--c-accent)}
.vc-icebreaker-next{width:28px;height:28px;border:1px solid var(--surface-border);border-radius:50%;display:grid;place-items:center;color:var(--text2);background:var(--surface-1);transition:color .18s,border-color .18s}
.vc-icebreaker-next:hover{color:var(--text);border-color:var(--coral)}
.vc-icebreaker-next img,.vc-icebreaker-next svg{width:14px;height:14px}
.vc-icebreaker h3{font-size:13px;font-weight:700;line-height:1.45;margin-bottom:8px;color:var(--text)}
.vc-icebreaker-text{font-size:14px;font-weight:600;line-height:1.5;color:var(--text)}
.vc-icebreaker-start{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-size:11px;font-weight:800;color:var(--c-accent);transition:color .18s}
.vc-icebreaker-start:hover{color:var(--c-accent)}
.vc-icebreaker-start img,.vc-icebreaker-start svg{width:14px;height:14px}
.vc-safety-note{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;border:1px solid var(--surface-border);border-radius:var(--r-panel);background:var(--surface-1);color:var(--text);transition:border-color .18s}
.vc-safety-note:hover{border-color:var(--coral)}
.vc-safety-note>img,.vc-safety-note>svg{width:16px;height:16px;margin-top:1px;color:var(--c-green)}
.vc-safety-note strong{display:block;font-size:11px;font-weight:700}
.vc-safety-note small{display:block;font-size:9px;color:var(--text3);margin-top:2px}
.vc-icebreaker-next:focus-visible,.vc-icebreaker-start:focus-visible,.vc-safety-note:focus-visible{outline:2px solid var(--coral);outline-offset:2px}

@media(max-width:1080px) and (min-width:769px){
  .discover-workspace{grid-template-columns:minmax(0,620px);width:100%}
  .discover-more{width:min(100%,620px)}
}

/* Deck empty */
.deck-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:24px;max-width:480px}
.deck-empty .de-ico{font-size:56px}
.deck-empty h2{font-size:20px;font-weight:700;color:var(--text)}
.deck-empty p{font-size:13px;color:var(--text3);max-width:280px}

/* ===== RIGHT SIDEBAR — glassmorphism (transparent, blurs body blobs through) ===== */
.right {
  position: relative;
  z-index: 2;
  border:0;
  border-left:1px solid var(--line);

  /* Убираем плотный rgba(15,15,20, 0.35) */
  background:var(--soft) !important;
  
  

  box-shadow:inset 1px 0 0 transparent;
  padding: 20px 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.right::-webkit-scrollbar{width:3px}
.right::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
.r-section{padding-bottom:16px}
.r-section+.r-section{border-top:1px solid var(--div);padding-top:16px}
.r-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.r-head h3{font-size:14px;font-weight:600}
.r-head .more{font-size:11px;color:var(--c-green);cursor:pointer}

/* ===== Filter bar (topbar on Discover) ===== */
.filter-bar{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.filter-cap{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:var(--r-pill);
  background:var(--soft);
  border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--text);
  box-shadow:inset 0 1px 0 transparent;white-space:nowrap}
.filter-cog{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--text2);
  background:var(--soft);border:1px solid var(--line);cursor:pointer;transition:.15s;flex-shrink:0}
.filter-cog svg{width:18px;height:18px;stroke-width:2}
.filter-cog:hover{background:var(--accent-soft);border-color:var(--coral);color:var(--c-accent)}

/* ===== Right sidebar search (over Chats) ===== */
.r-search-section{padding:0 0 4px!important;border-top:0!important;padding-bottom:8px!important}
.r-search{width:100%;max-width:none;height:38px;margin:0}
.r-search input{min-height:38px}

/* ===== Top matches — vertical list ===== */
.top-list-vertical{display:flex;flex-direction:column;gap:8px}
.top-row{display:flex;align-items:center;gap:11px;padding:8px 6px;border-radius:14px;cursor:pointer;transition:.15s}
.top-row:hover{background:var(--soft)}
.top-av{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;
  border:2px solid var(--coral);background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700}
.top-av img{width:100%;height:100%;object-fit:cover}
.top-info{flex:1;min-width:0}
.top-nm{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-sub{font-size:11px;color:var(--text3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ===== Stats — mini cards ===== */
.stat-grid{display:flex;flex-direction:column;gap:8px}
.stat-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;cursor:default;
  background:var(--soft);
  border:1px solid var(--line);box-shadow:inset 0 1px 0 transparent}
.stat-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px;font-weight:800;flex-shrink:0}
.stat-ico.pink{background:rgba(255,105,122,0.16);color:var(--c-red);border:1px solid rgba(255,105,122,0.30)}
.stat-ico.gold{background:var(--hint);color:var(--c-gold);border:1px solid var(--gold2)}
.stat-ico.blue{background:var(--soft);color:var(--c-green);border:1px solid var(--line)}
.stat-info{flex:1;min-width:0}
.stat-num{font-size:18px;font-weight:800;color:var(--text);line-height:1.1}
.stat-lbl{font-size:11px;color:var(--text3);margin-top:2px}

/* Connections */
.conn-feed{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.conn-feed::-webkit-scrollbar{display:none}
.conn-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;cursor:pointer}
.conn-av{width:54px;height:54px;border-radius:50%;overflow:hidden;position:relative;
  border:2px solid rgba(230,198,128,0.40);box-shadow:inset 0 0 0 2px rgba(24,27,22,.5);background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700}
.conn-av img{width:100%;height:100%;object-fit:cover}
.conn-av .online{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:2px solid rgba(24,27,22,0.9)}
.conn-name{font-size:12.5px;font-weight:600;color:var(--text2);max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}

/* Featured */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.feat-card {
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  transition: 0.18s;
  border:1px solid var(--line) !important;

  /* Сделай карточки чуть темнее, чтобы они выделялись на фоне стеклянных панелей */
  background:rgba(24,27,22,0.4) !important;
  
  
  box-shadow:0 4px 15px rgba(54,53,35,.14);
}
.feat-card:hover{transform:translateY(-2px);box-shadow:var(--sh-soft);border-color:var(--coral)!important}
.feat-photo{position:relative;height:78px;overflow:hidden;background:linear-gradient(135deg,var(--coral),var(--purple))}
.feat-photo img{width:100%;height:100%;object-fit:cover}
.feat-photo .sd{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;border:1.5px solid rgba(24,27,22,0.5)}
.feat-photo .sd.green{background:var(--green)}
.feat-photo .sd.red{background:var(--red)}
.feat-info{padding:7px 8px}
.feat-nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.feat-sub{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}

/* Activity */
.act-row{display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;border-radius:8px;transition:.15s}
.act-row:hover{background:var(--soft)}
.act-av{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0;position:relative;background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;font-size:14px}
.act-av img{width:100%;height:100%;object-fit:cover}
.act-av .sd{position:absolute;bottom:0;right:0;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--bg)}
.act-av .sd.red{background:var(--red)}
.act-av .sd.green{background:var(--green)}
.act-txt{flex:1;font-size:12px;color:var(--text2);line-height:1.3}

/* Mobile bottom nav */
.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(62px + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);
  background:rgba(24,27,22,0.85);
  
  border-top:1px solid var(--line);
  box-shadow:0 -4px 20px rgba(54,53,35,.14),inset 0 1px 0 transparent;
  z-index:50;justify-content:space-around;align-items:center}
.bn-item{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--text3);font-size:10px;font-weight:600;cursor:pointer;position:relative;transition:.15s}
.bn-item.active{color:var(--c-accent)}
.bn-item svg{width:22px;height:22px;stroke-width:1.8}
.bn-badge{position:absolute;top:5px;left:calc(50% + 9px);display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border:2px solid var(--bg);border-radius:999px;background:var(--coral);color:#fff;font-size:9px;font-weight:800;line-height:1}

/* Responsive */
@media(max-width:1100px){.right{display:none}.app{grid-template-columns:220px 1fr}}
@media(max-width:768px), (max-height:600px) and (pointer:coarse){
  html,body{height:100%;min-height:100%;overflow:hidden;display:block;place-items:initial}
  .left,.right{display:none}
  .app,.app.auth-screen{position:fixed;inset:0;grid-template-columns:1fr;width:auto;max-width:none;height:auto;min-height:0;border-radius:0;border:0;overflow:hidden;display:flex!important;flex-direction:column;}
  .center{min-height:0;overflow:hidden;display:flex;flex-direction:column;flex:1}
  .main-body{min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding:0 var(--safe-right) calc(70px + var(--safe-bottom)) var(--safe-left)}
  .topbar{min-height:52px;padding:calc(8px + var(--safe-top)) calc(12px + var(--safe-right)) 8px calc(12px + var(--safe-left));gap:8px;flex-shrink:0}
  .search{max-width:200px;height:34px}
  .daily-inline{padding:4px 10px}.daily-inline .txt{font-size:11px}.daily-inline .txt span{font-size:9px}
  .filter-bar{gap:5px;overflow:hidden}.filter-cap{padding:6px 9px;white-space:nowrap}.filter-cap:nth-child(2){display:none}
  .tool-btn,.tool-av,.filter-cog{width:44px;height:44px;flex:0 0 44px}
  /* Discover uses a compact mobile composition: one bounded photo card,
     essential identity over the image, and all actions immediately underneath. */
  .stage{padding:8px 8px 10px;gap:10px;overflow:hidden;min-height:0;flex:1 1 0}
  .discover-workspace{display:flex;flex:1 1 0;width:100%;min-height:0}
  .discover-primary{flex:1 1 0;width:100%;height:100%;min-height:0;gap:10px}
  .discover-more{display:none}
  .card-back-wrap{flex:1 1 0;min-height:0;max-width:520px}
  .card-back-peek.b1{transform:translateY(7px) scale(.97)}
  .card-back-peek.b2{transform:translateY(14px) scale(.94)}
  .glass-container{display:block;height:100%;min-height:0;max-height:none;max-width:100%;border-radius:26px}
  .glass-container::after{display:none}
  .photo-zone{position:absolute;inset:0;width:100%;height:100%;min-height:0;flex-shrink:0}
  .photo-zone::after{content:"";position:absolute;inset:34% 0 0;z-index:2;pointer-events:none;background:linear-gradient(to top,rgba(24,27,22,.94) 0%,rgba(24,27,22,.58) 38%,rgba(24,27,22,.12) 76%,transparent 100%)}
  .photo-zone .photo{-webkit-mask-image:none;mask-image:none}
  .info-zone{position:absolute;left:0;right:0;bottom:0;z-index:5;width:100%;max-height:58%;padding:64px 16px 16px;overflow:hidden;pointer-events:none;background:linear-gradient(to top,rgba(24,27,22,.72),rgba(24,27,22,.18) 68%,transparent)}
  .info-zone .info-name-row{flex-wrap:nowrap;gap:8px;margin:0 0 6px}
  .info-zone .info-name{min-width:0;flex:1;overflow:hidden;color:#fff;font-size:clamp(22px,7vw,27px);font-weight:850;text-overflow:ellipsis;text-shadow:0 2px 12px rgba(24,27,22,.62);white-space:nowrap}
  .info-zone .info-name .age{color:var(--text);font-weight:500}
  .info-zone .info-block{min-width:0;margin:0 0 6px;color:#fff}
  .info-zone .info-block svg{color:var(--text)}
  .info-zone .info-block .lbl{min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 10px rgba(24,27,22,.46)}
  .info-zone .info-chips-row{max-height:27px;margin:0;overflow:hidden;flex-wrap:nowrap}
  .info-zone .info-chip{flex:0 1 auto;min-width:0;overflow:hidden;padding:5px 9px;border-color:var(--line);background:rgba(24,27,22,.34);color:var(--text);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
  .info-zone .info-chip:nth-child(n+3),.info-zone .info-section{display:none}
  .actions{width:100%;min-height:68px;gap:clamp(8px,3vw,14px);padding:0 4px;flex-shrink:0;border:0;background:transparent!important;box-shadow:none;}
  .actions .act:not(.act-like){background:var(--surface-1)!important;border-color:var(--surface-border)!important;box-shadow:0 9px 24px rgba(54,53,35,.14),inset 0 1px 0 var(--surface-highlight)}
  .act-rewind{width:42px;height:42px}.act-dislike{width:50px;height:50px}
  .act-like{width:58px;height:58px}.act-profile{width:50px;height:50px}.act-message{width:42px;height:42px}
  .bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50}
  .chat-view{height:100%;min-height:100%}
  .chat-header{padding:calc(8px + var(--safe-top)) 10px 8px;min-height:calc(58px + var(--safe-top))}
  .composer{padding:10px 10px calc(10px + env(keyboard-inset-bottom,0px));gap:6px}
  .center.no-topbar .main-body{overflow:hidden;padding-bottom:0}
  .center.no-topbar .composer{padding-bottom:calc(10px + var(--safe-bottom) + env(keyboard-inset-bottom,0px))}
  .center.no-topbar~.bottom-nav{display:none}
  .composer textarea,.profile-edit input,.profile-edit textarea,.settings-view select,.auth-card input{font-size:16px}
  .auth-wrap{height:100%;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left))}
  .toast{bottom:calc(76px + var(--safe-bottom))}
  #offline-banner{bottom:calc(62px + var(--safe-bottom));padding-left:calc(14px + var(--safe-left));padding-right:calc(14px + var(--safe-right))}
  #install-btn,#pwa-update-btn{bottom:calc(74px + var(--safe-bottom))}
}
@media(max-width:380px){
  .search{max-width:140px}
  .daily-inline .txt span{display:none}
  .info-name{font-size:20px}
}
@media(max-height:600px) and (pointer:coarse) and (orientation:landscape){
  .photo-zone{height:100%;min-height:0}
  .auth-wrap{align-items:flex-start}
}
@media(pointer:coarse){
  .daily-inline,.chat-back,.icon-btn,.c-add,.c-gift,.set-btn,.tt,.tf,.tier-cta,.es-cta,.pe-save,.set-logout{min-height:44px}
  .chat-back,.icon-btn,.c-add,.c-gift{min-width:44px}
  .tool-av,.filter-cog,.photo-nav,.act-rewind,.act-message,.vp-edit{min-width:44px;min-height:44px}
  .photo-nav{top:50%!important;transform:translateY(-50%)}
  .chat-row,.match-card,.tier-card,.pack,.boost-card{touch-action:manipulation}
}
@media(display-mode:standalone){
  body{min-height:100dvh}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ============================================================================
 * BOOT SCREEN
 * ============================================================================ */
#boot-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:rgba(24,27,22,.78);color:var(--text);}
#boot-screen::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 50% 40% at 50% 50%,var(--accent-soft),transparent 60%)}
.boot-logo{position:relative;display:flex;align-items:center;gap:8px;font-size:34px;font-weight:800}
.boot-logo .hrt{color:var(--c-accent);font-size:28px;filter:drop-shadow(0 0 12px rgba(237,150,127,.6))}
.boot-logo .vibeTxt{background:linear-gradient(90deg,var(--coral),var(--gold2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.boot-spin{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--coral);border-radius:50%;animation:spin .8s linear infinite}
.boot-tag{font-size:12px;color:var(--text3);letter-spacing:.04em}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{width:24px;height:24px;border:2.5px solid var(--line);border-top-color:var(--coral);border-radius:50%;animation:spin .8s linear infinite;margin:20px auto}

/* ============================================================================
 * TOAST / FATAL / OFFLINE
 * ============================================================================ */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:rgba(24,27,22,0.85);
  
  color:var(--text2);padding:12px 18px;border-radius:12px;
  border:1px solid var(--line);
  box-shadow:0 8px 32px rgba(54,53,35,.14),inset 0 1px 0 transparent;
  font-size:13px;font-weight:600;z-index:99998;opacity:0;transition:all .3s;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.success{border-color:rgba(163,189,147,.4);color:var(--c-green)}
.toast.error{border-color:rgba(255,105,122,.4);color:var(--c-red)}
#vc-fatal{position:fixed;bottom:0;left:0;right:0;background:#3a1020;color:#ff6b85;padding:10px 14px;font-size:12px;font-family:monospace;z-index:99999;border-top:1px solid rgba(255,107,133,.4);display:none}
#offline-banner{position:fixed;bottom:0;left:0;right:0;background:#2a2518;color:var(--gold2);padding:8px calc(14px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(14px + var(--safe-left));font-size:12px;z-index:9998;border-top:1px solid var(--gold2);text-align:center;overflow-wrap:anywhere}
#install-btn,#pwa-update-btn{position:fixed;bottom:calc(20px + var(--safe-bottom));z-index:9000;min-height:46px;max-width:calc(50vw - 24px);padding:10px 14px;border-radius:14px;color:#fff;font-size:13px;font-weight:700;line-height:1.2;box-shadow:0 8px 30px rgba(54,53,35,.14);}
#install-btn{left:calc(16px + var(--safe-left));background:linear-gradient(135deg,var(--accent-soft),rgba(255,107,94,.96))}
body.vc-auth-route #install-btn,body.vc-auth-route #pwa-update-btn{display:none!important}
#pwa-update-btn{display:none!important;right:calc(16px + var(--safe-right));background:rgba(24,27,22,.96);border:1px solid var(--coral)}
#pwa-update-btn:disabled{opacity:.65;cursor:wait}
@media(max-width:768px){#install-btn,#pwa-update-btn{bottom:calc(74px + var(--safe-bottom));max-width:calc(100vw - 32px)}body.vc-discover-route #install-btn,body.vc-discover-route #pwa-update-btn{display:none!important}}

/* Unified in-app dialogs: confirmations, inputs, purchases and important notices. */
body.vc-modal-open{overflow:hidden}
.vc-modal-layer{position:fixed;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(24,27,22,.76);animation:vcFade .16s ease}
.vc-modal-card{position:relative;width:min(100%,460px);max-height:min(86vh,760px);overflow:auto;padding:26px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(155deg,rgba(24,27,22,.98),rgba(24,27,22,.98));box-shadow:0 28px 90px rgba(24,27,22,.5),0 0 50px rgba(255,91,96,.08);color:var(--text)}
.vc-modal-card h2{margin:0 42px 8px 0;font-size:22px;line-height:1.15;letter-spacing:-.02em}
.vc-modal-icon{display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));color:var(--c-accent);font-size:25px;font-weight:900}
.vc-modal-x{position:absolute;top:16px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:var(--soft);color:var(--text2);font-size:23px;cursor:pointer}
.vc-modal-copy{color:var(--text2);font-size:14px;line-height:1.62}.vc-modal-copy strong{color:var(--text)}
.vc-modal-fields{display:grid;gap:12px;margin-top:18px}.vc-modal-field{display:grid;gap:7px}.vc-modal-field label{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--text3)}
.vc-modal-field input,.vc-modal-field textarea,.vc-modal-field select{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(24,27,22,.62);color:var(--text);font:inherit;outline:none}.vc-modal-field textarea{resize:vertical}.vc-modal-field input:focus,.vc-modal-field textarea:focus,.vc-modal-field select:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.vc-modal-actions{display:flex;gap:10px;margin-top:22px}.vc-modal-actions button{min-height:48px;padding:0 18px;border-radius:15px;font-weight:800;font-size:14px;cursor:pointer}.vc-modal-cancel{flex:1;border:1px solid var(--line);background:var(--soft);color:var(--text2)}.vc-modal-confirm{flex:1.35;border:0;background:linear-gradient(135deg,#ff8d74,#ff5f64);color:#fff;box-shadow:0 10px 30px rgba(255,95,100,.22)}
.vc-modal-layer.tone-danger .vc-modal-icon{background:rgba(255,61,104,.16);color:var(--c-red)}.vc-modal-layer.tone-danger .vc-modal-confirm{background:linear-gradient(135deg,var(--red),#d92b52)}.vc-modal-layer.tone-success .vc-modal-icon{background:rgba(163,189,147,.14);color:var(--c-green)}
.vc-modal-layer.tone-warning .vc-modal-icon{background:var(--hint);color:var(--c-gold)}.vc-modal-layer.tone-warning .vc-modal-confirm{background:linear-gradient(135deg,#f2b84b,#ff8d74)}
.vc-purchase-summary{display:grid;gap:1px;margin:14px 0;overflow:hidden;border-radius:16px;background:var(--soft)}.vc-purchase-summary>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;background:rgba(24,27,22,.82)}.vc-purchase-summary span{font-size:12px;color:var(--text3)}.vc-purchase-summary strong{font-size:15px;color:var(--text)}.vc-purchase-summary .is-short strong{color:var(--c-red)}.vc-purchase-error{display:block;margin:10px 2px 0;padding:10px 12px;border:1px solid rgba(255,105,122,.35);border-radius:12px;background:rgba(255,105,122,.08);color:var(--c-red);font-size:13px;line-height:1.5}.vc-account-balance-note{margin:-3px 2px 13px;color:var(--text3);font-size:11px;line-height:1.55}.vc-perk-list,.vc-danger-list{display:grid;gap:8px;margin:13px 0;padding-left:20px}.vc-perk-list li::marker{color:var(--c-green)}.vc-danger-list li::marker{color:var(--c-red)}.vc-boost-preview,.vc-badge-detail{padding:12px 14px;border-radius:14px;background:var(--soft);font-weight:800}.vc-badge-detail{display:grid;gap:9px}.vc-badge-detail i{height:7px;overflow:hidden;border-radius:99px;background:var(--soft)}.vc-badge-detail em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold2),#ff8d74)}.vc-photo-delete-preview{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:18px}.vc-gift-preview{display:block;width:110px;height:110px;margin:4px auto 12px;object-fit:contain}
.vc-payment-method-list{display:grid;gap:7px;margin:13px 0 3px}.vc-payment-method-row{display:flex;align-items:center;gap:10px;min-height:48px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.vc-payment-method-row.is-disabled{opacity:.58}.vc-payment-method-row>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.vc-payment-method-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-payment-method-row small{font-size:10px;color:var(--text3)}.vc-payment-method-row em{font-size:9px;font-style:normal;font-weight:800;letter-spacing:.04em;color:var(--c-green)}.vc-payment-method-row.is-disabled em{color:var(--text3)}.vc-payment-method-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:rgba(166,116,255,.12);flex:0 0 27px}.vc-payment-method-icon .vc-glass-icon{width:16px;height:16px}.vc-payment-no-balance{margin:9px 0 0;padding:10px 11px;border:1px solid rgba(255,180,105,.16);border-radius:12px;background:rgba(255,180,105,.07);color:var(--c-accent);font-size:11px;line-height:1.45}.vc-payment-security{display:flex;align-items:flex-start;gap:7px;margin:11px 2px 0;color:var(--text3);font-size:10px;line-height:1.45}.vc-payment-security .vc-glass-icon{width:14px;height:14px;flex:0 0 14px;opacity:.8}.vc-payment-choice-field{margin-top:12px}
.vc-vibe-scale{margin:15px 0 2px;padding:14px;border:1px solid rgba(255,195,112,.16);border-radius:18px;background:radial-gradient(circle at 88% 10%,rgba(255,180,105,.12),transparent 38%),linear-gradient(145deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent}.vc-vibe-scale-value{display:flex;align-items:center;justify-content:space-between;gap:14px}.vc-vibe-scale-value span{color:var(--text3);font-size:11px;font-weight:800;letter-spacing:.06em;}.vc-vibe-scale-value strong{color:var(--c-gold);font-size:26px;letter-spacing:-.04em;text-shadow:0 0 18px rgba(255,177,105,.24)}.vc-vibe-scale p{min-height:17px;margin:7px 0 11px;color:var(--text2);font-size:11px;line-height:1.45}.vc-vibe-scale-ticks{display:flex;align-items:center;justify-content:space-between;gap:5px}.vc-vibe-scale-ticks button{min-width:0;padding:5px 7px;border:1px solid transparent;border-radius:8px;background:var(--soft);color:var(--text3);font:700 9px/1 inherit;cursor:pointer}.vc-vibe-scale-ticks button.is-active{border-color:rgba(255,190,119,.35);background:rgba(255,158,111,.12);color:var(--c-gold)}.vc-modal-field input[type="range"]{appearance:none;min-height:28px;padding:10px 0;border:0;background:transparent;box-shadow:none;cursor:pointer}.vc-modal-field input[type="range"]::-webkit-slider-runnable-track{height:7px;border-radius:999px;background:linear-gradient(90deg,rgba(255,128,111,.76),var(--accent-soft));box-shadow:inset 0 1px 2px rgba(54,53,35,.14)}.vc-modal-field input[type="range"]::-webkit-slider-thumb{appearance:none;width:24px;height:24px;margin-top:-8px;border:4px solid #211722;border-radius:50%;background:linear-gradient(135deg,#ffd08d,#d4765f);box-shadow:0 0 0 3px rgba(231,118,98,.18),0 5px 14px rgba(54,53,35,.14)}.vc-modal-field input[type="range"]::-moz-range-track{height:7px;border:0;border-radius:999px;background:linear-gradient(90deg,rgba(255,128,111,.76),var(--accent-soft))}.vc-modal-field input[type="range"]::-moz-range-thumb{width:18px;height:18px;border:4px solid #211722;border-radius:50%;background:linear-gradient(135deg,#ffd08d,#d4765f);box-shadow:0 0 0 3px rgba(231,118,98,.18)}.vc-funnel-reward,.vc-funnel-next{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:13px 14px;border:1px solid rgba(85,223,145,.15);border-radius:15px;background:rgba(85,223,145,.065)}.vc-funnel-reward strong,.vc-funnel-next strong{font-size:13px}.vc-funnel-reward span{flex:0 0 auto;color:var(--c-green);font-weight:900}.vc-funnel-next{display:grid;justify-content:start;border-color:rgba(255,194,112,.14);background:rgba(255,181,104,.06)}.vc-funnel-next small{color:var(--text3);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.vc-boost-modal-card{width:min(100%,500px);padding:20px}.vc-boost-modal-card>.vc-modal-icon{position:absolute;top:18px;left:20px;width:38px;height:38px;margin:0;border-radius:13px;font-size:19px}.vc-boost-modal-card>h2{display:flex;align-items:center;min-height:38px;margin:0 42px 8px;padding-left:50px;font-size:20px}
.vc-boost-goal{--boost-tone:#ff8d74;--boost-tone-2:#ff5f64;--boost-border:rgba(237,150,127,.32);--boost-soft:rgba(237,150,127,.2);--boost-route:rgba(237,150,127,.075);--boost-shadow:rgba(237,150,127,.09);position:relative;margin-top:7px;padding:12px;overflow:hidden;border:1px solid var(--boost-border);border-radius:18px;background:radial-gradient(circle at 86% 8%,var(--boost-soft),transparent 38%),linear-gradient(145deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent,0 12px 30px var(--boost-shadow);transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}
.vc-boost-goal.is-start{--boost-tone:#ff8d74;--boost-tone-2:#ff5f64;--boost-border:rgba(237,150,127,.32);--boost-soft:rgba(237,150,127,.2);--boost-route:rgba(237,150,127,.075);--boost-shadow:rgba(237,150,127,.09)}.vc-boost-goal.is-warm{--boost-tone:#b96a52;--boost-tone-2:#6e8dff;--boost-border:rgba(193,82,63,.34);--boost-soft:rgba(193,82,63,.2);--boost-route:rgba(193,82,63,.08);--boost-shadow:rgba(193,82,63,.11)}.vc-boost-goal.is-hot{--boost-tone:#ffb15d;--boost-tone-2:#ff6f61;--boost-border:rgba(255,177,93,.38);--boost-soft:rgba(255,177,93,.22);--boost-route:rgba(255,177,93,.09);--boost-shadow:rgba(255,145,83,.13)}.vc-boost-goal.is-crown{--boost-tone:#ffd36e;--boost-tone-2:#55df91;--boost-border:rgba(255,211,110,.46);--boost-soft:rgba(255,211,110,.25);--boost-route:rgba(255,211,110,.1);--boost-shadow:rgba(255,190,82,.16);box-shadow:inset 0 1px 0 transparent,0 16px 44px var(--boost-shadow)}
.vc-boost-goal::after{content:"";position:absolute;top:-80px;right:-70px;width:160px;height:160px;border-radius:50%;background:var(--boost-tone);filter:blur(70px);opacity:.12;pointer-events:none;transition:background .25s ease,opacity .25s ease}.vc-boost-goal.is-crown::after{opacity:.23}
.vc-boost-goal-head{position:relative;z-index:1;display:grid;gap:2px}.vc-boost-goal-head>span{color:var(--boost-tone);font-size:8px;font-weight:950;letter-spacing:.15em;transition:color .25s}.vc-boost-goal-head>strong{font-size:15px;letter-spacing:-.025em}.vc-boost-goal-head>small{color:var(--text3);font-size:10px;line-height:1.3}
.vc-boost-route{position:relative;z-index:1;display:grid;grid-template-columns:1fr 22px 1fr;align-items:center;gap:6px;margin-top:9px}.vc-boost-route>div{display:grid;gap:0;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:12px;background:rgba(24,27,22,.2)}.vc-boost-route>div.is-projected{border-color:var(--boost-border);background:var(--boost-route)}.vc-boost-route small{overflow:hidden;color:var(--text3);font-size:8px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.vc-boost-route strong{color:var(--text);font-size:18px;line-height:1.05}.vc-boost-route .is-projected strong{color:var(--boost-tone);transition:color .25s}.vc-boost-route span{color:var(--text3);font-size:9px}.vc-boost-route>b{color:var(--boost-tone);font-size:15px;text-align:center;transition:color .25s}
.vc-boost-goal-track{position:relative;z-index:1;height:7px;margin-top:8px;overflow:hidden;border-radius:999px;background:var(--soft);box-shadow:inset 0 1px 3px rgba(54,53,35,.14)}.vc-boost-goal-track>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--boost-tone),var(--boost-tone-2));box-shadow:0 0 15px var(--boost-shadow);transition:width .3s ease,background .25s ease}
.vc-boost-goal-status{position:relative;z-index:1;display:flex;align-items:start;justify-content:space-between;gap:10px;margin-top:7px}.vc-boost-goal-status strong{font-size:10px;line-height:1.3}.vc-boost-goal-status span{flex:0 0 auto;color:var(--boost-tone);font-size:9px;font-weight:900;transition:color .25s}
.vc-boost-top-cta{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:35px;margin-top:8px;padding:0 11px;border:1px solid var(--boost-border);border-radius:11px;background:linear-gradient(135deg,var(--boost-route),var(--soft));color:var(--text);font-size:11px;font-weight:850;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.vc-boost-top-cta:hover{transform:translateY(-1px);box-shadow:0 9px 24px var(--boost-shadow)}.vc-boost-top-cta strong{color:var(--boost-tone);font-size:14px}
.vc-boost-modal-card .vc-vibe-scale{margin:9px 0 0;padding:10px 12px;border-radius:15px}.vc-boost-modal-card .vc-vibe-scale-value strong{font-size:22px}.vc-boost-modal-card .vc-vibe-scale p{min-height:15px;margin:3px 0 7px}.vc-boost-modal-card .vc-vibe-scale-ticks button{padding:4px 6px}.vc-boost-modal-card .vc-modal-fields{margin-top:9px;gap:8px}.vc-boost-modal-card .vc-modal-field{gap:3px}.vc-boost-modal-card .vc-modal-actions{margin-top:12px}
.vc-boost-checkout{display:grid;gap:7px;margin-top:13px;padding:12px 13px;border:1px solid rgba(255,207,112,.18);border-radius:15px;background:linear-gradient(145deg,rgba(255,205,105,.075),var(--accent-soft))}.vc-boost-checkout>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.vc-boost-checkout span,.vc-boost-checkout p{color:var(--text3);font-size:11px}.vc-boost-checkout strong{color:var(--text);font-size:14px}.vc-boost-checkout strong.is-top{color:var(--c-gold);font-size:18px}.vc-boost-checkout p{margin:2px 0 0;padding-top:8px;border-top:1px solid var(--line);line-height:1.4}.vc-boost-checkout p strong{color:var(--c-gold)}
@media(max-width:520px){.vc-boost-modal-card{padding:18px 14px}.vc-boost-modal-card>.vc-modal-icon{top:16px;left:14px;width:36px;height:36px;margin:0}.vc-boost-modal-card>h2{min-height:36px;margin-bottom:7px;padding-left:45px;font-size:19px}.vc-boost-goal{padding:13px}.vc-boost-route{grid-template-columns:1fr 18px 1fr;gap:5px}.vc-boost-route>div{padding:9px}.vc-boost-route strong{font-size:19px}.vc-boost-goal-head>small{font-size:10px}.vc-boost-top-cta{min-height:40px}.vc-boost-modal-card .vc-vibe-scale{margin-top:11px;padding:12px}.vc-boost-modal-card .vc-modal-fields{margin-top:12px}.vc-boost-modal-card .vc-modal-actions{margin-top:16px}}
.chat-gift-card{position:relative;display:grid;place-items:center;min-width:150px;padding:14px 16px 10px;border-radius:18px;background:radial-gradient(circle at 50% 25%,rgba(255,218,162,.2),transparent 45%),linear-gradient(145deg,rgba(255,143,116,.14),rgba(139,92,246,.1));overflow:hidden}.chat-gift-card img,.chat-gift-fallback{position:relative;width:82px;height:82px;object-fit:contain;font-size:58px;line-height:82px;text-align:center;filter:drop-shadow(0 12px 18px rgba(255,128,113,.3));animation:vcGiftFloat 3s ease-in-out infinite}.chat-gift-card strong{position:relative;margin-top:2px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--text3)}.chat-gift-spark{position:absolute;right:16px;top:10px;color:var(--c-gold);font-size:18px;animation:vcGiftSpark 1.8s ease-in-out infinite}@keyframes vcGiftFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes vcGiftSpark{0%,100%{opacity:.35;transform:scale(.75) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(25deg)}}@media (prefers-reduced-motion:reduce){.chat-gift-card img,.chat-gift-fallback,.chat-gift-spark{animation:none}}
.vc-notification-list{display:grid;gap:8px;margin-top:12px}.vc-notification-item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:10px 11px 10px 14px;border:1px solid var(--notice-border);border-radius:14px;background:var(--notice-bg);box-shadow:var(--notice-shadow);overflow:hidden}.vc-notification-item:before{content:"";position:absolute;inset:8px auto 8px 0;width:3px;border-radius:99px;background:var(--notice-message)}.vc-notification-item--like:before{background:var(--notice-like)}.vc-notification-item--guest:before{background:var(--notice-guest)}.vc-notification-item>span{display:grid;place-items:center}.vc-notification-item>span>.vc-notification-glass-icon{width:36px;height:36px}.vc-notification-item strong{display:block;color:var(--text);font-size:12px;line-height:1.2}.vc-notification-item p{margin:3px 0 0;overflow:hidden;color:var(--text3);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.vc-notification-item button,.vc-notification-activity{min-height:34px;padding:0 10px;border:1px solid color-mix(in srgb,var(--notice-message) 24%,transparent);border-radius:10px;background:color-mix(in srgb,var(--notice-message) 10%,transparent);color:var(--notice-message);font-size:10px;font-weight:850;cursor:pointer}.vc-notification-item--like button{border-color:color-mix(in srgb,var(--notice-like) 24%,transparent);background:color-mix(in srgb,var(--notice-like) 10%,transparent);color:var(--notice-like)}.vc-notification-item--guest button{border-color:color-mix(in srgb,var(--notice-guest) 24%,transparent);background:color-mix(in srgb,var(--notice-guest) 10%,transparent);color:var(--notice-guest)}.vc-notice-row-cta{white-space:nowrap}.vc-notification-activity{width:100%;margin-top:10px;background:var(--soft);color:var(--text2)}
.vc-signal-toast{position:fixed;right:20px;top:calc(78px + var(--safe-top));z-index:9998;display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:4px;width:min(420px,calc(100vw - 32px));min-height:64px;padding:9px 6px 9px 12px;border:1px solid var(--notice-border);border-radius:14px;background:var(--notice-bg);color:var(--text);box-shadow:var(--notice-shadow);overflow:hidden;animation:vcNoticeIn .2s cubic-bezier(.2,.8,.2,1) both}.vc-signal-toast:before{content:"";position:absolute;inset:8px auto 8px 0;width:3px;border-radius:99px;background:var(--notice-accent,var(--notice-message))}.vc-signal-toast[data-kind="like"]{--notice-accent:var(--notice-like)}.vc-signal-toast[data-kind="guest"]{--notice-accent:var(--notice-guest)}.vc-notice__open{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.vc-notice__open:focus-visible{outline:2px solid color-mix(in srgb,var(--notice-accent,var(--notice-message)) 68%,white);outline-offset:3px;border-radius:10px}.vc-notice__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--notice-accent,var(--notice-message)) 12%,transparent);color:var(--notice-accent,var(--notice-message));background-position:center;background-size:cover}.vc-notice__icon[style*="background-image"]>.vc-notice__glyph{opacity:0}.vc-notice__glyph{width:27px;height:27px}.vc-notice__copy{min-width:0}.vc-notice__copy strong,.vc-notice__copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-notice__copy strong{font-size:12px;line-height:1.2}.vc-notice__copy span{margin-top:3px;color:var(--text3);font-size:11px;line-height:1.3}.vc-notice__cta{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 9px;border:1px solid color-mix(in srgb,var(--notice-accent,var(--notice-message)) 28%,transparent);border-radius:10px;background:color-mix(in srgb,var(--notice-accent,var(--notice-message)) 10%,transparent);color:var(--notice-accent,var(--notice-message));font-size:10px;font-weight:850;white-space:nowrap}.vc-notice__close{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:transparent;color:var(--text3);font-size:18px;cursor:pointer}.vc-notice__close:hover{background:var(--soft);color:var(--text)}.vc-signal-toast.is-leaving{animation:vcNoticeOut .16s ease both}@keyframes vcNoticeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes vcNoticeOut{to{opacity:0;transform:translateX(6px)}}
.chat-list-page{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:18px 20px 32px}.chat-list-tools{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.chat-list-tools small{color:var(--text3);font-size:10px;font-weight:800;letter-spacing:.12em;}.chat-list-tools h1{margin:2px 0 0;font-size:26px}.chat-list-tools label{display:flex;align-items:center;gap:8px;min-width:min(320px,45%);padding:0 13px;border-radius:14px;background:var(--soft);color:var(--text3)}.chat-list-tools input{width:100%;min-height:44px;border:0;background:transparent;color:var(--text);outline:none}.chat-match-scroller{position:relative;margin:0 0 14px}.chat-match-strip{display:flex;gap:10px;margin:0;padding:6px 45px 10px 5px;overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:5px;scrollbar-width:none}.chat-match-strip::-webkit-scrollbar{display:none}.chat-match-strip:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:12px}.chat-match-strip button{display:grid;justify-items:center;gap:5px;width:62px;flex:0 0 62px;border:0;background:transparent;color:var(--text2);cursor:pointer}.chat-match-avatar{position:relative;display:grid;place-items:center;width:54px;height:54px;border:2px solid var(--line);border-radius:50%;background:var(--soft);color:var(--c-accent);font-weight:900;box-shadow:0 0 0 3px transparent;transition:transform .16s,border-color .16s,box-shadow .16s}.chat-match-strip button:hover .chat-match-avatar{transform:translateY(-1px);border-color:var(--coral)}.chat-match-all-avatar{background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft))}.chat-match-strip button.has-gallery .chat-match-avatar{border-color:#ff8d74;box-shadow:0 0 0 3px rgba(231,118,98,.18)}.chat-match-strip button.has-new-photo .chat-match-avatar{border-color:#b96a52;box-shadow:0 0 0 3px rgba(231,118,98,.18),0 0 18px rgba(231,118,98,.18)}.chat-match-photo-count,.chat-match-unread{position:absolute;z-index:2;display:grid;place-items:center;border:2px solid var(--bg);font-style:normal;font-weight:900;line-height:1}.chat-match-photo-count{left:-4px;bottom:-4px;min-width:25px;height:17px;padding:0 4px;border-radius:999px;background:#2c2435;color:#fff;font-size:7px}.chat-match-unread{right:-5px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--coral);color:#fff;font-size:8px}.chat-match-strip small{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.chat-match-next{position:absolute;z-index:3;right:4px;top:13px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(24,27,22,.88);color:#fff;font-size:25px;line-height:1;box-shadow:0 8px 24px rgba(54,53,35,.14);cursor:pointer}.chat-match-next:disabled{opacity:.35}.chat-match-next[hidden]{display:none}.chat-list-page .chat-list{border-radius:20px;overflow:visible;overscroll-behavior:auto;background:var(--soft)}
.vc-auto-reply-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px;padding:13px 14px;border-radius:15px;background:var(--accent-soft);cursor:pointer}.vc-auto-reply-row span{display:grid;gap:3px}.vc-auto-reply-row strong{font-size:13px}.vc-auto-reply-row small{color:var(--text3);font-size:11px;line-height:1.35}.vc-auto-reply-row input{width:20px;height:20px;accent-color:#b96a52}
@media(max-width:768px){.chat-list-page{padding:12px 10px calc(90px + var(--safe-bottom))}.chat-list-tools{display:block}.chat-list-tools label{min-width:0;margin-top:12px}.chat-match-strip{margin-inline:-2px}.bottom-nav .bn-item{font-size:9px}.bottom-nav .bn-item svg{width:20px;height:20px}}
@keyframes vcFade{from{opacity:0}to{opacity:1}}

/* Full public profile route */
.public-profile-page{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;padding:18px 22px 40px;scrollbar-gutter:stable;color:var(--text)}
.pp-head{display:flex;align-items:center;gap:12px;max-width:1100px;margin:0 auto 14px}.pp-head>button{width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--text);font-size:20px;cursor:pointer}.pp-head>div{display:grid;flex:1}.pp-head small{letter-spacing:.12em;font-size:9px;color:var(--text3);font-weight:800}.pp-head strong{font-size:15px}
.pp-grid{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(300px,1.18fr);gap:18px;max-width:1100px;margin:0 auto;align-items:start}.pp-media{position:sticky;top:0;min-width:0}.pp-hero{position:relative;display:block;width:100%;aspect-ratio:.78;border:0;border-radius:28px;overflow:hidden;background:var(--pp-img) center/cover,var(--panel);cursor:zoom-in;box-shadow:0 25px 70px rgba(54,53,35,.14)}.pp-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,27,22,.04) 40%,rgba(24,27,22,.9))}.pp-hero-info{position:absolute;z-index:2;left:22px;right:22px;bottom:22px;text-align:left}.pp-hero-info h1{margin:8px 0 4px;font-size:30px;line-height:1;color:#fff}.pp-hero-info h1 span{font-weight:400}.pp-hero-info h1 em{font-style:normal;color:var(--c-gold);font-size:18px}.pp-hero-info p{margin:0;color:var(--text);font-size:13px}.pp-presence{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:999px;background:rgba(24,27,22,.4);color:var(--text3);font-size:10px;font-weight:800;}.pp-presence i{width:7px;height:7px;border-radius:50%;background:#777}.pp-presence.online{color:var(--c-green)}.pp-presence.online i{background:#38dd83;box-shadow:0 0 0 4px rgba(56,221,131,.13),0 0 16px #38dd83}
.pp-thumbs{display:flex;gap:8px;overflow:auto;padding:10px 2px 2px}.pp-thumb{position:relative;flex:0 0 66px;height:82px;border:2px solid transparent;border-radius:15px;background:var(--pp-img) center/cover,var(--panel);overflow:hidden;cursor:pointer}.pp-thumb.active{border-color:#ff8d74;box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.pp-thumb span{position:absolute;z-index:3;inset:auto 3px 4px;padding:3px;border:1px solid var(--line);border-radius:7px;background:rgba(24,27,22,.66);color:#fff;font-size:8px;font-weight:900}
.pp-content{display:grid;gap:12px;min-width:0;container-type:inline-size;container-name:public-profile-content}.pp-actions{position:sticky;top:0;z-index:12;display:grid;grid-template-columns:1.3fr repeat(3,minmax(0,1fr));gap:8px;padding:9px;border:1px solid var(--line);border-radius:20px;background:rgba(24,27,22,.88);box-shadow:0 16px 35px rgba(54,53,35,.14)}.pp-actions button{min-width:0;min-height:48px;padding-inline:7px;border:0;border-radius:14px;background:var(--soft);color:var(--text2);font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap;overflow:hidden}.pp-actions button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-actions button.primary{background:var(--accent-btn);color:#fff;box-shadow:0 8px 22px rgba(168,56,76,.25);}
.primary:hover{background:var(--accent-btn-hover)}
.primary:active{background:var(--accent-btn-active)}
.primary:focus-visible,.auth-submit:focus-visible,.es-cta:focus-visible,.onb-cta:focus-visible{outline:2px solid #fff;outline-offset:2px}
.auth-submit:hover,.es-cta:hover,.onb-cta:hover{background:var(--accent-btn-hover)}
.auth-submit:active,.es-cta:active,.onb-cta:active{background:var(--accent-btn-active)}
.auth-submit:disabled,.es-cta:disabled,.onb-cta:disabled,.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.pp-actions button.active{background:rgba(255,95,100,.16);color:var(--c-accent)}
.pp-chips{display:flex;flex-wrap:wrap;gap:7px}.pp-chips span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--text2);font-size:11px;font-weight:700}
.vc-profile-trust-badge{display:inline-flex!important;align-items:center;width:fit-content;padding:6px 9px!important;border:1px solid rgba(122,216,255,.34)!important;border-radius:999px;background:rgba(88,179,226,.13)!important;color:var(--c-accent)!important;font-size:10px!important;font-weight:900!important;line-height:1.2}.vc-profile-trust-badge.ai_assisted{border-color:rgba(186,139,255,.4)!important;background:rgba(150,91,224,.14)!important;color:var(--c-accent)!important}.vc-profile-trust-card{padding:14px 16px;border:1px solid rgba(122,216,255,.26);border-radius:16px;background:linear-gradient(145deg,rgba(89,177,222,.12),var(--soft))}.vc-profile-trust-card.ai_assisted{border-color:rgba(186,139,255,.3);background:linear-gradient(145deg,rgba(144,88,219,.14),var(--soft))}.vc-profile-trust-card strong{display:block;color:var(--c-accent);font-size:12px}.vc-profile-trust-card.ai_assisted strong{color:var(--c-accent)}.vc-profile-trust-card p{margin:5px 0 0;color:var(--text2);font-size:11px;line-height:1.5}.chat-header .vc-profile-trust-badge{margin-top:3px;padding:2px 6px!important;font-size:8px!important}.info-chips-row .vc-profile-trust-badge{flex:0 0 auto}
.pp-card{padding:20px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(24,27,22,.8),rgba(24,27,22,.72));box-shadow:0 14px 38px rgba(54,53,35,.14)}.pp-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.pp-card small,.pp-section-head small{display:block;margin-bottom:4px;color:var(--text3);font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.pp-card h2,.pp-section-head h2{margin:0;font-size:19px}.pp-about>p,.pp-card>p{margin:0;color:var(--text2);font-size:13px;line-height:1.7}.pp-interests{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.pp-interests span{padding:7px 10px;border-radius:10px;background:var(--accent-soft);color:var(--c-accent);font-size:11px;font-weight:700}.pp-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pp-fact{padding:11px 12px;border-radius:14px;background:var(--soft)}.pp-fact strong{display:block;font-size:12px;line-height:1.35}.pp-fact small{margin-bottom:4px}
.pp-rating{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:radial-gradient(circle at 90% 0,var(--accent-soft),transparent 42%),linear-gradient(145deg,rgba(24,27,22,.9),rgba(24,27,22,.8))}.pp-rating-score{display:grid;text-align:right}.pp-rating-score>strong{font-size:26px;color:var(--c-accent)}.pp-rating-score>span{color:var(--text3);font-size:10px}.pp-rating-score button,.pp-sub button{margin-top:10px;min-height:38px;padding:0 14px;border:0;border-radius:12px;background:linear-gradient(135deg,#ff8d74,#ff5f64);color:#fff;font-weight:800;cursor:pointer}.pp-sub{display:flex;align-items:center;justify-content:space-between;gap:18px;background:radial-gradient(circle at 0 0,var(--hint),transparent 42%),rgba(24,27,22,.85)}.pp-sub button{flex:0 0 auto;background:linear-gradient(135deg,var(--gold2),#ff9d5c);color:#241402}.pp-sub button:disabled{opacity:.65}

.pp-gifts{display:grid;gap:7px}.pp-gift{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:9px;border-radius:14px;background:var(--soft)}.pp-gift img,.pp-gift>span{width:42px;height:42px;border-radius:12px;object-fit:cover}.pp-gift>span{display:grid;place-items:center;background:var(--accent-soft);font-size:21px}.pp-gift strong{font-size:11px}.pp-gift p{margin:2px 0 0;color:var(--text3);font-size:10px}.pp-gift>b{color:var(--c-gold);font-size:11px}.pp-empty{padding:20px;text-align:center;color:var(--text3);font-size:12px}
.pp-gift-empty{position:relative;padding:13px 14px;overflow:hidden;border:1px solid rgba(255,190,104,.17);border-radius:17px;background:radial-gradient(circle at 8% 10%,rgba(255,196,109,.13),transparent 34%),radial-gradient(circle at 95% 92%,var(--accent-soft),transparent 38%),linear-gradient(135deg,var(--accent-soft),var(--accent-soft));box-shadow:inset 0 1px 0 transparent}.pp-gift-empty-main{position:relative;z-index:1;display:flex;align-items:center;gap:13px;min-width:0}.pp-gift-empty-icon{position:relative;display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border:1px solid rgba(255,205,117,.22);border-radius:17px;background:linear-gradient(145deg,rgba(255,210,129,.16),rgba(255,111,97,.1));box-shadow:0 9px 24px rgba(255,130,99,.1)}.pp-gift-empty-icon>span{font-size:27px;filter:drop-shadow(0 7px 11px rgba(255,136,90,.2));animation:ppGiftFloat 3.2s ease-in-out infinite}.pp-gift-empty-icon>i{position:absolute;top:5px;right:6px;color:var(--c-gold);font-size:11px;font-style:normal;animation:ppGiftSpark 1.8s ease-in-out infinite}.pp-gift-empty-copy{min-width:0}.pp-gift-empty-copy strong{display:block;color:var(--text);font-size:13px;line-height:1.25}.pp-gift-empty-copy p{margin:4px 0 0;color:var(--text3);font-size:10px;line-height:1.45}.pp-gift-empty>button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:42px;margin-top:11px;padding:0 13px;border:1px solid rgba(255,178,103,.2);border-radius:13px;background:linear-gradient(135deg,#ff9a72,#ff6c66);box-shadow:0 9px 24px rgba(255,102,91,.17);color:#fff;font-size:11px;font-weight:900;white-space:nowrap;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.pp-gift-empty>button:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(255,102,91,.25)}.pp-gift-empty>button>b{font-size:15px}.pp-gift-empty>button>span{font-size:13px}@keyframes ppGiftFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes ppGiftSpark{0%,100%{opacity:.35;transform:scale(.78) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(22deg)}}
.vc-gift-picker{width:min(100%,500px);max-height:min(88vh,720px);padding:18px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:20px;background:linear-gradient(155deg,rgba(24,27,22,.98),rgba(24,27,22,.98));box-shadow:0 26px 74px rgba(24,27,22,.5)}.vc-gift-picker-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.vc-gift-picker-head strong{font-size:16px}.vc-gift-picker-head button{width:36px;height:36px;border:0;border-radius:50%;background:var(--soft);color:var(--text2);font-size:22px;cursor:pointer}.vc-gift-picker-copy{margin:5px 0 11px;color:var(--text3);font-size:11px;line-height:1.4}.vc-gift-picker #vc-gift-msg{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#15121a;color:var(--text);font:inherit;outline:none}.vc-gift-picker #vc-gift-msg:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(231,118,98,.18)}.vc-gift-anon{display:flex;align-items:center;gap:7px;margin-top:8px;color:var(--text3);font-size:11px}.vc-gift-anon input{width:17px;height:17px;accent-color:#ff8d74}.vc-gift-picker #vc-gift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
@media(max-width:640px){.pp-gift-empty{padding:12px}.pp-gift-empty-main{gap:10px}.pp-gift-empty-icon{flex-basis:46px;width:46px;height:46px;border-radius:14px}.pp-gift-empty-icon>span{font-size:23px}.pp-gift-empty>button{min-height:40px;margin-top:10px}.pp-gift-empty-copy strong{font-size:12px}}
.pp-safety{display:flex;flex-wrap:wrap;gap:8px}.pp-safety button{flex:1;min-width:150px;min-height:42px;border:1px solid var(--line);border-radius:13px;background:var(--soft);color:var(--text2);font-size:11px;font-weight:700;cursor:pointer}.pp-safety #pp-block,.pp-safety #pp-report{color:var(--c-red)}.pp-disclaimer{margin:5px 8px 20px;color:var(--text3);font-size:9px;line-height:1.55;text-align:center}
.pp-skeleton{display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:18px;max-width:1100px;margin:60px auto}.pp-skeleton>i{aspect-ratio:.78;border-radius:28px}.pp-skeleton>div{display:grid;align-content:start;gap:12px}.pp-skeleton b,.pp-skeleton span,.pp-skeleton>i{display:block;background:linear-gradient(90deg,var(--soft),var(--soft),var(--soft));background-size:220% 100%;animation:vcSkel 1.4s infinite}.pp-skeleton b{height:70px;border-radius:20px}.pp-skeleton span{height:150px;border-radius:22px}@keyframes vcSkel{to{background-position:-220% 0}}
.pp-lightbox{position:fixed;inset:0;z-index:21000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(24,27,22,.94);}.pp-lightbox .pp-lb-media{display:block;max-width:min(92vw,900px);max-height:88vh;border-radius:18px;object-fit:contain;touch-action:pan-y;user-select:none;-webkit-user-drag:none}.pp-lightbox.is-error .pp-lb-media{opacity:.24}.pp-lightbox button{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:var(--soft);color:#fff;font-size:30px;cursor:pointer}.pp-lightbox button[hidden]{display:none}.pp-lightbox button .vc-glass-icon{width:34px;height:34px}.pp-lb-close{top:18px;right:18px}.pp-lb-prev{left:20px}.pp-lb-next{right:20px}.pp-lb-count{position:absolute;bottom:18px;padding:6px 11px;border-radius:999px;background:rgba(24,27,22,.6);color:#fff;font-size:11px;font-weight:800}.chat-photo-open,.vc-own-photo[role="button"]{cursor:zoom-in}.chat-photo-open:focus-visible,.vc-own-photo[role="button"]:focus-visible{outline:2px solid var(--coral);outline-offset:3px}.vc-sub-offer strong{display:block;margin-bottom:12px;font-size:17px;color:var(--c-gold)}.vc-sub-offer ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.vc-sub-offer li{padding:9px 10px;border-radius:12px;background:var(--soft);color:var(--text2);font-size:12px}.vc-sub-offer small{display:block;margin-top:12px;color:var(--text3)}.vc-like-result{text-align:center}.vc-like-result strong{display:block;font-size:24px}.vc-like-result p{color:var(--text2);line-height:1.5}.vc-like-result div{font-size:26px}
@media(max-width:768px){.public-profile-page{padding:0 0 calc(98px + var(--safe-bottom));overflow:auto}.pp-head{position:sticky;top:0;z-index:15;margin:0;padding:8px 10px;background:rgba(24,27,22,.75);}.pp-grid{display:block}.pp-media{position:relative}.pp-hero{aspect-ratio:.78;border-radius:0 0 28px 28px}.pp-hero-info{bottom:20px}.pp-thumbs{padding:9px 12px}.pp-content{padding:0 10px 14px}.pp-actions{position:sticky;top:auto;bottom:calc(70px + var(--safe-bottom));grid-template-columns:repeat(4,1fr);order:0;margin-top:8px}.pp-actions button{min-height:48px;font-size:10px;white-space:normal;line-height:1.15}.pp-actions .primary{font-size:11px}.pp-card{padding:16px;border-radius:19px}.pp-facts{grid-template-columns:1fr 1fr}.pp-rating{grid-template-columns:1fr auto}.pp-gallery{grid-template-columns:repeat(3,1fr)}.pp-skeleton{display:block;margin:0}.pp-skeleton>i{border-radius:0 0 28px 28px}.pp-skeleton>div{padding:12px}.vc-modal-layer{align-items:flex-end;padding:0}.vc-modal-card{width:100%;max-height:90vh;border-radius:26px 26px 0 0;padding:24px 18px calc(22px + var(--safe-bottom));animation:vcSheetUp .2s ease}@keyframes vcSheetUp{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.pp-lb-prev{left:8px}.pp-lb-next{right:8px}}
@media(max-width:640px){
  .pp-actions{gap:5px;padding:6px}
  .pp-actions button,.pp-actions .primary{min-height:46px;padding-inline:4px;font-size:9px!important;line-height:1!important;white-space:nowrap!important;gap:4px!important;overflow:hidden}
  .pp-actions button>.vc-glass-icon{width:22px;height:22px;flex:0 0 22px}
  .pp-actions button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* ============================================================================
 * AUTH / ONBOARDING (centered card on dark bg)
 * ============================================================================ */
.auth-wrap{display:grid;place-items:center;height:100%;padding:24px;overflow-y:auto}
.auth-wrap-onboarding{min-height:0;overflow:hidden;padding:clamp(14px,2.5vh,24px)}
.auth-wrap-onboarding .onboarding{max-height:100%;justify-content:center}
.onboarding{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:6px}
.onb-logo{display:flex;align-items:center;gap:8px;font-size:30px;font-weight:800;margin-bottom:14px}
.onb-logo .hrt{color:var(--c-accent);font-size:26px;filter:drop-shadow(0 0 10px rgba(237,150,127,.6))}
.onb-logo .vt{background:linear-gradient(90deg,var(--coral),var(--gold2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.onb-title{font-size:26px;font-weight:800;text-align:center;letter-spacing:-.4px}
.onb-sub{font-size:14px;color:var(--text3);text-align:center;margin-top:4px;margin-bottom:20px}
.onb-card{width:100%;
  background:var(--soft);
  
  border:1px solid var(--line);
  border-radius:var(--r-panel);
  padding:22px;display:flex;flex-direction:column;gap:14px;
  box-shadow:0 20px 60px rgba(54,53,35,.14),inset 0 1px 0 transparent}
.onb-step{font-size:13px;font-weight:600;color:var(--text2);letter-spacing:.02em}
.onb-genders{display:flex;gap:10px}
.gender-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 10px;border-radius:14px;
  border:1px solid var(--line);
  background:var(--soft);
  
  cursor:pointer;transition:.18s}
.gender-btn:hover{background:var(--soft)}
.gender-btn.selected{border-color:var(--coral);background:var(--accent-soft);
  box-shadow:0 0 16px rgba(231,118,98,.18),inset 0 1px 0 transparent}
.gender-btn .vc-guest-gender-icon{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 8px 13px rgba(83,45,132,.2));transition:transform .18s ease,filter .18s ease}
.gender-btn:hover .vc-guest-gender-icon,.gender-btn.selected .vc-guest-gender-icon{transform:translateY(-1px) scale(1.035);filter:drop-shadow(0 9px 16px rgba(187,67,163,.28))}
.gender-btn .g-label{font-size:13px;font-weight:600;color:var(--text2)}
.gender-btn.selected .g-label{color:var(--text)}
.onb-age{position:relative;width:100%}
.onb-age input[type=number]{width:100%;min-height:44px;padding:10px 62px 10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text);font:inherit;font-size:16px;font-weight:750;outline:none;box-sizing:border-box;transition:border-color .16s,box-shadow .16s,background .16s}
.onb-age input[type=number]:focus{border-color:var(--coral);background:var(--soft);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.onb-age input[type=number]:invalid:not(:focus){border-color:rgba(255,107,94,.55)}
.onb-age-hint{position:absolute;right:12px;top:50%;transform:translateY(-50%);padding-left:9px;border-left:1px solid var(--line);color:var(--text3);font-size:11px;font-weight:750;pointer-events:none}
.city-picker,.city-picker-row{min-width:0}
.city-picker{position:relative}
.city-picker input{width:100%}
.city-picker-row{display:flex;gap:7px;align-items:flex-start}
.city-picker-row>.city-picker{min-width:0;flex:1}
.city-suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:1200;display:grid;gap:4px;max-height:240px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:14px;background:rgba(24,27,22,.98);box-shadow:0 18px 42px rgba(54,53,35,.14);}
.city-suggest[hidden]{display:none}
.city-suggest-item{display:grid;gap:2px;width:100%;min-width:0;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.city-suggest-item:hover,.city-suggest-item:focus-visible{border-color:var(--coral);background:var(--accent-soft);outline:none}
.city-suggest-item strong{font-size:12px}
.city-suggest-item small{overflow:hidden;color:var(--text3);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.onb-city-picker input{width:100%;min-height:46px;padding:12px 13px;border:1px solid var(--control-border);border-radius:12px;background:var(--control-bg);color:var(--text)}
.onb-city-picker input:focus,.city-picker-row input:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.onb-cta{margin-top:8px;padding:15px;border-radius:var(--r-btn);border:0;background:var(--accent-btn);color:#fff;min-height:48px;font-size:15px;font-weight:700;cursor:pointer;transition:.18s;box-shadow:0 8px 24px rgba(231,118,98,.18)}
.onb-cta:hover:not(:disabled){box-shadow:0 8px 32px rgba(231,118,98,.18);transform:translateY(-1px)}
.onb-cta:disabled{opacity:.4;cursor:not-allowed}
.onb-auth{margin-top:16px;text-align:center}
.link-btn{font-size:13px;color:var(--c-green);background:none;border:0;cursor:pointer;text-decoration:underline}
.link-btn:hover{color:var(--text)}

/* Auth (login/register) */
.auth-card{width:100%;max-width:380px;
  background:var(--soft);
  
  border:1px solid var(--line);
  border-radius:var(--r-panel);padding:28px 24px;display:flex;flex-direction:column;gap:14px;
  box-shadow:0 20px 60px rgba(54,53,35,.14),inset 0 1px 0 transparent}
.auth-logo{display:flex;align-items:center;gap:8px;font-size:26px;font-weight:800;justify-content:center;margin-bottom:4px}
.auth-logo .hrt{color:var(--c-accent);font-size:22px}
.auth-logo .vt{background:linear-gradient(90deg,var(--coral),var(--gold2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.auth-title{font-size:20px;font-weight:700;text-align:center}
.auth-sub{font-size:13px;color:var(--text3);text-align:center;margin-top:-6px;margin-bottom:6px}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--text3);font-size:11px;letter-spacing:.08em;margin:4px 0}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--div)}
.auth-form{display:flex;flex-direction:column;gap:10px}
.auth-form input{width:100%;padding:13px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--border);font-size:14px;transition:.18s}
.auth-form input:focus{border-color:var(--coral);background:var(--soft);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.auth-register-photo{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 11px;min-height:64px;padding:6px 12px 6px 7px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(145deg,var(--soft),var(--accent-soft));color:var(--text);cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}
.auth-register-photo:hover{border-color:var(--coral);background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft))}
.auth-register-photo:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.auth-register-photo>span{grid-row:1/3;display:grid;place-items:center;width:52px;height:52px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.auth-register-photo>span>.vc-glass-icon{width:40px;height:40px}.auth-register-photo>span>img{display:block;width:100%;height:100%;object-fit:cover}
.auth-register-photo>strong{align-self:end;font-size:12px}.auth-register-photo>small{align-self:start;color:var(--text3);font-size:9px;line-height:1.3}
.auth-register-photo>input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0!important}
.auth-profile-fields{display:grid;grid-template-columns:1fr 90px 1fr;gap:8px}.auth-profile-fields label{display:flex;flex-direction:column;gap:5px;color:var(--text2);font-size:11px}.auth-profile-fields select,.auth-profile-fields input{min-width:0;width:100%;padding:11px 10px;border-radius:11px;background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:13px}.auth-smart-profile{padding:10px 12px;border-radius:12px;background:linear-gradient(110deg,var(--accent-soft),var(--accent-soft));color:var(--text2);font-size:12px;line-height:1.45}
@media(max-width:430px){.auth-profile-fields{grid-template-columns:1fr 92px}.auth-profile-fields label:last-child{grid-column:1/-1}}
.auth-submit{margin-top:6px;padding:14px;border-radius:var(--r-btn);border:0;background:var(--accent-btn);color:#fff;min-height:48px;font-size:15px;font-weight:700;cursor:pointer;transition:.18s;box-shadow:0 6px 18px rgba(231,118,98,.18)}
.auth-submit:hover{box-shadow:0 6px 26px rgba(231,118,98,.18)}
.auth-toggle{appearance:none;width:100%;padding:0;border:0;background:transparent;text-align:center;font:inherit;font-size:13px;color:var(--c-green);cursor:pointer;margin-top:4px}
.auth-toggle:hover{color:var(--text)}
.auth-magic{margin-top:8px}
.auth-magic summary{font-size:12px;color:var(--text3);cursor:pointer;text-align:center;list-style:none}
.auth-magic summary::-webkit-details-marker{display:none}
.magic-form{display:flex;gap:8px;margin-top:8px}
.magic-form input{flex:1;padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--border);font-size:13px}
.magic-form button{padding:10px 16px;border-radius:10px;background:var(--panel);border:1px solid var(--border);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}
.magic-result{margin-top:8px;font-size:12px;color:var(--text2)}

/* ============================================================================
 * CHATS LIST
 * ============================================================================ */
.chat-list{flex:1;overflow-y:auto;padding:4px 0}
.chat-row{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:.15s;border-bottom:1px solid var(--div)}
.chat-row:hover{background:var(--soft)}
.chat-row .av{width:46px;height:46px;border-radius:50%;overflow:hidden;position:relative;flex-shrink:0;background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700}
.chat-row .av img{width:100%;height:100%;object-fit:cover}
.chat-row .av .dot{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:2px solid var(--bg)}
.cinfo{flex:1;min-width:0}
.cnm{display:flex;align-items:center;gap:7px;min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden}
.cnm>span{overflow:hidden;text-overflow:ellipsis}
.chat-row-presence{flex:0 0 auto;color:var(--text3);font-size:9px;font-weight:550}.chat-row-presence.is-online{color:var(--c-green)}
.cmsg{font-size:12px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.chat-row.has-draft .cmsg{color:var(--text);font-weight:600}
.chat-row-draft{color:var(--c-accent);margin-right:5px;font-weight:800}
.chat-row-draft-label{color:var(--c-accent);font-weight:700}
html[data-theme="light"] .chat-row-draft,html[data-theme="light"] .chat-row-draft-label{color:#B5455A}
.chat-row.has-unread{background:linear-gradient(90deg,var(--accent-soft),transparent 62%)}.chat-row.has-unread .cnm>span{font-weight:800;color:var(--text)}.chat-row.has-unread .cmsg{color:var(--text2);font-weight:650}
.cmeta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.ctm{font-size:11px;color:var(--text3)}
.unread{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--coral);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ============================================================================
 * CHAT THREAD
 * ============================================================================ */
.chat-view{position:relative;flex:1 1 0;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.chat-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--div);flex-shrink:0}
.chat-back{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--text2);cursor:pointer;transition:.15s}
.chat-back:hover{background:var(--panel);color:var(--text)}
.chat-back svg{width:20px;height:20px;stroke-width:2}
.chat-header .av{width:38px;height:38px;border-radius:50%;overflow:hidden;position:relative;flex-shrink:0;background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700}
.chat-header .av img{width:100%;height:100%;object-fit:cover}
.chat-header .av .dot{position:absolute;bottom:1px;right:1px;width:10px;height:10px;border-radius:50%;background:var(--green);border:2px solid var(--bg)}
.ch-info{flex:1;min-width:0}
.ch-nm{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-sub{font-size:11px;color:var(--c-green)}
.ch-actions{display:flex;gap:6px}
.icon-btn{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--text2);cursor:pointer;transition:.15s}
.icon-btn:hover{background:var(--panel);color:var(--text)}
.icon-btn svg{width:18px;height:18px;stroke-width:2}
.chat-thread{flex:1 1 0;height:0;overflow-y:auto!important;overflow-x:hidden;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-height:0;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.chat-empty{text-align:center;color:var(--text3);font-size:13px;padding:40px 0}
.msg-wrap{display:flex;flex-direction:column;max-width:75%}
.msg-wrap.me{align-self:flex-end;align-items:flex-end}
.msg-wrap.them{align-self:flex-start;align-items:flex-start}
.bub{padding:10px 14px;border-radius:18px;font-size:var(--t-chat);line-height:var(--t-lh);word-break:break-word;overflow-wrap:anywhere}
.bub.me{background:linear-gradient(135deg,var(--coral),var(--coral2));color:#fff;border-bottom-right-radius:6px}
.bub.them{background:var(--soft);color:var(--text);border-bottom-left-radius:6px}
.bub-ts{font-size:10px;color:var(--text3);margin-top:3px}
.bub-footer{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-height:14px;margin-top:3px}.bub-footer .bub-ts{margin-top:0}.bub-delivery{font-size:11px;font-weight:800;letter-spacing:-.2em;color:var(--text3);padding-right:.2em}.bub-delivery.is-seen{color:var(--c-green)}
.chat-down{position:absolute;z-index:8;right:18px;bottom:calc(var(--chat-composer-height,68px) + 12px);display:flex;align-items:center;gap:6px;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:rgba(24,27,22,.88);color:#fff;box-shadow:0 10px 30px rgba(54,53,35,.14);}.chat-down span{font-size:20px;line-height:1}.chat-down small:empty{display:none}.chat-down small{color:var(--c-accent);font-size:10px;font-weight:800;white-space:nowrap}
.daynote{text-align:center;font-size:11px;color:var(--text3);margin:10px 0}
.composer{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--div);flex-shrink:0;background:var(--panel2)}
.composer textarea{flex:1;min-width:0;resize:none;min-height:40px;max-height:120px;padding:10px 14px;border-radius:18px;background:var(--panel);border:1px solid var(--border);font-size:14px;line-height:1.4;transition:.18s}
.composer textarea:focus{border-color:var(--coral);background:var(--soft)}
.c-add,.c-gift{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:18px;cursor:pointer;color:var(--text2);transition:.15s;flex-shrink:0}
.c-add:hover,.c-gift:hover{background:var(--panel);color:var(--text)}
.c-send{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--coral),var(--coral2));color:#fff;cursor:pointer;transition:.18s;flex-shrink:0;box-shadow:0 4px 14px rgba(231,118,98,.18)}
.c-send:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.c-send svg{width:20px;height:20px}

/* ============================================================================
 * MATCHES
 * ============================================================================ */
.matches-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px;align-content:flex-start}
.match-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;border-radius:var(--r-panel);background:var(--panel);border:1px solid var(--border);cursor:pointer;transition:.18s}
.match-card:hover{transform:translateY(-2px);box-shadow:var(--sh-soft);border-color:var(--coral)}
.match-card .av{width:72px;height:72px;border-radius:50%;overflow:hidden;border:2px solid var(--coral);background:linear-gradient(135deg,var(--coral),var(--purple));display:grid;place-items:center;color:#fff;font-weight:700;font-size:22px}
.match-card .av img{width:100%;height:100%;object-fit:cover}
.mc-nm{font-size:13px;font-weight:600;text-align:center}

/* ============================================================================
 * STORE
 * ============================================================================ */
.store-view{flex:1;display:flex;flex-direction:column;gap:18px;padding:16px;overflow-y:auto}
.store-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px;border-radius:var(--r-panel);
  background:var(--soft);
  
  border:1px solid var(--line);
  box-shadow:0 4px 20px rgba(54,53,35,.14),inset 0 1px 0 transparent}
.sh-bal{font-size:34px;font-weight:800;color:var(--c-gold);display:flex;align-items:center;gap:6px}
.sh-star{color:var(--c-gold);font-size:28px}
.sh-label{font-size:12px;color:var(--text3)}
.trial-btn{margin:0 auto;padding:12px 24px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--coral),var(--coral2));color:#fff;font-size:14px;font-weight:700;cursor:pointer;border:0;box-shadow:0 6px 18px rgba(231,118,98,.18)}
.store-section{display:flex;flex-direction:column;gap:10px}
.ss-title{font-size:16px;font-weight:700;display:flex;align-items:baseline;gap:10px}
.ss-sub{font-size:11px;color:var(--text3);font-weight:400}
.tiers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.tier-card{display:flex;flex-direction:column;gap:6px;width:100%;padding:16px;border-radius:var(--r-panel);background:var(--panel);border:1px solid var(--border);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:.18s}
.tier-card:hover{transform:translateY(-2px);box-shadow:var(--sh-soft)}
.tier-card.gold{background:linear-gradient(135deg,var(--hint),var(--panel));border-color:var(--gold2)}
.tier-card.elite{background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));border-color:var(--coral);box-shadow:var(--glow-purple)}
.tier-name{font-size:15px;font-weight:700}
.tier-price{font-size:22px;font-weight:800;color:var(--c-gold)}
.tier-period{font-size:11px;color:var(--text3)}
.tier-save{font-size:11px;font-weight:700;color:var(--c-green)}
.tier-cta{display:block;margin-top:6px;padding:10px;border-radius:10px;background:var(--soft);color:var(--text);font-size:13px;font-weight:600;text-align:center;cursor:pointer;border:1px solid var(--border);transition:.15s}
.tier-cta:hover{background:var(--accent-soft);border-color:var(--coral)}
.packs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.pack{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:var(--r-panel);background:var(--panel);border:1px solid var(--border);cursor:pointer;transition:.18s;position:relative}
.pack:hover{transform:translateY(-2px);box-shadow:var(--sh-soft)}
.pack.best{background:linear-gradient(135deg,var(--accent-soft),var(--panel));border-color:var(--coral)}
.pack-ico{font-size:24px;color:var(--c-gold)}
.pack-info{text-align:center}
.pack-nm{font-size:14px;font-weight:700}
.pack-bonus{font-size:11px;color:var(--c-green)}
.pack-tag{position:absolute;top:8px;right:8px;font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:6px;background:var(--coral);color:#fff}
.pack-price{font-size:14px;font-weight:700;color:var(--c-gold);margin-top:4px}
.boost-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.boost-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border-radius:var(--r-panel);background:var(--panel);border:1px solid var(--border);cursor:pointer;transition:.18s;text-align:center}
.boost-card:hover{transform:translateY(-2px);box-shadow:var(--sh-soft)}
.bc-ico{font-size:24px}
.bc-nm{font-size:13px;font-weight:600}
.bc-price{font-size:14px;font-weight:700;color:var(--c-gold)}
.bc-sub{font-size:10px;color:var(--text3)}

/* ============================================================================
 * PROFILE
 * ============================================================================ */
.profile-view{flex:1;display:flex;flex-direction:column;overflow-y:auto}
.vp-top{position:relative;height:300px;background-size:cover;background-position:center;background:linear-gradient(135deg,var(--coral),var(--purple))}
.vp-grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(24,27,22,0.9)100%)}
.vp-edit{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:rgba(24,27,22,.4);display:grid;place-items:center;color:#fff;cursor:pointer;border:1px solid var(--line);z-index:2}
.vp-edit svg{width:18px;height:18px;stroke-width:2}
.vp-info{position:absolute;bottom:16px;left:18px;right:18px;z-index:2}
.vp-nm{font-size:24px;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(24,27,22,.5)}
.vp-loc{font-size:13px;color:var(--text);margin-top:2px}
.vp-body{padding:18px;display:flex;flex-direction:column;gap:18px}
.vp-bar{position:relative;height:8px;border-radius:8px;background:var(--soft);overflow:hidden;margin-bottom:6px}
.vp-bar-fill{position:absolute;inset:0 auto 0 0;border-radius:8px;background:linear-gradient(90deg,var(--coral),var(--gold2));transition:width .4s}
.vp-bar-lbl{font-size:12px;color:var(--text3)}
.vp-section{display:flex;flex-direction:column;gap:8px}
.vpH{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.vp-bio{font-size:14px;line-height:1.5;color:var(--text2);overflow-wrap:anywhere}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pcell{aspect-ratio:1;border-radius:12px;background-size:cover;background-position:center;background:var(--panel)}
.ints{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);background:var(--panel);border:1px solid var(--border);color:var(--text2)}
.zodiac-badge{display:inline-block;padding:8px 14px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent-soft),var(--panel));border:1px solid var(--coral);font-size:13px;font-weight:600}
.daily-status{font-size:14px;font-style:italic;color:var(--text2);padding:10px 14px;border-radius:12px;background:var(--panel);border-left:3px solid var(--coral);overflow-wrap:anywhere}
.badges-row{display:flex;flex-wrap:wrap;gap:10px}
.badge-ring{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--hint),var(--panel));border:1.5px solid var(--gold2);color:var(--c-gold);cursor:default}
.badge-ring svg{width:22px;height:22px;stroke-width:2}
.profile-edit{flex:1;padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}
.profile-edit label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text3)}
.profile-edit input,.profile-edit textarea{width:100%;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--border);font-size:14px;color:var(--text)}
.profile-edit input:focus,.profile-edit textarea:focus{border-color:var(--coral);background:var(--soft)}
.pe-h{font-size:18px;font-weight:700}
.pe-save{margin-top:6px;padding:14px;border-radius:12px;border:0;background:linear-gradient(135deg,var(--coral),var(--coral2));color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(231,118,98,.18)}

/* ============================================================================
 * SETTINGS
 * ============================================================================ */
.settings-view{flex:1;padding:16px;display:flex;flex-direction:column;gap:18px;overflow-y:auto}
.set-section{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r-panel);
  background:var(--soft);
  
  border:1px solid var(--line);
  box-shadow:0 4px 20px rgba(54,53,35,.14),inset 0 1px 0 transparent}
.set-h{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0}
.sr-lbl{font-size:14px;font-weight:600}
.sr-val{font-size:13px;color:var(--text3)}
.sr-sub{font-size:11px;color:var(--text3);margin-top:4px}
.set-btn{padding:10px 16px;min-height:44px;border-radius:var(--r-btn);background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.set-btn:hover{background:var(--soft);border-color:var(--border2)}
.set-btn:disabled{opacity:.4;cursor:not-allowed}
.settings-view select{width:100%;padding:10px 14px;border-radius:10px;background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:13px;font-weight:600}
.set-logout{margin-top:8px;padding:14px;border-radius:12px;border:1px solid rgba(255,105,122,0.35);background:rgba(255,105,122,0.08);color:var(--c-red);font-size:14px;font-weight:700;cursor:pointer;transition:.15s}
.set-logout:hover{background:rgba(255,105,122,0.14)}

/* ============================================================================
 * EMPTY STATE (shared)
 * ============================================================================ */
.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}
.es-ico{font-size:48px}
.empty-state h2{font-size:18px;font-weight:700}
.empty-state p{font-size:13px;color:var(--text3);max-width:280px}
.es-cta{margin-top:8px;padding:12px 24px;border-radius:var(--r-btn);border:0;background:var(--accent-btn);color:#fff;min-height:48px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(231,118,98,.18)}

/* ============================================================================
 * MODALS (lightbox / match)
 * ============================================================================ */
.lightbox,.match-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999}
.lightbox{background:rgba(24,27,22,.85)}
.match-modal{background:linear-gradient(135deg,var(--coral),var(--coral2) 55%,var(--blue))}

/* ============================================================================
 * UTILITIES
 * ============================================================================ */
.muted{color:var(--text3)}

/* ============================================================================
 * WEB FEATURE POLISH — chat economy, gallery, rating, settings
 * ============================================================================ */

/* Shared interaction states */
button:disabled,input:disabled,textarea:disabled,select:disabled{
  cursor:not-allowed!important;opacity:.48;filter:saturate(.65);transform:none!important;box-shadow:none!important
}
.is-loading,[aria-busy="true"]{pointer-events:none;opacity:.62}
.is-loading::after,[aria-busy="true"]::after{
  content:"";display:inline-block;width:13px;height:13px;margin-left:8px;vertical-align:-2px;
  border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vc-mini-spin .7s linear infinite
}
@keyframes vc-mini-spin{to{transform:rotate(360deg)}}

/* White labels/icons keep AA contrast while the brighter coral remains an accent. */
.onb-cta,.auth-submit,.trial-btn,.pe-save,.es-cta,.c-send,#install-btn{
  background:var(--accent-btn)!important
}
.onb-cta:hover,.auth-submit:hover,.trial-btn:hover,.pe-save:hover,.es-cta:hover,.c-send:hover,#install-btn:hover{
  background:var(--accent-btn-hover)!important
}
.onb-cta:active,.auth-submit:active,.trial-btn:active,.pe-save:active,.es-cta:active,.c-send:active,#install-btn:active{
  background:var(--accent-btn-active)!important
}
.trial-btn:disabled,.pe-save:disabled,.c-send:disabled,#install-btn:disabled{opacity:.45;cursor:not-allowed}
.bub.me{
  background:linear-gradient(135deg,var(--action-coral),var(--action-coral2))!important
}
.nav-badge,.unread,.pack-tag{background:var(--action-coral)}
.user-mini .av,.tool-av,.top-av,.conn-av,.chat-row .av,.chat-header .av,
.match-card .av{
  background-color:var(--action-coral);
  background-image:linear-gradient(135deg,var(--action-coral),var(--action-purple))
}
#vc-support-send:disabled,.vc-photo-main:disabled,.vc-photo-del:disabled,.vc-gift-item:disabled,
#vc-c-ai:disabled{animation:vc-loading-pulse 1s ease-in-out infinite alternate}
@keyframes vc-loading-pulse{to{opacity:.7}}

/* Chat header, context economy actions and offers */
#vc-chat-block{flex:0 0 44px;min-width:44px;min-height:44px;font-size:24px;line-height:1}
#vc-chat-context{
  flex:0 0 auto;max-height:164px;overflow:auto;overscroll-behavior:contain;
  background:linear-gradient(180deg,var(--soft),var(--soft));
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent
}
#vc-chat-context>*{max-width:100%;min-width:0;overflow-wrap:anywhere}
#vc-chat-context>span{line-height:1.35;border:1px solid var(--line)}
#vc-chat-context [data-ca]{min-height:36px;white-space:normal;line-height:1.2;transition:border-color .16s,background .16s,transform .16s}
#vc-chat-context [data-ca]:hover{transform:translateY(-1px);filter:brightness(1.12)}
#vc-chat-context [data-offer-action]{
  min-height:34px;padding:6px 9px;border-radius:8px;border:1px solid var(--line);
  background:var(--soft);color:var(--text);font-size:11px;font-weight:700;white-space:normal
}
#vc-chat-context [data-offer-action="accept"],#vc-chat-context [data-offer-action="accept_counter"],
#vc-chat-context [data-offer-action="complete"]{color:var(--c-green);border-color:rgba(163,189,147,.3);background:rgba(163,189,147,.1)}
#vc-chat-context [data-offer-action="reject"],#vc-chat-context [data-offer-action="cancel"]{
  color:var(--c-red);border-color:rgba(255,105,122,.28);background:rgba(255,105,122,.09)
}
#vc-chat-context [data-offer-action="counter"]{color:var(--c-accent);border-color:var(--coral);background:var(--accent-soft)}

/* Composer: preserve attachments and message controls without clipping. */
#vc-c-destruct{
  flex:0 0 57px;height:40px;min-height:40px;padding:0 5px;color-scheme:dark;
  border:1px solid var(--line)!important;transition:border-color .16s,background .16s
}
#vc-c-destruct:hover,#vc-c-destruct:focus{border-color:var(--coral)!important;background:var(--soft)!important}
#vc-c-destruct option{background:#17131d;color:var(--text)}
.composer .c-add,.composer .c-gift,.composer .c-send{min-width:44px;min-height:44px}
#vc-c-ai{color:var(--c-accent);background:var(--accent-soft)}
#vc-c-gift{color:var(--c-gold);background:var(--hint)}
.composer .c-add:hover,.composer .c-gift:hover{background:var(--soft);transform:translateY(-1px)}

/* Message media and self-destruct timer */
.bub>img{max-height:360px;object-fit:cover}
.bub audio{display:block;width:min(280px,100%);margin:2px 0}
.bub .attach{max-width:100%;overflow-wrap:anywhere}
button.attach{min-height:44px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.25}
.msg-wrap .bub-ts+.bub-ts{
  margin-top:4px;padding:3px 7px;border-radius:999px;background:rgba(255,180,58,.1);color:var(--c-gold);font-weight:700
}

/* AI and gift modal surfaces */
.lightbox>div{max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.lightbox [data-close]{min-width:44px;min-height:44px;border-radius:50%!important;line-height:1;transition:background .16s,color .16s}
.lightbox [data-close]:hover{background:var(--soft)!important}
.vc-ai-option{min-height:48px;overflow-wrap:anywhere;line-height:1.4;transition:border-color .16s,background .16s,transform .16s}
.vc-ai-option:hover{border-color:var(--coral)!important;background:var(--accent-soft)!important;transform:translateY(-1px)}
#vc-gift-msg{min-height:44px;font-family:inherit}
.vc-gift-anon{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;margin:10px 0 2px;padding:10px 11px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--soft),var(--accent-soft));color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 transparent;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}.vc-gift-anon:hover{border-color:rgba(186,137,255,.26);background:linear-gradient(135deg,var(--soft),var(--accent-soft));transform:translateY(-1px)}.vc-gift-anon-copy{display:flex;align-items:center;gap:10px;min-width:0}.vc-gift-anon-copy>span:last-child{display:grid;gap:3px;min-width:0}.vc-gift-anon-copy strong{color:var(--text);font-size:12px;line-height:1.15}.vc-gift-anon-copy small{color:var(--text3);font-size:9.5px;line-height:1.3}.vc-gift-anon-visual{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid rgba(202,167,255,.16);border-radius:13px;background:radial-gradient(circle at 38% 24%,var(--soft),transparent 38%),linear-gradient(145deg,var(--accent-soft),var(--accent-soft))}.vc-gift-anon-icon{width:30px!important;height:30px!important}.vc-gift-anon #vc-gift-anon{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.vc-gift-anon-switch{position:relative;display:block;flex:0 0 46px;width:46px;height:26px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--soft);box-shadow:inset 0 2px 6px rgba(54,53,35,.14);transition:background .2s,border-color .2s,box-shadow .2s}.vc-gift-anon-switch i{display:block;width:18px;height:18px;border-radius:50%;background:linear-gradient(145deg,#fff,#d9d3e4);box-shadow:0 3px 9px rgba(54,53,35,.14);transition:transform .22s cubic-bezier(.2,.8,.2,1),background .2s}.vc-gift-anon #vc-gift-anon:checked+.vc-gift-anon-switch{border-color:rgba(198,157,255,.62);background:linear-gradient(135deg,#9b63f6,#ff7b98);box-shadow:0 0 0 3px rgba(231,118,98,.18),0 7px 18px rgba(140,77,210,.2)}.vc-gift-anon #vc-gift-anon:checked+.vc-gift-anon-switch i{transform:translateX(20px);background:#fff}.vc-gift-anon #vc-gift-anon:focus-visible+.vc-gift-anon-switch{outline:2px solid rgba(199,163,255,.82);outline-offset:3px}.vc-gift-anon:has(#vc-gift-anon:checked){border-color:rgba(191,146,255,.3);background:linear-gradient(135deg,rgba(160,99,246,.13),rgba(255,123,152,.08));box-shadow:inset 0 1px 0 transparent,0 8px 26px rgba(105,63,159,.1)}
#vc-gift-grid{max-height:min(410px,55dvh);overflow:auto;overscroll-behavior:contain;padding:3px 3px 5px;align-items:stretch;scrollbar-gutter:stable}
.vc-gift-item{
  position:relative;min-width:0;min-height:122px;padding:12px 8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  overflow:hidden;border:1px solid var(--line);border-radius:18px;background:radial-gradient(circle at 50% 18%,var(--soft),transparent 46%),linear-gradient(155deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent,0 8px 24px rgba(54,53,35,.14);color:var(--text);cursor:pointer;font:750 12px/1.2 var(--font);transition:border-color .18s,background .18s,transform .18s,box-shadow .18s
}
.vc-gift-item::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,transparent 18%,var(--soft) 47%,transparent 67%);opacity:0;transform:translateX(-45%);transition:opacity .18s,transform .35s}.vc-gift-item img{position:relative;display:block;width:70px;height:70px;max-width:76%;object-fit:contain;filter:drop-shadow(0 11px 15px rgba(15,8,25,.23));transition:transform .2s,filter .2s}.vc-gift-item>div{position:relative;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:rgba(24,27,22,.24);color:var(--text2);font-size:10px;font-weight:850;letter-spacing:.015em}.vc-gift-item:hover{border-color:rgba(212,175,255,.33);background:radial-gradient(circle at 50% 18%,rgba(214,184,255,.15),transparent 48%),linear-gradient(155deg,var(--soft),var(--accent-soft));box-shadow:inset 0 1px 0 transparent,0 13px 30px rgba(54,53,35,.14);transform:translateY(-2px)}.vc-gift-item:hover::before{opacity:1;transform:translateX(45%)}.vc-gift-item:hover img{transform:translateY(-2px) scale(1.035);filter:drop-shadow(0 14px 18px rgba(35,17,53,.3))}.vc-gift-item:active{transform:translateY(0) scale(.985)}

/* Profile gallery and upload controls */
.pgrid{min-width:0}
.pcell{background-color:var(--panel);background-size:cover;background-position:center}
.vc-own-photo{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);box-shadow:inset 0 0 0 1px rgba(54,53,35,.14)}
.vc-own-photo::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(24,27,22,.24),transparent 42%);opacity:.7;transition:opacity .16s}
.vc-own-photo:hover::after{opacity:1}
.vc-own-photo>span,.vc-own-photo>button{z-index:2}
.vc-own-photo>span:first-child{font-weight:800;letter-spacing:.05em;border:1px solid var(--line)}
.vc-photo-main,.vc-photo-del{
  width:36px;height:36px;display:grid;place-items:center;padding:0;font-size:18px;font-weight:800;line-height:1;
  border:1px solid var(--line)!important;box-shadow:0 4px 14px rgba(54,53,35,.14);transition:transform .16s,filter .16s
}
.vc-photo-main:hover,.vc-photo-del:hover{transform:scale(1.06);filter:brightness(1.18)}
#vc-photo-add{min-height:40px;font-family:inherit;font-weight:700;transition:background .16s,color .16s}
#vc-photo-add:hover{background:var(--accent-soft)!important;color:var(--c-accent)!important}
.vp-likes-btn:hover{background:var(--accent-soft)!important;border-color:var(--coral)!important}
.vc-like-card{min-width:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .16s,border-color .16s}
.vc-like-card:hover{transform:translateY(-2px);border-color:var(--coral)}

.store-inline-notice{display:block!important;width:100%;box-sizing:border-box;min-width:0;padding:10px 12px!important;border-radius:12px;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-inline-notice-danger{border:1px solid rgba(255,92,102,.38);background:rgba(255,74,92,.1);color:var(--c-red)!important;font-weight:800}

/* Settings notification, referral and support forms */
.set-section{min-width:0}
.set-row{min-width:0;flex-wrap:wrap}
.sr-val,.sr-sub{min-width:0;overflow-wrap:anywhere}
#vc-notif-prefs{transition:opacity .16s}
#vc-notif-prefs[style*="opacity"]{pointer-events:none}
#vc-notif-prefs .vc-notif-pref-group{display:grid;gap:0;padding:4px 0 10px}
#vc-notif-prefs .vc-notif-pref-group+ .vc-notif-pref-group{padding-top:12px;border-top:1px solid var(--line)}
#vc-notif-prefs .vc-notif-pref-group>small{padding:5px 0 2px;color:var(--text3);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
#vc-notif-prefs label{display:flex;min-height:40px;gap:14px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;cursor:pointer}
#vc-notif-prefs label:last-child{border-bottom:0}
#vc-notif-prefs input[type="checkbox"]{flex:0 0 22px;width:22px;height:22px;accent-color:var(--coral);cursor:pointer}
#vc-ref-info{min-width:0}
#vc-ref-link,#vc-support-text{
  min-height:44px;padding:11px 13px;border-radius:10px;border:1px solid var(--border);
  background:var(--panel2);color:var(--text);font-family:inherit;font-size:13px;line-height:1.45;overflow-wrap:anywhere
}
#vc-ref-link:focus,#vc-support-text:focus,#vc-support-category:focus{border-color:var(--coral);background:var(--soft)}
#vc-ref-info>div[style*="display:flex"]{flex-wrap:wrap}
#vc-ref-info .set-btn{flex:1 1 140px;min-height:44px}
#vc-support-category{min-height:44px;color-scheme:dark}
#vc-support-category option,.settings-view select option{background:#17131d;color:var(--text)}
#vc-support-text{resize:vertical;max-height:220px}
#vc-support-send{align-self:flex-end;min-width:140px;min-height:44px}
#vc-support-list{max-height:300px;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}
#vc-support-list>div{line-height:1.45}
#vc-support-list strong{display:block;margin-bottom:3px;color:var(--text2)}
#vc-blocked-list{min-width:0}
#vc-blocked-list>div{gap:10px;min-height:52px;border-bottom:1px solid var(--line)}
.vc-unblock{flex:0 1 auto;min-height:40px;white-space:normal}

/* New controls use the same high-visibility keyboard focus as the shell. */
#vc-chat-context button:focus-visible,#vc-c-destruct:focus-visible,.vc-ai-option:focus-visible,.vc-gift-item:focus-visible,
.vc-photo-main:focus-visible,.vc-photo-del:focus-visible,#vc-photo-add:focus-visible,
#vc-notif-prefs input:focus-visible,#vc-ref-link:focus-visible,
#vc-support-category:focus-visible,#vc-support-text:focus-visible,#vc-support-send:focus-visible{
  outline:3px solid var(--coral)!important;outline-offset:2px;box-shadow:0 0 0 5px rgba(231,118,98,.18)
}

/* Phones: textarea gets its own row; all chat actions remain reachable. */
@media(max-width:768px){
  .composer{
    display:grid;grid-template-columns:repeat(7,minmax(40px,44px));grid-template-rows:auto 44px;
    justify-content:space-between;align-items:center;column-gap:4px;row-gap:7px
  }
  .composer textarea{grid-column:1/-1;grid-row:1;width:100%;max-height:96px}
  .composer>button,.composer>select{grid-row:2;justify-self:center}
  .composer .c-add,.composer .c-gift,.composer .c-send{width:44px;height:44px}
  .composer .c-send{grid-column:7}
  #vc-c-destruct{width:44px;min-width:44px;max-width:44px!important;padding:0 2px;font-size:13px}
  #vc-chat-context{max-height:132px;padding-left:calc(10px + var(--safe-left))!important;padding-right:calc(10px + var(--safe-right))!important}
  #vc-chat-context [data-ca],#vc-chat-context [data-offer-action]{min-height:44px}
  .lightbox{padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left))!important}
  .lightbox>div{max-height:calc(100dvh - 24px - var(--safe-top) - var(--safe-bottom))}
  #vc-gift-msg,#vc-support-text,#vc-support-category,#vc-ref-link{font-size:16px}
  .vc-photo-main,.vc-photo-del{width:44px;height:44px}
  #vc-photo-add{min-height:44px}
  #vc-support-send{width:100%;align-self:stretch}
  .vc-unblock{min-height:44px}
}

/* Touch tablets and landscape phones may be wider than the phone breakpoint. */
@media(pointer:coarse){
  #vc-chat-context [data-ca],
  [data-offer-action],
  #vc-c-destruct,
  .vc-ai-option,
  .vc-gift-item,
  #vc-photo-add,
  .vc-photo-main,
  .vc-photo-del,
  #vc-support-send,
  .vc-unblock{min-width:44px;min-height:44px}
}

@media(max-width:390px){
  #vc-gift-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:50dvh}
  .vc-gift-item{min-height:108px}
  .set-section{padding:14px}
  .settings-view{padding:10px;gap:12px}
  #vc-blocked-list>div{align-items:stretch!important;flex-direction:column}
  .vc-unblock{width:100%}
  .ss-title{align-items:flex-start;flex-direction:column;gap:3px}
}

@media(max-width:350px){
  .composer{grid-template-columns:repeat(4,minmax(44px,1fr));grid-template-rows:auto 44px 44px}
  .composer .c-add{grid-column:1;grid-row:2}
  #vc-c-destruct{grid-column:2;grid-row:2}
  #vc-c-ai{grid-column:3;grid-row:2}
  #vc-c-gift{grid-column:2;grid-row:3}
  .composer .c-send{grid-column:4;grid-row:3}
  .pgrid{gap:4px}
  .vc-photo-main,.vc-photo-del{width:40px;height:40px;min-width:40px}
  .vc-photo-main::before,.vc-photo-del::before{content:"";position:absolute;inset:-2px}
}

/* Short landscape screens keep conversation space while controls stay usable. */
@media(max-height:600px) and (pointer:coarse) and (orientation:landscape){
  #vc-chat-context{max-height:92px}
  .chat-thread{padding-top:8px;padding-bottom:8px}
  .lightbox>div{max-height:calc(100dvh - 18px - var(--safe-top) - var(--safe-bottom))}
  #vc-gift-grid{max-height:42dvh}
}

/* ============================================================================
 * PREMIUM GLASS ROUTE SYSTEM — shared hierarchy for every Web PWA page
 * ============================================================================ */

/* Page rhythm and scroll behavior */
.main-body{scrollbar-gutter:stable;scroll-padding-block:16px 88px}
.store-view,.settings-view,.profile-view,.profile-edit,.chat-list,.matches-grid{
  min-width:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch
}
.store-view,.settings-view{gap:16px}

/* Repeated inner cards rely on the shell blur: this is faster than nested blur. */
.set-section,.store-hero{
  background:linear-gradient(145deg,var(--surface-2),var(--surface-1));
  border-color:var(--surface-border);box-shadow:inset 0 1px 0 var(--surface-highlight),0 12px 28px rgba(54,53,35,.14);
  }
.store-section,.vp-section{
  min-width:0;padding:15px;border:1px solid var(--surface-border);border-radius:var(--r-panel);
  background:linear-gradient(145deg,var(--surface-2),var(--surface-1));
  box-shadow:inset 0 1px 0 var(--surface-highlight),0 10px 24px rgba(54,53,35,.14)
}
.set-h,.vpH{color:var(--text2);letter-spacing:.075em}
.ss-title{line-height:1.25;letter-spacing:-.01em}
.ss-sub,.sr-sub,.sr-val{line-height:1.45}

/* Onboarding/auth: same premium surface and predictable control sizing. */
.onb-card,.auth-card{
  border-color:var(--surface-border);background:linear-gradient(150deg,rgba(24,27,22,.78),rgba(24,27,22,.66));
  box-shadow:inset 0 1px 0 transparent,0 24px 64px rgba(54,53,35,.14)
}
.gender-btn,.auth-form input,.magic-form input{
  min-height:44px;border-color:var(--control-border);background:var(--control-bg)
}
.gender-btn{justify-content:center}
.auth-toggle,.auth-magic summary,.link-btn{min-height:44px;display:flex;align-items:center;justify-content:center;text-underline-offset:3px}
.magic-form button{min-height:44px;flex:0 0 auto}

/* Discover retains its split-card identity while matching the shared surfaces. */
.glass-container{border-color:var(--surface-border);box-shadow:inset 0 1px 0 transparent,0 22px 60px rgba(54,53,35,.14)}
.info-section{background:transparent!important;border-color:var(--surface-border)}
.actions{border-color:var(--surface-border);box-shadow:inset 0 1px 0 transparent,0 14px 34px rgba(54,53,35,.14)}
.deck-empty{border:1px solid var(--surface-border);background:linear-gradient(145deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight)}

/* Chats and thread */
.chat-list{display:flex;flex-direction:column;gap:8px;padding:12px}
.chat-row{
  min-width:0;border:1px solid transparent;border-radius:14px;padding:11px 12px;background:var(--surface-1)
}
.chat-row:hover{border-color:var(--surface-border);background:var(--surface-2)}
.chat-view{background:transparent}
.chat-header,.composer{background:rgba(24,27,22,.7);border-color:var(--surface-border)}
.chat-view{position:relative;isolation:isolate;overflow:hidden}.chat-header{position:relative;z-index:3;transition:background .35s,border-color .35s,box-shadow .35s}
.chat-view.flirt-warm .chat-header{background:linear-gradient(90deg,rgba(24,27,22,.84),rgba(24,27,22,.82));border-color:rgba(255,80,140,.22);box-shadow:0 8px 30px rgba(255,45,105,.06)}
.chat-view.flirt-hot .chat-header{background:linear-gradient(90deg,rgba(126,25,63,.9),rgba(24,27,22,.86));border-color:rgba(255,92,142,.4);box-shadow:0 8px 34px rgba(255,45,105,.15)}
.chat-flirt-scale{display:grid;grid-template-columns:auto minmax(70px,130px) auto;align-items:center;gap:7px;padding:5px 8px;border-radius:999px;background:rgba(255,80,140,.12);border:1px solid rgba(255,80,140,.18);font-size:10px;color:var(--c-accent)}
.chat-flirt-scale span{font-weight:700}.chat-flirt-scale i{height:5px;overflow:hidden;border-radius:5px;background:var(--soft)}.chat-flirt-scale i em{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#ff8fb5,#ff3d68);box-shadow:0 0 10px rgba(255,61,104,.5)}.chat-flirt-scale b{font-size:10px;color:var(--c-accent)}
.chat-sparks{position:absolute;inset:60px 0 54px;z-index:0;pointer-events:none;overflow:hidden;display:none}.chat-view.flirt-warm .chat-sparks{display:block}.chat-sparks i{position:absolute;bottom:-24px;color:rgba(255,92,142,.26);font-style:normal;font-size:12px;animation:vcFlirtFloat 8s linear infinite}.chat-sparks i:nth-child(1){left:9%;animation-delay:-1s}.chat-sparks i:nth-child(2){left:31%;font-size:8px;animation-delay:-5s}.chat-sparks i:nth-child(3){left:58%;animation-delay:-3s}.chat-sparks i:nth-child(4){left:79%;font-size:16px;animation-delay:-7s}.chat-sparks i:nth-child(5){left:92%;animation-delay:-2s}.chat-view.flirt-hot .chat-sparks i{color:rgba(255,92,142,.4);animation-duration:5s}
@keyframes vcFlirtFloat{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:1}85%{opacity:.5}100%{transform:translateY(-65vh) rotate(35deg);opacity:0}}
.chat-thread,.composer,#vc-chat-context{position:relative;z-index:2}
.chat-thread{scroll-padding-block:16px;background:radial-gradient(circle at 50% 110%,var(--accent-soft),transparent 42%)}
.bub.them{background:var(--surface-3);border:1px solid var(--line);box-shadow:0 4px 14px rgba(54,53,35,.14)}
.bub.me{box-shadow:0 5px 18px rgba(139,28,66,.2)}
.chat-empty{width:min(100%,420px);margin:auto;border:1px dashed var(--surface-border);border-radius:16px;background:var(--surface-1)}

/* Top, rating and activity */
.tt,.tf{min-height:38px;background:transparent;border-color:transparent}
.match-card{
  border:1px solid var(--surface-border);background:linear-gradient(145deg,var(--surface-2),var(--surface-1));
  box-shadow:inset 0 1px 0 var(--surface-highlight)
}
.vc-act-tab{flex:1 1 140px;min-height:44px}
.vc-act-tab:disabled{opacity:1;color:var(--c-accent);border-color:var(--coral);background:var(--accent-soft)}
.vc-activity-card{min-height:144px;justify-content:center}
#vc-activity-list{min-width:0}

/* Hub actions */
#vc-hub-active:empty,#vc-hub-bonus:empty,#vc-hub-quests:empty,#vc-hub-hints:empty,#vc-hub-games:empty{display:none}
.hub-view #vc-hub-games{display:none!important}
.hub-view #vc-hub-bonus .sr-sub.vc-labelled-glass-button{align-self:center;width:max-content;max-width:100%;min-height:30px;margin-top:4px!important;padding:4px 0;justify-content:center;gap:7px!important;color:var(--text2);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-view #vc-hub-bonus .sr-sub.vc-labelled-glass-button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vc-hub-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}
.vc-hub-insight-card{min-width:0;min-height:184px;padding:16px;border:1px solid var(--surface-border);border-radius:18px;background:linear-gradient(145deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight),0 12px 30px rgba(54,53,35,.14)}
.vc-hub-card-title{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0}
.vc-hub-soft-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--c-accent)}.vc-hub-soft-icon.is-coral{background:var(--accent-soft);color:var(--c-accent)}.vc-hub-soft-icon svg{width:18px;height:18px}
.vc-hub-card-title>div{min-width:0}.vc-hub-card-title small,.vc-hub-card-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-hub-card-title small{color:var(--c-accent);font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.vc-hub-card-title strong{margin-top:3px;font-size:14px;letter-spacing:-.02em}
.vc-hub-card-title>b{color:var(--c-accent);font-size:20px;letter-spacing:-.04em}.vc-hub-card-title>b em{color:var(--text3);font-size:11px;font-style:normal}.vc-hub-card-title>button{align-self:center;padding:7px 9px;border-radius:10px;color:var(--c-accent);font-size:10px;font-weight:800}.vc-hub-card-title>button:hover{background:var(--accent-soft);color:var(--text)}
.vc-hub-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:17px 0 11px}.vc-hub-week>span{display:grid;place-items:center;height:28px;border:1px solid transparent;border-radius:9px;background:var(--surface-2);color:var(--text3);font-size:9px;font-weight:850}.vc-hub-week>span.is-active{border-color:var(--coral);background:var(--accent-soft);color:var(--c-accent)}.vc-hub-week>span.is-today{border-color:transparent;background:linear-gradient(145deg,#8f6df0,#b278ed);color:#fff;box-shadow:0 7px 18px rgba(143,109,240,.25)}.vc-hub-week>span.is-future:not(.is-today){opacity:.55}
.vc-hub-week-progress{display:block;height:6px;overflow:hidden;border-radius:999px;background:var(--surface-3)}.vc-hub-week-progress>em{display:block;width:var(--vc-week-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#8f6df0,#66d3c6);box-shadow:0 0 14px rgba(143,109,240,.3);animation:vcHubProgressIn .65s cubic-bezier(.2,.8,.2,1) both}
@keyframes vcHubProgressIn{from{width:0}}
.vc-hub-rhythm>p{margin:11px 0 0;color:var(--text2);font-size:10px;line-height:1.45}
.vc-hub-rhythm-skeleton{display:grid;gap:12px;margin-top:24px}.vc-hub-rhythm-skeleton>i{height:28px;border-radius:10px;background:linear-gradient(90deg,var(--surface-1),var(--surface-3),var(--surface-1));background-size:220% 100%;animation:vcSkeleton 1.2s linear infinite}.vc-hub-rhythm-skeleton>i:last-child{height:6px}
.vc-hub-continue-list{display:grid;gap:5px;margin-top:11px}.vc-hub-continue-row{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:51px;padding:6px 8px;border:1px solid transparent;border-radius:13px;color:var(--text);text-align:left}.vc-hub-continue-row:hover,.vc-hub-continue-row:focus-visible{border-color:var(--surface-border);background:var(--surface-2)}
.vc-hub-continue-avatar{position:relative;display:grid;place-items:center;width:38px;height:38px;overflow:visible;border-radius:12px;color:#fff;font-size:12px;font-weight:850}.vc-hub-continue-avatar>img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:none;border-radius:inherit;object-fit:cover}.vc-hub-continue-avatar>i{position:absolute;right:-2px;bottom:-2px;width:9px;height:9px;border:2px solid var(--bg);border-radius:50%;background:var(--green)}
.vc-hub-continue-row>span:nth-child(2){min-width:0}.vc-hub-continue-row strong,.vc-hub-continue-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-hub-continue-row strong{font-size:11px}.vc-hub-continue-row small{margin-top:3px;color:var(--text3);font-size:9px}.vc-hub-continue-row time{color:var(--text3);font-size:9px}.vc-hub-continue-row>b{position:absolute;right:7px;bottom:4px;display:grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--coral2);color:#fff;font-size:8px}.vc-hub-continue-row.has-unread time{transform:translateY(-7px)}
.vc-hub-continue-empty{display:grid;place-items:start;gap:9px;min-height:104px;padding:14px;border:1px dashed var(--surface-border);border-radius:14px;color:var(--text3);font-size:10px}.vc-hub-continue-empty>button{padding:7px 10px;border-radius:10px;background:var(--accent-soft);color:var(--c-accent);font-size:10px;font-weight:800}
#vc-game-peer{min-height:44px}
.vc-game-start,.vc-quest-claim,.vc-legacy-quest,.vc-hint-unlock{min-height:44px}
.vc-game-start{border-color:var(--coral);background:linear-gradient(135deg,var(--accent-soft),var(--surface-1))}
.vc-quest-claim,.vc-legacy-quest{border-color:rgba(163,189,147,.25);color:var(--c-green);background:rgba(163,189,147,.075)}
.vc-hint-unlock{align-self:center;border-color:var(--gold2);color:var(--c-gold);background:var(--hint)}

/* Store hierarchy */
.store-hero{padding:24px}
.store-section{gap:12px}
.tier-card,.pack,.boost-card{
  border-color:var(--surface-border);background:linear-gradient(145deg,var(--surface-2),var(--surface-1));
  box-shadow:inset 0 1px 0 var(--surface-highlight)
}
.tier-card{min-height:176px}.tier-cta{margin-top:auto;min-height:44px}
.pack{min-height:122px;justify-content:center}.boost-card{min-height:128px;justify-content:center}
.trial-btn{width:min(100%,520px);min-height:46px;white-space:normal;line-height:1.3}
.store-launch .store-hero{position:relative;align-items:flex-start;overflow:hidden;padding-right:190px;background:radial-gradient(circle at 88% 8%,rgba(255,181,102,.2),transparent 38%),linear-gradient(145deg,var(--accent-soft),var(--accent-soft) 60%,var(--soft))}.store-anchor{position:absolute;right:24px;top:50%;display:grid;gap:2px;transform:translateY(-50%);text-align:right}.store-anchor strong{color:var(--c-gold);font-size:32px;letter-spacing:-.05em}.store-anchor span{color:var(--text2);font-size:11px;font-weight:700}.store-payment-stack{gap:12px}.store-method{display:grid;gap:12px;padding:15px;border:1px solid var(--surface-border);border-radius:19px;background:linear-gradient(145deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent}.store-method.is-primary{border-color:rgba(255,182,108,.2);background:radial-gradient(circle at 92% 0,rgba(255,181,102,.09),transparent 34%),linear-gradient(145deg,var(--soft),var(--soft))}.store-method.is-last{opacity:.9}.store-method-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.store-method-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--c-accent);font-size:18px}.store-method-head strong,.store-method-head small{display:block}.store-method-head strong{font-size:13px}.store-method-head small{margin-top:3px;color:var(--text3);font-size:10px;line-height:1.4}.store-method-head>em{padding:5px 8px;border-radius:999px;background:rgba(255,190,113,.1);color:var(--c-gold);font-size:9px;font-style:normal;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.store-pack-group{display:grid;gap:8px;padding-top:2px}.store-pack-group+.store-pack-group{margin-top:4px;padding-top:14px;border-top:1px solid var(--surface-border)}.store-pack-group-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.store-pack-group-title strong{font-size:12px}.store-pack-group-title small{color:var(--text3);font-size:9px;text-align:right}.store-pay-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.store-pay-pack{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:62px;padding:10px 11px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--text);text-align:left}.store-pay-pack:disabled{cursor:not-allowed;opacity:.72}.store-pay-pack.is-featured{border-color:rgba(255,175,106,.26);background:var(--accent-soft)}.store-pay-pack span{min-width:0}.store-pay-pack strong,.store-pay-pack small{display:block}.store-pay-pack strong{font-size:15px}.store-pay-pack small{margin-top:3px;color:var(--text3);font-size:9px;line-height:1.3}.store-pay-pack em{flex:0 0 auto;color:var(--c-gold);font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase}.pack-info small{display:block;margin-top:3px;color:var(--text3);font-size:9px}.sh-star>.vc-glass-icon{width:34px;height:34px}
@media(max-width:980px){.store-pay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.store-launch .store-hero{padding-right:130px}.store-anchor{right:16px}.store-anchor strong{font-size:25px}.store-anchor span{max-width:112px}.store-method{padding:12px}.store-method-head{grid-template-columns:34px minmax(0,1fr)}.store-method-head>span{width:34px;height:34px}.store-method-head>em{grid-column:2;justify-self:start}.store-pay-grid{grid-template-columns:1fr 1fr}.store-pay-pack{min-height:66px}.ss-title{flex-wrap:wrap}}

/* Store summary is a scroll item, never a shrinkable flex child. Keeping the
   two summaries in an explicit grid prevents large localized copy clipping. */
.store-view>*{flex:0 0 auto}
.store-launch{container-type:inline-size;width:100%;min-width:0;box-sizing:border-box}
.store-launch .store-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,auto);grid-template-areas:"balance anchor" "label anchor";align-items:center;column-gap:28px;row-gap:4px;min-height:116px;padding:22px 24px;overflow:hidden}
.store-launch .store-hero>.sh-bal{grid-area:balance;min-width:0;align-self:end;line-height:1.08;overflow-wrap:anywhere;word-break:break-word}
.store-launch .store-hero>.sh-label{grid-area:label;align-self:start}
.store-launch .store-hero>.store-anchor{position:static;grid-area:anchor;min-width:0;max-width:100%;transform:none;text-align:right}
.store-launch .store-hero>.store-anchor span,.store-launch .store-hero>.store-anchor strong,.store-launch .store-hero>.store-anchor small{max-width:100%;overflow-wrap:anywhere}
.store-launch .store-hero>.store-anchor strong{line-height:1.08}
@media(max-width:520px){.store-launch .store-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"balance" "label" "anchor";gap:4px;min-height:0;padding:18px}.store-launch .store-hero>.store-anchor{display:grid;width:100%;margin-top:10px;padding-top:11px;border-top:1px solid var(--line);text-align:left;justify-items:start}.store-launch .store-hero>.store-anchor strong{font-size:clamp(23px,7.2vw,28px)}.store-launch .store-hero>.store-anchor span{max-width:none}}
@container (max-width:620px){.store-launch .store-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"balance" "label" "anchor";gap:4px;min-height:0;padding:18px}.store-launch .store-hero>.store-anchor{display:grid;width:100%;margin-top:10px;padding-top:11px;border-top:1px solid var(--line);text-align:left;justify-items:start}.store-launch .store-hero>.store-anchor strong{font-size:clamp(23px,7.2cqw,28px)}.store-launch .store-hero>.store-anchor span{max-width:none}}

/* Profile */
.profile-view{background:linear-gradient(180deg,var(--soft),transparent 36%)}
.vp-top{flex:0 0 auto;border-bottom:1px solid var(--surface-border)}
.vp-body{gap:14px}
.vp-section{gap:10px}
.vp-likes-btn,#vc-prof-hub,#vc-prof-settings{min-height:46px;transition:border-color .16s,background .16s,transform .16s}
.vp-likes-btn:hover,#vc-prof-hub:hover,#vc-prof-settings:hover{border-color:var(--coral)!important;background:var(--accent-soft)!important;transform:translateY(-1px)}
.profile-edit{width:100%}
.profile-edit select{width:100%;min-height:44px;padding:11px 14px;border-radius:12px;background:var(--control-bg);border:1px solid var(--control-border);color:var(--text)}
.profile-edit select{appearance:none;-webkit-appearance:none;padding-right:40px!important;background-color:var(--control-bg)!important;background-image:linear-gradient(45deg,transparent 50%,var(--text2) 50%),linear-gradient(135deg,var(--text2) 50%,transparent 50%)!important;background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important;color-scheme:dark;cursor:pointer}
.profile-edit select:focus{border-color:var(--coral)!important;box-shadow:0 0 0 3px rgba(231,118,98,.18);background-color:var(--soft)!important}
.profile-edit select option{background:#17131d;color:var(--text2)}
.profile-edit select option:checked{background:#2c1e3b;color:#fff}
html[data-theme="light"] .profile-edit select option{background:#fff;color:#251c2c}
html[data-theme="light"] .profile-edit select option:checked{background:var(--text2);color:#251c2c}
.profile-edit input,.profile-edit textarea{background:var(--control-bg);border-color:var(--control-border)}

/* Own profile: premium preview plus a clear account-and-gallery column. */
.own-profile-view{display:block;padding:24px clamp(16px,2.4vw,32px) 40px;overflow-y:auto;overflow-x:hidden;background:radial-gradient(circle at 8% 0,var(--accent-soft),transparent 29%),linear-gradient(180deg,var(--soft),transparent 38%)}
.own-profile-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;max-width:1180px;margin:0 auto 18px}.own-profile-page-head h1{margin:5px 0 0;color:var(--text);font-size:clamp(27px,3vw,38px);line-height:1;letter-spacing:-.045em}.own-profile-page-head p{margin:8px 0 0;color:var(--text3);font-size:12px}.own-profile-eyebrow{display:block;color:var(--c-accent);font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.own-profile-edit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 15px;border:1px solid var(--surface-border);border-radius:13px;background:var(--surface-2);color:var(--text);font-size:12px;font-weight:800;box-shadow:inset 0 1px 0 var(--surface-highlight);transition:transform .15s,border-color .15s,background .15s}.own-profile-edit:hover{transform:translateY(-1px);border-color:var(--coral);background:var(--accent-soft)}.own-profile-edit .vc-glass-icon{width:28px;height:28px}
.own-profile-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:16px;max-width:1180px;margin:0 auto}.own-profile-preview,.own-profile-account,.own-profile-completion,.own-profile-gallery,.own-profile-facts{border:1px solid var(--surface-border);background:linear-gradient(145deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight),0 16px 38px rgba(54,53,35,.14)}
.own-profile-preview{overflow:hidden;border-radius:24px}.own-profile-cover{position:relative;height:230px;background-size:cover!important;background-position:center!important}.own-profile-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,27,22,.04),rgba(24,27,22,.58))}.own-profile-progress-pill{position:absolute;z-index:2;right:14px;top:14px;display:grid;place-items:center;min-width:48px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:rgba(24,27,22,.54);color:#fff;font-size:11px;font-weight:900;}
.own-profile-avatar{position:absolute;z-index:3;left:22px;bottom:-42px;display:grid;place-items:center;width:96px;height:96px;border:4px solid var(--surface-1);border-radius:28px;background-size:cover!important;background-position:center!important;overflow:hidden;box-shadow:0 14px 30px rgba(54,53,35,.14)}.own-profile-avatar-initials{color:#fff;font-size:30px;font-weight:850;letter-spacing:-.04em;text-shadow:0 2px 12px rgba(24,27,22,.3)}
.own-profile-copy{padding:58px 22px 18px}.own-profile-copy .vp-nm{color:var(--text);font-size:27px;font-weight:850;line-height:1.05;letter-spacing:-.04em;text-shadow:none;overflow-wrap:anywhere}.own-profile-copy .vp-loc{display:flex;align-items:center;gap:5px;margin-top:7px;color:var(--text2);font-size:12px}.own-profile-copy .vp-loc .vc-glass-icon{width:23px;height:23px}.own-profile-copy .vp-bio{margin:16px 0 0;color:var(--text2);font-size:13px;line-height:1.6}.own-profile-copy .ints{margin-top:16px}.own-profile-copy .chip{padding:6px 10px;background:var(--surface-2);border-color:var(--surface-border);font-size:11px}
.own-profile-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--surface-border)}.own-profile-stats span{padding:15px 20px}.own-profile-stats span+span{border-left:1px solid var(--surface-border)}.own-profile-stats strong,.own-profile-stats small{display:block}.own-profile-stats strong{color:var(--text);font-size:20px}.own-profile-stats small{margin-top:3px;color:var(--text3);font-size:10px}
.own-profile-panels{display:grid;gap:12px;min-width:0}.own-profile-account{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px 18px;border-radius:19px}.own-profile-card-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:var(--accent-soft)}.own-profile-card-icon .vc-glass-icon{width:38px;height:38px}.own-profile-account strong{display:block;margin-top:4px;color:var(--text);font-size:15px;overflow-wrap:anywhere}.own-profile-account p{margin:5px 0 0;color:var(--text3);font-size:10px;line-height:1.45}.own-profile-account>button{min-height:42px;padding:0 13px;border:1px solid var(--surface-border);border-radius:12px;background:var(--surface-2);color:var(--text2);font-size:11px;font-weight:800}.own-profile-account>button:hover{border-color:var(--coral);color:var(--text)}
.own-profile-completion{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;width:100%!important;min-height:58px!important;padding:11px 14px!important;border-radius:17px!important;text-align:left!important}.own-profile-completion>.vc-glass-icon{flex:0 0 34px;width:34px;height:34px}.own-profile-completion>span{display:grid;gap:3px;min-width:0}.own-profile-completion span b{font-size:12px}.own-profile-completion span small{max-width:100%;overflow:hidden;color:var(--text3);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.own-profile-completion>em{margin-left:auto;color:inherit;font-size:12px;font-style:normal;font-weight:900}
.own-profile-gallery{padding:18px;border-radius:19px}.own-profile-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.own-profile-card-head h2{margin:4px 0 0;color:var(--text);font-size:17px}.own-profile-gallery #vc-photo-add{display:flex;align-items:center;gap:6px;min-height:42px;padding:0 12px!important;border:1px solid var(--coral)!important;border-radius:12px!important;background:var(--accent-soft)!important;color:var(--text)!important;font-size:11px!important}.own-profile-gallery #vc-photo-add .vc-glass-icon{width:28px;height:28px}.own-profile-gallery .pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.own-profile-gallery .pcell{border-radius:14px}
.own-profile-photo-empty{grid-column:1/-1;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed var(--coral);border-radius:14px;background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));color:var(--text2)}.own-profile-photo-empty span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--c-accent)}.own-profile-photo-empty span .vc-glass-icon{width:32px;height:32px}.own-profile-photo-empty b{font-size:11px}.own-profile-photo-empty:hover{border-color:var(--coral);background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));color:var(--text)}
.own-profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:17px;overflow:hidden}.own-profile-facts>div{min-width:0;padding:14px 16px}.own-profile-facts>div+div{border-left:1px solid var(--surface-border)}.own-profile-facts span{display:block;color:var(--text3);font-size:9px;font-weight:800;text-transform:uppercase}.own-profile-facts strong{display:flex;align-items:center;gap:7px;margin-top:6px;color:var(--text2);font-size:12px}.own-profile-facts .vc-profile-symbol-icon{width:28px;height:28px}
.own-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.own-profile-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;min-height:50px;padding:8px 12px!important;border:1px solid var(--surface-border)!important;border-radius:14px!important;background:var(--surface-2)!important;color:var(--text2)!important;font-size:11px!important;font-weight:800!important;transition:transform .15s,border-color .15s,background .15s}.own-profile-action:hover{transform:translateY(-1px);border-color:var(--coral)!important;background:var(--accent-soft)!important;color:var(--text)!important}.own-profile-action .vc-glass-icon{width:34px;height:34px}
@media(max-width:940px){.own-profile-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}}
@media(max-width:768px){.own-profile-view{padding:14px 10px calc(90px + var(--safe-bottom))}.own-profile-page-head{align-items:center;margin-bottom:14px}.own-profile-page-head h1{font-size:27px}.own-profile-page-head p{display:none}.own-profile-edit{width:44px;padding:0;font-size:0}.own-profile-edit .vc-glass-icon{width:30px;height:30px}.own-profile-layout{grid-template-columns:1fr;gap:12px}.own-profile-cover{height:210px}.own-profile-preview{border-radius:21px}.own-profile-account{grid-template-columns:44px minmax(0,1fr) auto;padding:14px}.own-profile-card-icon{width:44px;height:44px}.own-profile-account p{display:none}.own-profile-gallery{padding:15px}.own-profile-gallery .pgrid{gap:6px}.own-profile-facts>div{padding:12px}.own-profile-actions{gap:8px}.own-profile-action{min-height:52px;padding:6px!important}.bottom-nav .bn-item{font-size:8px}.bottom-nav .bn-item>.vc-glass-icon{width:25px;height:25px}}
@media(max-width:390px){.own-profile-cover{height:190px}.own-profile-avatar{left:16px;width:86px;height:86px;border-radius:24px}.own-profile-copy{padding:52px 16px 15px}.own-profile-copy .vp-nm{font-size:24px}.own-profile-stats span{padding:13px 15px}.own-profile-account{grid-template-columns:40px minmax(0,1fr)}.own-profile-card-icon{width:40px;height:40px}.own-profile-account>button{grid-column:1/-1;width:100%}.own-profile-card-head{align-items:flex-start}.own-profile-gallery #vc-photo-add span{display:none}.own-profile-gallery #vc-photo-add{width:44px;padding:0!important;justify-content:center}.own-profile-facts{grid-template-columns:1fr}.own-profile-facts>div+div{border-left:0;border-top:1px solid var(--surface-border)}}

/* Smart onboarding */
.onb-smart{width:100%;margin:-8px 0 10px;padding:11px 13px;border-radius:14px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));border:1px solid var(--coral);font-size:13px;font-weight:700;color:var(--text2)}
.onb-smart span{display:block;margin-top:3px;font-size:11px;font-weight:500;color:var(--text3)}
.onb-looking{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.look-btn{display:flex;align-items:center;justify-content:center;gap:3px;min-height:48px;padding:8px 4px;border:1px solid var(--surface-border);border-radius:12px;background:var(--soft);font-size:11px;font-weight:700;color:var(--text2);transition:.18s}
.look-btn .vc-guest-looking-icon{flex:0 0 25px;width:25px;height:25px;object-fit:contain;filter:drop-shadow(0 5px 9px rgba(74,41,119,.18))}
.look-btn>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.015em}
.look-btn:hover{background:var(--soft)}
.look-btn.selected{border-color:var(--coral);background:var(--accent-soft);color:#fff;box-shadow:0 0 18px rgba(231,118,98,.18)}

/* Progressive profile gate after the first like */
.guest-profile-gate{position:fixed;inset:0;z-index:10020;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));background:rgba(24,27,22,.88)!important}
.guest-gate-card{position:relative;width:min(100%,520px);padding:26px;display:flex;flex-direction:column;gap:14px}
.guest-gate-close{position:absolute;right:12px;top:12px;z-index:2;font-size:24px;color:var(--text3)}
.guest-gate-kicker{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-accent)}
.guest-gate-card h2{font-size:27px;line-height:1.1;margin:0;padding-right:38px}.guest-gate-card>p{margin:-5px 0 2px;color:var(--text2);line-height:1.5;font-size:14px}
.guest-photo-picker{display:flex!important;align-items:center;gap:13px;padding:10px;border:1px dashed var(--coral);border-radius:16px;background:var(--accent-soft);cursor:pointer;color:var(--text2)!important}
.guest-photo-picker span{display:grid;place-items:center;width:68px;height:68px;flex:0 0 68px;border-radius:14px;background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));background-size:cover;background-position:center;font-size:26px}
.guest-photo-picker b{font-size:13px;color:var(--c-accent)}.guest-gate-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:10px}.guest-gate-grid.guest-gate-grid-single{grid-template-columns:1fr}
.guest-gate-card label:not(.guest-photo-picker){display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--text3)}
.guest-gate-card label:not(.guest-photo-picker)>input,.guest-gate-card label:not(.guest-photo-picker)>select,.guest-city-row .city-picker>input{width:100%;min-width:0;padding:12px 13px;border-radius:11px;border:1px solid var(--control-border);background:var(--soft);color:var(--text);font-size:14px}
.guest-gate-card #vc-gate-name{font-weight:750;letter-spacing:.01em}
.guest-city-row{display:flex;gap:8px}.guest-city-row input{flex:1;min-width:0}.guest-city-row button{flex:0 0 46px;border:1px solid var(--control-border);border-radius:11px;background:var(--soft);font-size:20px;color:var(--c-accent)}
.guest-inferred-note,.guest-gate-card>small{color:var(--text3);font-size:11px;line-height:1.4}.guest-gate-status{min-height:18px;color:var(--c-accent);font-size:12px;font-weight:700}.guest-photo-hint{display:block;margin:4px 2px 0;color:var(--text3);font-size:11px;line-height:1.4}
.guest-gate-submit{min-height:48px;padding:13px 16px;border-radius:14px;background:linear-gradient(135deg,var(--coral),var(--coral2));color:#fff;font-size:15px;font-weight:800;box-shadow:0 12px 30px rgba(255,107,94,.22)}
.guest-gate-submit:disabled{opacity:.55;cursor:wait}
.tos-read-link{display:block;margin:13px 0;padding:12px 13px;border-radius:12px;background:var(--soft);border:1px solid var(--line);color:var(--c-accent);font-size:13px;font-weight:700}.tos-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;margin-top:13px;color:var(--text2)!important;font-size:12px!important;line-height:1.45}.tos-check input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--coral)}.tos-accept{background:linear-gradient(135deg,var(--coral),var(--coral2))!important;color:#fff!important}.tos-accept:disabled{opacity:.45}

/* Complete profile, details and badge progress */
.profile-missing{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:11px 13px;border-radius:12px;background:linear-gradient(135deg,var(--hint),var(--accent-soft));border:1px solid var(--gold2);color:var(--c-gold);font-size:13px;font-weight:800;text-align:left}
.profile-missing small{font-size:10px;font-weight:500;color:var(--text3);line-height:1.4}.profile-complete-ok{padding:9px 12px;border-radius:11px;background:rgba(163,189,147,.08);border:1px solid rgba(163,189,147,.2);font-size:12px;color:var(--c-green)}
.profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-detail{min-width:0;padding:10px 11px;border-radius:11px;background:var(--soft);border:1px solid var(--surface-border)}
.profile-detail span,.profile-detail b{display:block;overflow-wrap:anywhere}.profile-detail span{font-size:10px;color:var(--text3);margin-bottom:3px}.profile-detail b{font-size:12px;color:var(--text2)}
.badges-row{display:grid;grid-template-columns:1fr;gap:8px}.badge-list-item{min-width:0}.badge-card{display:flex;align-items:center;gap:10px;min-width:0;width:100%;padding:10px;border-radius:13px;border:1px solid var(--surface-border);background:var(--soft);color:inherit;text-align:left;font:inherit;cursor:pointer}
.badge-card.locked{opacity:.58}.badge-card.earned{border-color:var(--gold2);background:linear-gradient(135deg,var(--hint),var(--soft))}.badge-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--hint);font-size:20px}
.badge-copy{display:grid;grid-template-columns:1fr auto;gap:3px 7px;min-width:0;flex:1}.badge-copy b,.badge-copy span{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-copy b{font-size:11px}.badge-copy span{font-size:9px;color:var(--text3)}
.badge-copy i{height:4px;overflow:hidden;border-radius:4px;background:var(--soft)}.badge-copy i em{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--coral),var(--gold2))}.badge-copy small{display:flex;align-items:center;justify-content:flex-end;min-width:22px;min-height:22px;overflow:hidden;font-size:8px;color:var(--text3)}.badge-copy>small>.vc-badge-earned-icon{display:block;flex:0 0 22px;width:22px!important;height:22px!important;max-width:22px;max-height:22px;object-fit:contain}
.pe-extra-title{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:14px;border-top:1px solid var(--surface-border);font-size:15px;font-weight:800}.pe-extra-title span{font-size:10px;font-weight:600;color:var(--c-gold)}
.pe-extra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pe-extra-grid label:last-child{grid-column:1/-1}

/* Settings and dynamically inserted forms */
.settings-view input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.settings-view textarea,.settings-view select,
.lightbox input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.lightbox textarea,.lightbox select{
  min-height:44px;max-width:100%;padding:10px 12px!important;border:1px solid var(--control-border)!important;
  border-radius:10px!important;background:var(--control-bg)!important;color:var(--text)!important;color-scheme:dark
}
.settings-view textarea,.lightbox textarea{resize:vertical;line-height:1.45}
.settings-view input:focus,.settings-view textarea:focus,.settings-view select:focus,
.lightbox input:focus,.lightbox textarea:focus,.lightbox select:focus{
  border-color:var(--coral)!important;background:var(--soft)!important;box-shadow:0 0 0 3px rgba(231,118,98,.18)
}
.settings-view input[type="checkbox"]{width:22px;height:22px;accent-color:var(--coral)}
.vc-support-ticket{
  min-height:52px!important;padding:10px!important;border:1px solid transparent!important;border-radius:10px!important;
  overflow-wrap:anywhere;transition:background .16s,border-color .16s
}
.vc-support-ticket:hover{background:var(--surface-2)!important;border-color:var(--surface-border)!important}
.vc-support-ticket>div{margin-top:3px;color:var(--text2);line-height:1.4}
#vc-seller-economy,#vc-ref-info,#vc-support-list,#vc-blocked-list{min-width:0}

/* One modal surface for profile, filters, gifts, support and payment. */
.lightbox{background:rgba(24,27,22,.84)!important}
.lightbox>div{
  border:1px solid var(--surface-border)!important;border-radius:20px!important;
  background:linear-gradient(160deg,rgba(24,27,22,.98),rgba(24,27,22,.98))!important;
  max-height:calc(100dvh - 24px - var(--safe-top) - var(--safe-bottom))!important;overflow:auto!important;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  box-shadow:inset 0 1px 0 transparent,0 28px 80px rgba(24,27,22,.5)!important
}
.lightbox [data-close],#vc-crypto-close,#vc-pm-close{min-width:44px;min-height:44px;border-radius:50%!important}
#vc-crypto-copy,#vc-crypto-submit,#vc-support-reply-send,#vc-pm-sub,#vc-pm-boost,#vc-pm-watch,#vc-pm-msg,#vc-pm-like{min-height:44px}
#vc-crypto-submit,#vc-pm-msg{background:linear-gradient(135deg,var(--action-coral),var(--action-coral2))!important;color:#fff!important}
.match-modal{background:radial-gradient(circle at 50% 28%,rgba(213,45,85,.32),transparent 34%),linear-gradient(145deg,#17101c,#0b0b10 68%,#10182a)!important}
#vc-match-msg,#vc-match-keep{min-height:48px;box-shadow:0 12px 30px rgba(54,53,35,.14)}

/* Shared loading / empty / error presentation */
.spin{filter:drop-shadow(0 0 8px rgba(237,150,127,.2))}
.empty-state{
  width:min(100%,520px);min-height:240px;margin:auto;flex:0 1 auto;border:1px solid var(--surface-border);
  border-radius:20px;background:linear-gradient(145deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight)
}
#vc-fatal{padding-bottom:calc(10px + var(--safe-bottom));background:rgba(24,27,22,.96);overflow-wrap:anywhere}

@media(max-width:1100px) and (min-width:769px){
  .store-view,.settings-view,.profile-edit{padding:18px}
  .tiers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:768px){
  .main-body{scrollbar-gutter:auto;scroll-padding-block:12px calc(86px + var(--safe-bottom))}
  .store-view,.settings-view,.profile-edit{padding:12px;gap:12px}
  .chat-list,.matches-grid{padding:10px;gap:8px}
  .set-section,.store-section,.vp-section{padding:13px;border-radius:14px}
  .store-hero{padding:18px}
  .vp-body{padding:12px;gap:12px}
  .vp-top{height:clamp(240px,48dvh,320px)}
  .profile-edit input,.profile-edit textarea,.profile-edit select,
  .settings-view input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.settings-view textarea,.settings-view select,
  .lightbox input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.lightbox textarea,.lightbox select{font-size:16px}
  .matches-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vc-support-ticket{min-height:56px!important}
  .guest-gate-card{padding:22px 18px}.pe-extra-grid{gap:10px}
  .city-picker-row{align-items:stretch}.city-picker-row>.set-btn{flex:0 0 auto;min-width:46px;padding-inline:9px}.city-picker-row>.set-btn span{display:none}
}

@media(max-width:390px){
  .auth-wrap{padding:calc(14px + var(--safe-top)) calc(14px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(14px + var(--safe-left))}
  .onb-card,.auth-card{padding:18px 16px}
  .magic-form{flex-direction:column}.magic-form button{width:100%}
  .store-section,.set-section,.vp-section{padding:12px}
  .tiers-grid,.packs-list,.boost-grid{grid-template-columns:1fr}
  .tier-card{min-height:0}.pack,.boost-card{min-height:108px}
  .sh-bal{font-size:30px}
  .match-card{padding-inline:8px}.match-card .av{width:64px;height:64px}
  #vc-ref-info [style*="display:flex"],#vc-seller-economy [style*="display:flex"],
  #vc-hub-quests [style*="display:flex"],#vc-hub-hints [style*="display:flex"],
  #vc-hub-active [style*="display:flex"],.profile-edit label>div[style*="display:flex"]{flex-wrap:wrap}
  #vc-ref-info input,#vc-seller-economy input,.profile-edit label>div[style*="display:flex"] input{flex:1 1 170px}
  #vc-match-msg,#vc-match-keep{width:100%}
  .onb-looking{grid-template-columns:1fr}.look-btn{min-height:42px}.guest-gate-grid,.pe-extra-grid,.profile-details,.badges-row{grid-template-columns:1fr}.pe-extra-grid label:last-child{grid-column:auto}.guest-photo-picker span{width:58px;height:58px;flex-basis:58px}.guest-gate-card h2{font-size:23px}
}

@media(max-height:600px) and (pointer:coarse) and (orientation:landscape){
  .store-view,.settings-view,.profile-edit{padding:10px;gap:10px}
  .store-hero{padding:14px}.vp-top{height:70dvh}
}

/* ============================================================================
 * CHAT REFERENCE LAYOUT — three-pane glass conversation workspace
 * ============================================================================ */
.chat-reference-view{background:radial-gradient(circle at 54% 115%,rgba(102,74,210,.12),transparent 44%),linear-gradient(180deg,rgba(24,27,22,.24),rgba(24,27,22,.44))}
.chat-reference-view::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 48%,var(--soft) 50%,transparent 52%)}
.chat-reference-view .chat-header{min-height:66px;padding:10px 18px;background:rgba(24,27,22,.52);border-color:var(--line);}
.chat-reference-view .chat-header .av{width:38px;height:38px;box-shadow:0 0 0 1px transparent,0 8px 20px rgba(54,53,35,.14)}
.chat-reference-view .ch-nm{font-size:15px;letter-spacing:-.01em}.chat-reference-view .ch-sub{font-size:10px;color:var(--c-green)}
.chat-reference-view .chat-back,.chat-reference-view #vc-chat-block{background:transparent;border:0;color:var(--text2)}
.chat-reference-view .chat-back:hover,.chat-reference-view #vc-chat-block:hover{background:var(--soft);color:#fff}

.chat-reference-view #vc-chat-context{display:block;flex:0 0 auto;max-height:300px;padding:14px 16px 12px!important;overflow:auto;background:linear-gradient(180deg,var(--soft),var(--soft));border-bottom:1px solid var(--line)!important;scrollbar-width:thin}
.chat-ref-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:10px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(135deg,rgba(24,27,22,.38),rgba(24,27,22,.4));box-shadow:inset 0 1px 0 transparent,0 12px 35px rgba(54,53,35,.14)}
.chat-ref-stat{display:flex;align-items:center;gap:11px;min-width:0;min-height:66px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,var(--soft),var(--soft));color:inherit;text-align:left;box-shadow:inset 0 1px 0 transparent;transition:transform .16s,background .16s,border-color .16s}
button.chat-ref-stat:hover{transform:translateY(-1px);background:var(--soft);border-color:var(--line)}
.chat-ref-stat-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:10px;font-size:22px;background:var(--soft);border:1px solid var(--line)}
.chat-ref-stat.coral .chat-ref-stat-icon{color:var(--c-accent);background:rgba(255,112,92,.12)}.chat-ref-stat.blue .chat-ref-stat-icon{color:var(--c-accent);background:rgba(100,181,192,.13)}.chat-ref-stat.gold .chat-ref-stat-icon{color:var(--c-accent);background:rgba(255,164,110,.13)}
.chat-ref-stat>span:last-child{display:block;min-width:0}.chat-ref-stat small,.chat-ref-stat strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-ref-stat small{font-size:11px;color:var(--text3);font-weight:600}.chat-ref-stat strong{margin-top:2px;font-size:13px;color:#fff;font-weight:750}

.chat-ref-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.chat-ref-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-width:0;min-height:112px;padding:15px 16px;border:1px solid var(--line);border-radius:17px;color:var(--text);text-align:left;background:linear-gradient(145deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent,0 12px 28px rgba(54,53,35,.14);transition:transform .18s,border-color .18s,filter .18s}
.chat-ref-action:hover{transform:translateY(-2px);filter:brightness(1.12);border-color:var(--line)}.chat-ref-action:active{transform:translateY(0) scale(.985)}
.chat-ref-action>span{font-size:23px;line-height:1;color:var(--c-accent)}.chat-ref-action>strong{display:block;font-size:14px;line-height:1.25;letter-spacing:-.015em;overflow-wrap:anywhere}
.chat-ref-action.coral{background:linear-gradient(145deg,rgba(124,73,55,.29),rgba(24,27,22,.16))}.chat-ref-action.blue{background:linear-gradient(145deg,rgba(45,84,108,.3),rgba(24,27,22,.18))}.chat-ref-action.gold{background:linear-gradient(145deg,rgba(108,84,49,.28),rgba(24,27,22,.17))}.chat-ref-action.purple{background:linear-gradient(145deg,rgba(73,61,103,.3),rgba(24,27,22,.18))}
.chat-ref-meta{display:flex;align-items:center;gap:7px;margin-top:11px;padding:1px 1px 2px;overflow-x:auto;scrollbar-width:none}.chat-ref-meta::-webkit-scrollbar{display:none}.chat-ref-meta>*{flex:0 0 auto}.chat-ref-mini{min-height:30px;padding:5px 9px;border:1px solid var(--coral);border-radius:999px;background:var(--accent-soft);color:var(--c-accent);font-size:11px;font-weight:700}
.chat-ref-offer{display:flex;gap:10px;margin-top:9px;padding:10px 12px;border:1px solid rgba(95,157,255,.17);border-radius:13px;background:var(--soft)}.chat-ref-offer>span{font-size:20px}.chat-ref-offer>div{min-width:0;flex:1}.chat-ref-offer strong,.chat-ref-offer small{display:block}.chat-ref-offer strong{font-size:12px}.chat-ref-offer small{margin-top:2px;color:var(--text3);font-size:10px}.chat-ref-offer-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chat-ref-offer-actions button{min-height:30px;padding:5px 9px;border:1px solid var(--line);border-radius:9px;background:var(--soft);font-size:10px;font-weight:750}

.chat-reference-view .chat-thread{padding:16px 16px 18px;gap:9px;background:radial-gradient(circle at 50% 115%,rgba(80,55,170,.11),transparent 48%);scroll-padding-block:18px}
.chat-reference-view .daynote{position:relative;margin:5px 0 8px;color:var(--text3);font-size:10px}.chat-reference-view .daynote::before,.chat-reference-view .daynote::after{content:"";position:absolute;top:50%;width:34%;height:1px;background:linear-gradient(90deg,transparent,var(--soft))}.chat-reference-view .daynote::before{left:0}.chat-reference-view .daynote::after{right:0;transform:scaleX(-1)}
.chat-reference-view .msg-wrap.them{align-self:stretch;align-items:flex-start;width:100%;max-width:100%;padding:13px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--soft),var(--soft));box-shadow:inset 0 1px 0 transparent,0 12px 34px rgba(54,53,35,.14)}
.chat-reference-view .msg-wrap.me{max-width:78%}.chat-reference-view .bub{padding:9px 13px;border-radius:13px;font-size:var(--t-chat);line-height:var(--t-lh)}.chat-reference-view .bub.them{background:var(--soft);border-color:var(--line);border-bottom-left-radius:13px}.chat-reference-view .bub.me{border-bottom-right-radius:5px}.chat-reference-view .bub-ts{margin-top:5px;font-size:9px}

.chat-reference-view .composer{position:relative;z-index:4;align-items:center;margin:0 12px;padding:10px 12px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:linear-gradient(135deg,rgba(24,27,22,.46),rgba(24,27,22,.58));box-shadow:inset 0 1px 0 transparent,0 -12px 36px rgba(54,53,35,.14);}
.chat-reference-view .composer textarea{min-height:42px;padding:10px 15px;border:1px solid var(--line);border-radius:999px;background:rgba(24,27,22,.23);font-size:13px}.chat-reference-view .composer textarea:focus{border-color:var(--coral);background:var(--soft)}
.chat-reference-view .composer .c-add,.chat-reference-view .composer .c-gift,.chat-reference-view .composer .c-send,.chat-reference-view #vc-c-destruct{width:42px;height:42px;min-width:42px;min-height:42px;border:1px solid var(--line)!important;background:var(--soft);box-shadow:inset 0 1px 0 transparent}
.chat-reference-view .composer .c-add svg{width:20px;height:20px;color:var(--c-accent)}.chat-reference-view #vc-c-destruct{max-width:58px!important;padding:0 5px;border-radius:13px;color:var(--text2);color-scheme:dark}.chat-reference-view #vc-c-destruct option{background:#17131d}
.chat-reference-view #vc-c-ai{color:var(--c-accent);background:rgba(159,94,209,.1)}.chat-reference-view #vc-c-gift{color:var(--c-gold);background:rgba(234,172,67,.09)}
.chat-reference-view .composer .c-send{border:0!important;background:linear-gradient(135deg,#e57a61,#b84d4d)!important;color:#fff;box-shadow:0 7px 20px rgba(216,90,76,.24)}.chat-reference-view .composer .c-send:disabled{background:var(--soft)!important;color:var(--text3);box-shadow:none}

.right.chat-context-rail{gap:10px;background:linear-gradient(180deg,rgba(24,27,22,.08),rgba(24,27,22,.06))!important}.right.chat-context-rail .r-section{padding-bottom:18px}.right.chat-context-rail .r-search{height:40px}.right.chat-context-rail .conn-feed{gap:11px}.right.chat-context-rail .conn-av{width:52px;height:52px;border-color:rgba(255,134,176,.42)}.right.chat-context-rail .top-row{padding-block:9px}
body.vc-chat-route #install-btn,body.vc-chat-route #pwa-update-btn{display:none!important}

@media(max-width:768px){
  .chat-reference-view #vc-chat-context{max-height:226px;padding:10px 10px 8px!important}
  .chat-ref-stats{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(148px,47%);gap:8px;padding:8px;overflow-x:auto;scrollbar-width:none}.chat-ref-stats::-webkit-scrollbar{display:none}.chat-ref-stat{min-height:58px;padding:8px}.chat-ref-stat-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}.chat-ref-stat small{font-size:9px}.chat-ref-stat strong{font-size:11px}
  .chat-ref-actions{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(140px,43%);gap:8px;margin-top:9px;overflow-x:auto;scrollbar-width:none}.chat-ref-actions::-webkit-scrollbar{display:none}.chat-ref-action{min-height:88px;padding:12px}.chat-ref-action>span{font-size:19px}.chat-ref-action>strong{font-size:12px}
  .chat-ref-meta{margin-top:8px}.chat-reference-view .chat-thread{padding:10px;gap:7px}.chat-reference-view .msg-wrap.them{padding:9px;border-radius:15px}.chat-reference-view .msg-wrap.me{max-width:86%}
  .chat-reference-view .composer{display:grid;grid-template-columns:repeat(7,minmax(40px,44px));grid-template-rows:auto 44px;justify-content:space-between;align-items:center;column-gap:4px;row-gap:7px;margin:0;padding:9px 10px calc(9px + var(--safe-bottom));border-radius:18px 18px 0 0}
  .chat-reference-view .composer textarea{grid-column:1/-1;grid-row:1;width:100%;max-height:86px}.chat-reference-view .composer>button,.chat-reference-view .composer>select{grid-row:2;justify-self:center}.chat-reference-view .composer .c-send{grid-column:7}
}
@media(max-width:350px){
  .chat-reference-view .composer{grid-template-columns:repeat(4,minmax(42px,1fr));grid-template-rows:auto 42px 42px}
  .chat-reference-view .composer .c-add{grid-column:1;grid-row:2}.chat-reference-view #vc-c-destruct{grid-column:2;grid-row:2}.chat-reference-view #vc-c-ai{grid-column:3;grid-row:2}.chat-reference-view #vc-c-gift{grid-column:2;grid-row:3}.chat-reference-view .composer .c-send{grid-column:4;grid-row:3}
}
@media(prefers-reduced-motion:reduce){.chat-ref-action,.chat-ref-stat{transition:none}}

/* ============================================================================
 * PREMIUM UX COMPONENTS — shared progress, motion and resilient route states
 * ============================================================================ */
.vc-route-loader{position:absolute;z-index:80;top:0;left:0;right:0;height:2px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .16s}.vc-route-loader i{display:block;width:42%;height:100%;border-radius:999px;background:linear-gradient(90deg,transparent,var(--coral),#d8adff,transparent);filter:drop-shadow(0 0 7px rgba(237,150,127,.6));transform:translateX(-120%)}.app.vc-route-loading .vc-route-loader{opacity:1}.app.vc-route-loading .vc-route-loader i{animation:vcRouteLoad .52s ease-out forwards}@keyframes vcRouteLoad{to{transform:translateX(340%)}}
.vc-route-enter{animation:vcRouteEnter .22s ease-out both}@keyframes vcRouteEnter{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}

.vc-page-head{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;min-width:0;margin:0 0 15px;padding:8px 2px 15px;border-bottom:1px solid var(--line)}.vc-page-head::after{content:"";position:absolute;left:0;bottom:-1px;width:92px;height:1px;background:linear-gradient(90deg,var(--coral),transparent);box-shadow:0 0 12px rgba(231,118,98,.18)}.vc-page-head.tone-purple::after{background:linear-gradient(90deg,#e0a08c,transparent);box-shadow:0 0 12px rgba(231,118,98,.18)}.vc-page-copy{min-width:0}.vc-page-copy>small{display:block;margin-bottom:4px;color:var(--c-accent);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.vc-page-copy h1{margin:0;color:#fff;font-size:clamp(24px,3vw,34px);letter-spacing:-.04em}.vc-page-copy p{max-width:640px;margin:5px 0 0;color:var(--text2);font-size:13px;line-height:1.5}

.vc-progress-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}.vc-progress-deck.compact{gap:8px}.vc-progress-card{appearance:none;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:78px;padding:12px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,var(--soft),var(--soft));color:inherit;text-align:left;box-shadow:inset 0 1px 0 transparent,0 9px 26px rgba(54,53,35,.14)}button.vc-progress-card{cursor:pointer}.vc-progress-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--c-accent);font-size:18px}.vc-progress-copy{display:block;min-width:0}.vc-progress-copy small,.vc-progress-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-progress-copy small{color:var(--text3);font-size:10px;font-weight:700}.vc-progress-copy strong{margin:3px 0 7px;color:#fff;font-size:13px}.vc-progress-arrow{color:var(--text3);font-size:14px}.vc-progress-track,.daily-progress,.user-xp-track{display:block;height:5px;overflow:hidden;border-radius:999px;background:var(--soft)}.vc-progress-track em,.daily-progress em,.user-xp-track em{display:block;width:var(--vc-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#d4765f,#e8b7a5);box-shadow:0 0 12px rgba(255,128,111,.38);transition:width .48s cubic-bezier(.2,.8,.2,1)}.tone-purple .vc-progress-icon{color:var(--c-accent);background:var(--accent-soft)}.tone-purple .vc-progress-track em{background:linear-gradient(90deg,#c1523f,#e5967f)}.tone-blue .vc-progress-icon{color:var(--c-accent);background:var(--soft)}.tone-blue .vc-progress-track em{background:linear-gradient(90deg,#458dff,#82d5ff)}.tone-green .vc-progress-icon{color:var(--c-green);background:rgba(163,189,147,.11)}.tone-green .vc-progress-track em{background:linear-gradient(90deg,var(--green),#b6c9a6)}.tone-gold .vc-progress-icon{color:var(--c-gold);background:rgba(230,198,128,.12)}.tone-gold .vc-progress-track em{background:linear-gradient(90deg,#d7a74d,#ffe0a4)}
.user-mini .ui{min-width:0;flex:1}.user-xp-track{height:3px;margin-top:6px}.vc-premium-mark{margin-left:5px;color:var(--c-gold);text-shadow:0 0 10px rgba(255,216,143,.5)}.daily-progress{width:76px;height:3px;margin-top:5px}.vc-skeleton-line{min-height:78px;border-radius:17px;background:linear-gradient(100deg,var(--soft) 20%,var(--soft) 40%,var(--soft) 60%);background-size:220% 100%;animation:vcSkeleton 1.25s linear infinite}@keyframes vcSkeleton{to{background-position:-220% 0}}

.matches-view{padding:20px 22px 90px}.premium-matches{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.premium-matches .match-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:13px 14px;border-radius:18px;cursor:pointer;transition:transform .17s,border-color .17s,background .17s}.premium-matches .av{width:58px;height:58px}.match-card-copy{min-width:0}.match-card-copy .mc-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-card-copy small{display:block;margin-top:2px;color:var(--text3);font-size:10px}.match-card-copy small.is-online{color:var(--c-green)}.match-card-copy p{overflow:hidden;margin:5px 0 0;color:var(--text2);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.match-card-cta{color:var(--c-accent);font-size:10px;font-weight:800;white-space:nowrap}.chat-search-empty{padding:30px;text-align:center;color:var(--text3)}

.hub-quest{padding:13px 0;border-top:1px solid var(--line)}.hub-quest-head,.hub-quest-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.hub-quest-head{margin-bottom:8px}.hub-quest-head span,.hub-quest-foot{color:var(--text3);font-size:10px}.hub-quest-foot{margin-top:8px}.hub-game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.vc-game-start{display:grid;justify-items:start;gap:5px;min-height:90px;text-align:left}.vc-game-start>span{font-size:20px}.vc-game-start small{color:var(--c-gold)}.active-game-prompt{margin:8px 0 14px;padding:13px;border-radius:14px;background:var(--accent-soft);color:var(--text2);line-height:1.5}.vc-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}.vc-stepper span{display:flex;align-items:center;gap:7px;min-width:0;color:var(--text3);font-size:10px}.vc-stepper i{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:var(--soft);font-style:normal}.vc-stepper span.active i{color:#fff;background:var(--accent-soft);box-shadow:0 0 0 4px rgba(231,118,98,.18)}.vc-stepper span.done{color:var(--text2)}.vc-stepper span.done i{color:#fff;background:#34b96e}.active-game-actions{display:flex;gap:8px;flex-wrap:wrap}

.chat-reference-view #vc-chat-context{max-height:none!important;overflow:visible!important;overscroll-behavior:auto!important}.chat-reference-view .ch-sub{color:var(--text3)}.chat-reference-view .ch-sub.is-online{color:var(--c-green)}.msg-wrap.is-pending{opacity:.72}.msg-wrap.is-failed{border-color:rgba(255,105,122,.28)!important}.bub-delivery.is-pending{color:var(--c-gold)}.bub-delivery.is-failed{color:var(--c-red)}.bub-retry{min-height:26px;margin-left:5px;padding:2px 7px;border:1px solid rgba(255,105,122,.25);border-radius:999px;background:rgba(255,105,122,.09);color:var(--c-red);font-size:9px;cursor:pointer}.vc-chat-action-menu{display:grid;gap:7px}.vc-chat-action-menu>button{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-height:58px;padding:9px 11px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:inherit;text-align:left}.vc-chat-action-menu>button>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--soft);font-size:17px}.vc-chat-action-menu strong,.vc-chat-action-menu small{display:block}.vc-chat-action-menu small{margin-top:2px;color:var(--text3);font-size:10px}.vc-chat-action-menu .danger{color:var(--c-red);border-color:rgba(255,105,122,.14);background:rgba(255,105,122,.045)}

.activity-view,.hub-view{padding-bottom:90px}.activity-tabs{margin-bottom:10px}.vc-inline-state{margin-top:10px;padding:11px;border-radius:12px;background:var(--soft);color:var(--text3);font-size:11px}.vc-premium-account-note{margin:0 0 12px;padding:13px 14px;border:1px solid rgba(255,196,119,.14);border-radius:16px;background:linear-gradient(135deg,rgba(255,174,90,.09),var(--accent-soft))}.vc-premium-account-note strong,.vc-premium-account-note small{display:block}.vc-premium-account-note small{margin-top:4px;color:var(--text2);line-height:1.4}

@media(hover:hover){button.vc-progress-card:hover,.premium-matches .match-card:hover{transform:translateY(-2px);border-color:var(--coral);background:linear-gradient(145deg,var(--soft),var(--soft))}.vc-chat-action-menu>button:hover{border-color:var(--line);background:var(--soft)}}
@media(max-width:900px){.vc-progress-deck{grid-template-columns:1fr}.vc-hub-insights{grid-template-columns:1fr}.premium-matches{grid-template-columns:1fr}}
@media(max-width:768px){.vc-page-head{padding:3px 2px 12px}.vc-page-copy h1{font-size:25px}.vc-progress-deck{gap:7px}.vc-progress-card{min-height:68px;padding:10px}.vc-hub-insights{gap:9px;margin-bottom:10px}.vc-hub-insight-card{min-height:0;padding:14px;border-radius:16px}.vc-hub-week{margin-top:14px}.matches-view{padding:13px 10px calc(92px + var(--safe-bottom))}.premium-matches .match-card{grid-template-columns:50px minmax(0,1fr);padding:11px}.premium-matches .av{width:50px;height:50px}.match-card-cta{grid-column:2}.hub-game-grid{grid-template-columns:1fr}.vc-stepper{grid-template-columns:1fr}.chat-reference-view #vc-chat-context{max-height:none!important;overflow:visible!important}.chat-ref-meta{overflow-x:auto}.activity-view,.hub-view{padding-bottom:calc(94px + var(--safe-bottom))}}
@media(max-height:650px) and (pointer:coarse){.chat-ref-actions{display:none}.chat-reference-view #vc-chat-context{max-height:none!important}.chat-ref-stats{margin:0}.chat-ref-meta{margin-top:6px}}
@media(prefers-reduced-motion:reduce){.vc-route-enter,.app.vc-route-loading .vc-route-loader i,.vc-skeleton-line{animation:none!important}.vc-progress-track em,.daily-progress em,.user-xp-track em{transition:none}.premium-matches .match-card,.vc-progress-card{transition:none}}

.vc-premium-account-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;align-items:center}.vc-premium-account-note small{grid-column:1}.vc-premium-account-note .set-btn{grid-column:2;grid-row:1/3;white-space:nowrap}@media(max-width:560px){.vc-premium-account-note{grid-template-columns:1fr}.vc-premium-account-note small,.vc-premium-account-note .set-btn{grid-column:1;grid-row:auto}.vc-premium-account-note .set-btn{width:100%;margin-top:5px}}
.msg-wrap.is-expiring{opacity:0;transform:scale(.96);transition:opacity .18s ease,transform .18s ease}.self-destruct-countdown{color:var(--c-accent)!important}

/* ============================================================================
 * COMPACT CHAT — message-first Web/PWA conversation layout
 * ============================================================================ */
.chat-compact-view{background:transparent!important}
.chat-compact-view::before{display:none}
.chat-compact-view .chat-header{z-index:5;min-height:58px;padding:8px 13px;gap:9px;background:rgba(24,27,22,.72);border-color:var(--line);box-shadow:0 7px 26px rgba(54,53,35,.14);}
.chat-compact-view .chat-header .av{width:40px;height:40px;box-shadow:0 0 0 1px transparent,0 7px 18px rgba(54,53,35,.14)}
.chat-compact-view .chat-back,.chat-compact-view #vc-chat-block{width:38px;height:38px;min-width:38px;min-height:38px;border:0;background:transparent;color:var(--text2)}
.chat-compact-view .chat-back:hover,.chat-compact-view #vc-chat-block:hover{background:var(--soft);color:#fff}
.chat-compact-view .ch-nm{font-size:14px;letter-spacing:-.01em}.chat-compact-view .ch-sub{font-size:10px;color:var(--text3)}.chat-compact-view .ch-sub.is-online{color:var(--c-green)}

.chat-compact-view #vc-chat-context{display:block;flex:0 0 auto;max-height:min(224px,34dvh);padding:7px 10px!important;overflow-y:auto!important;overflow-x:hidden!important;border-bottom:1px solid var(--line)!important;background:linear-gradient(180deg,var(--soft),var(--soft));overscroll-behavior:contain;scrollbar-width:thin}
.chat-compact-view #vc-chat-context[hidden]{display:none!important}
.chat-free-opener{display:flex;align-items:center;justify-content:center;gap:6px;min-height:27px;margin-bottom:6px;padding:4px 9px;border:1px solid var(--gold2);border-radius:10px;background:var(--hint);color:var(--c-gold);font-size:9px}.chat-free-opener span{font-size:12px}.chat-compact-pulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:5px;min-width:0}.chat-compact-chip{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:31px;padding:5px 8px;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--text2);font:750 9px/1.1 var(--font)}.chat-compact-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.chat-compact-chip{cursor:pointer;transition:transform .16s,border-color .16s,background .16s,color .16s}button.chat-compact-chip:hover{transform:translateY(-1px);border-color:var(--coral);background:var(--accent-soft);color:#fff}
.chat-compact-chip.presence i{display:block;width:7px;height:7px;border-radius:50%;background:#777b87;box-shadow:0 0 0 3px rgba(119,123,135,.1)}.chat-compact-chip.presence.is-online i{background:#a3bd93;box-shadow:0 0 0 3px rgba(163,189,147,.1),0 0 10px rgba(163,189,147,.45)}
.chat-compact-chip.streak{color:var(--c-accent);background:rgba(255,111,91,.065)}.chat-compact-chip.is-active{color:var(--c-green);background:rgba(163,189,147,.07)}.chat-compact-chip.term{color:var(--c-accent);background:var(--accent-soft)}
.chat-compact-flirt{display:grid;grid-template-columns:auto minmax(28px,1fr) auto;align-items:center;gap:5px;min-width:0;height:31px;padding:5px 8px;border:1px solid rgba(255,105,160,.12);border-radius:11px;background:rgba(255,75,132,.055)}.chat-compact-flirt>span{font-size:11px}.chat-compact-flirt i{display:block;min-width:28px;height:4px;overflow:hidden;border-radius:999px;background:var(--soft)}.chat-compact-flirt em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff5d8f,#ff9f74);box-shadow:0 0 9px rgba(255,93,143,.5)}.chat-compact-flirt b{color:var(--c-accent);font-size:8px}.chat-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:5px;margin-top:6px}.chat-quick-action{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;justify-content:center;gap:4px;min-width:0;min-height:39px;padding:5px 6px;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--text2);cursor:pointer}.chat-quick-action>span{font-size:14px}.chat-quick-action>strong{display:-webkit-box;min-width:0;overflow:hidden;color:inherit;font-size:8px;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chat-quick-action.gift{color:var(--c-gold);background:rgba(255,190,86,.055)}.chat-quick-action:hover{border-color:var(--coral);background:var(--accent-soft);color:#fff}
.chat-compact-offers{display:grid;gap:6px;margin-top:6px}.chat-compact-access{display:flex;align-items:center;gap:9px;width:100%;box-sizing:border-box;margin-top:6px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text2);font:inherit;text-align:left}button.chat-compact-access{cursor:pointer}.chat-compact-access strong{display:block;font-size:12px}.chat-compact-access small{display:block;margin-top:2px;color:var(--text3);font-size:10px}.vc-chat-access-icon{width:22px;height:22px}.chat-compact-offer{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid rgba(95,157,255,.14);border-radius:12px;background:var(--soft)}.chat-compact-offer>span{font-size:16px}.chat-compact-offer>div{min-width:0;flex:1}.chat-compact-offer strong,.chat-compact-offer small{display:block}.chat-compact-offer strong{font-size:11px}.chat-compact-offer small{margin-top:2px;color:var(--text3);font-size:9px}.chat-compact-offer-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.chat-compact-offer-actions button{min-height:30px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--text);font-size:10px;font-weight:750}

.chat-compact-view .chat-thread{z-index:2;padding:12px 14px 16px;gap:8px;background:transparent!important;scroll-padding-block:16px}
.chat-compact-view .daynote{position:relative;margin:6px 0 10px;color:var(--text3);font-size:9px;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;padding:0 14px}
.chat-compact-view .daynote::before,.chat-compact-view .daynote::after{content:"";position:absolute;top:50%;width:12px;height:1px;background:var(--div)}
.chat-compact-view .daynote::before{left:0}
.chat-compact-view .daynote::after{right:0}
.chat-compact-view .msg-wrap{max-width:min(78%,620px)}.chat-compact-view .msg-wrap.them{align-self:flex-start;align-items:flex-start;width:auto;padding:0;border:0;background:none;box-shadow:none}.chat-compact-view .msg-wrap.me{max-width:min(78%,620px)}
.chat-compact-view .bub{padding:9px 12px;border-radius:15px;font-size:var(--t-chat);line-height:var(--t-lh);box-shadow:0 7px 22px rgba(54,53,35,.14)}.chat-compact-view .bub.them{border:1px solid var(--line);border-bottom-left-radius:5px;background:linear-gradient(145deg,var(--soft),var(--soft))}.chat-compact-view .bub.me{border-bottom-right-radius:5px}.chat-compact-view .bub-ts{margin-top:4px;font-size:9px}
.chat-compact-view .chat-empty{align-self:center;margin:auto;padding:16px 22px;border:1px solid var(--line);border-radius:16px;background:var(--soft);color:var(--text3);font-size:11px;box-shadow:0 15px 40px rgba(54,53,35,.14)}

.chat-compact-view .chat-composer{position:relative;z-index:5;display:flex!important;align-items:flex-end;gap:7px;margin:0;padding:8px 10px calc(8px + var(--safe-bottom));border:0;border-top:1px solid var(--line);border-radius:0;background:rgba(24,27,22,.82);box-shadow:0 -10px 34px rgba(54,53,35,.14);}
.chat-compose-field{display:flex;align-items:flex-end;flex:1 1 auto;min-width:0;min-height:42px;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:rgba(24,27,22,.38);transition:border-color .16s,background .16s}.chat-compose-field:focus-within{border-color:var(--coral);background:var(--soft);box-shadow:0 0 0 3px rgba(231,118,98,.18)}
.chat-compact-view .chat-compose-field textarea{display:block;flex:1 1 auto;width:auto;min-width:0;min-height:40px;max-height:96px;padding:10px 8px 9px 12px;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;font-size:13px;line-height:1.45}.chat-compact-view .chat-compose-field textarea:focus{border:0!important;outline:0}
.chat-compact-view .chat-composer .c-add,.chat-compact-view .chat-composer .c-send{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;border:1px solid var(--line);border-radius:14px;background:var(--soft);box-shadow:inset 0 1px 0 transparent}
.chat-compact-view .chat-composer .c-add svg{width:19px;height:19px;color:var(--c-accent)}
.chat-compact-view .chat-composer .c-send{flex-basis:42px;width:42px;min-width:42px;border:0;background:linear-gradient(135deg,#d4765f,#c1523f)!important;color:#fff;box-shadow:0 7px 20px rgba(216,90,76,.22)}.chat-compact-view .chat-composer .c-send:disabled{background:var(--soft)!important;color:var(--text3);box-shadow:none}

@media(max-width:768px){
  .chat-compact-view .chat-header{min-height:calc(58px + var(--safe-top));padding:calc(8px + var(--safe-top)) calc(10px + var(--safe-right)) 8px calc(10px + var(--safe-left))}
  .chat-compact-view #vc-chat-context{max-height:min(210px,33dvh);padding:6px 8px!important}
  .chat-compact-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}.chat-compact-chip{min-height:30px;padding:5px 6px}.chat-quick-actions{gap:4px}.chat-quick-action{grid-template-columns:1fr;justify-items:center;gap:2px;min-height:44px;padding:4px}.chat-quick-action>span{font-size:15px}.chat-quick-action>strong{width:100%;text-align:center}
  .chat-compact-view .chat-thread{padding:10px 10px 13px;gap:7px}.chat-compact-view .msg-wrap,.chat-compact-view .msg-wrap.me{max-width:87%}
  .chat-compact-view .chat-composer{display:flex!important;grid-template-columns:none!important;grid-template-rows:none!important;gap:6px;padding:7px 8px calc(7px + var(--safe-bottom))}
  .chat-compact-view .chat-composer>button,.chat-compact-view .chat-composer>select{grid-row:auto!important;grid-column:auto!important;justify-self:auto!important}
  .chat-compact-view .chat-compose-field textarea{grid-column:auto!important;grid-row:auto!important;width:auto;max-height:88px;font-size:16px}
  .chat-compact-view .chat-composer .c-add{flex-basis:38px;width:38px;height:38px;min-width:38px;min-height:38px}.chat-compact-view .chat-composer .c-send{flex-basis:42px;width:42px;min-width:42px}
}
@media(max-width:768px), (pointer:coarse){.chat-compact-view{height:100%;min-height:0}.chat-compact-view .chat-composer{padding-right:calc(8px + var(--safe-right));padding-bottom:calc(7px + var(--safe-bottom) + env(keyboard-inset-bottom,0px));padding-left:calc(8px + var(--safe-left))}.bottom-nav{width:100%;max-width:100%;margin:0}}
@media(max-width:350px){
  .chat-compact-view .chat-composer{display:flex!important;gap:4px;padding-inline:6px}.chat-compact-view .chat-composer .c-add{flex-basis:36px;width:36px;height:36px;min-width:36px;min-height:36px}.chat-compact-view .chat-composer .c-send{flex-basis:40px;width:40px;min-width:40px}
}
@media(max-height:620px) and (pointer:coarse){.chat-compact-view #vc-chat-context{display:flex;flex-direction:column;max-height:170px}.chat-compact-offers{order:-1;display:grid;margin:0 0 5px}.chat-compact-offer{padding:6px 8px}.chat-compact-offer-actions button{min-height:44px}}
@media(max-width:768px), (pointer:coarse){.chat-compact-view .chat-composer .c-add,.chat-compact-view .chat-composer .c-send{flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){button.chat-compact-chip,.chat-quick-action,.chat-compose-field{transition:none}}

/* ============================================================================
 * COMPACT PAGE MASTHEADS — preserve context without pushing content down
 * ============================================================================ */
.vc-page-head{align-items:center;min-height:48px;margin:0 0 10px;padding:3px 2px 9px}
.vc-page-head::after{width:72px}
.vc-page-copy{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;gap:4px 9px;width:100%}
.vc-page-copy h1{grid-column:1;grid-row:1;margin:0;font-size:22px;line-height:1.15;white-space:nowrap}
.vc-page-copy>small{grid-column:2;grid-row:1;margin:0;font-size:9px;letter-spacing:.1em;white-space:nowrap}
.vc-page-copy p{grid-column:3;grid-row:1;min-width:0;max-width:none;margin:0;color:var(--text3);font-size:11px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vc-progress-deck{gap:8px;margin-bottom:12px}.vc-progress-card{min-height:68px;padding:10px}.vc-progress-icon{width:34px;height:34px;font-size:16px}.vc-skeleton-line{min-height:68px}
.chat-list-tools{align-items:center;margin-bottom:10px}.chat-list-tools h1{font-size:22px}.chat-list-tools input{min-height:40px}

@media(max-width:900px){
  .vc-progress-deck,.vc-progress-deck.compact{display:grid;grid-template-columns:none;grid-template-rows:minmax(68px,auto);grid-auto-flow:column;grid-auto-columns:minmax(210px,44%);align-items:stretch;min-height:68px;gap:8px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}
  .vc-progress-deck::-webkit-scrollbar{display:none}.vc-progress-deck>*{scroll-snap-align:start}
  .chat-insight-stack.vc-progress-deck.compact{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:64px 44px;grid-auto-flow:row;grid-auto-columns:auto;min-height:112px;gap:4px;overflow:visible;padding:0;margin-bottom:9px;scroll-snap-type:none}
  .chat-insight-stack>.vc-progress-card.is-active{grid-column:1/-1;grid-row:1;min-height:64px}
  .chat-insight-stack>.vc-progress-card:not(.is-active){grid-row:2;grid-template-columns:28px minmax(0,1fr);gap:6px;min-height:44px;padding:4px 8px;border-radius:11px;background:var(--soft);cursor:pointer}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-icon{width:28px;height:28px;border-radius:8px;font-size:12px}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-copy strong,.chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-track,.chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-arrow{display:none}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-copy small{overflow:hidden;color:var(--text2);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
}
@media(max-width:768px){
  .vc-page-head{min-height:36px;margin-bottom:7px;padding:0 2px 7px}
  .vc-page-head::after{width:52px}
  .vc-page-copy{display:block}
  .vc-page-copy h1{font-size:21px;line-height:1.2}
  .vc-page-copy>small,.vc-page-copy p{display:none}
  .vc-progress-deck,.vc-progress-deck.compact{grid-template-rows:58px;grid-auto-columns:minmax(188px,72%);min-height:60px;gap:7px;margin:0 0 9px;padding:0 0 2px}
  .vc-progress-card{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;min-height:58px;padding:8px 9px;border-radius:15px}
  .vc-progress-icon{width:32px;height:32px;border-radius:10px;font-size:15px}
  .vc-progress-copy small{font-size:9px}.vc-progress-copy strong{margin:2px 0 5px;font-size:12px}.vc-progress-arrow{font-size:12px}
  .vc-skeleton-line,.vc-progress-deck .vc-skeleton-line{min-height:58px;border-radius:15px}
  .activity-view,.hub-view{gap:9px}.activity-tabs{margin-bottom:3px}
  .chat-list-tools{margin-bottom:8px}.chat-list-tools h1{font-size:22px}.chat-list-tools label{margin-top:8px}.chat-list-tools input{min-height:40px}
  .chat-insight-stack.vc-progress-deck.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:58px 44px;grid-auto-flow:row;grid-auto-columns:auto;min-height:106px;gap:4px;overflow:visible;padding:0;margin-bottom:9px;scroll-snap-type:none}
  .chat-insight-stack>.vc-progress-card{transition:min-height .18s,background .18s,border-color .18s}
  .chat-insight-stack>.vc-progress-card.is-active{grid-column:1/-1;grid-row:1;min-height:58px}
  .chat-insight-stack>.vc-progress-card:not(.is-active){grid-row:2;grid-template-columns:28px minmax(0,1fr);gap:6px;min-height:44px;padding:4px 8px;border-radius:11px;background:var(--soft);cursor:pointer}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-icon{width:28px;height:28px;border-radius:8px;font-size:12px}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-copy strong,.chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-track,.chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-arrow{display:none}
  .chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-copy small{overflow:hidden;color:var(--text2);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
}

/* ============================================================================
 * UNIFIED TOPBAR CONTROLS — one height, one glass language, one interaction
 * ============================================================================ */
.topbar{min-height:58px;gap:8px;padding:8px 14px;background:rgba(24,27,22,.48)}
.filter-bar{gap:7px}
.filter-cap,.filter-cog,.daily-inline,.tool-btn,.tool-av{height:42px;min-height:42px;border:1px solid var(--line);background:var(--soft);box-shadow:inset 0 1px 0 transparent;transition:transform .16s,border-color .16s,background .16s,color .16s}
.filter-cap{max-width:190px;padding:0 13px;border-radius:14px;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.filter-cog,.tool-btn{display:grid;place-items:center;flex:0 0 42px;width:42px;border-radius:14px;color:var(--text2)}
.filter-cog svg,.tool-btn svg{width:18px;height:18px}
.tool-av{flex:0 0 42px;width:42px;border-color:var(--line);box-shadow:inset 0 1px 0 transparent,0 5px 16px rgba(54,53,35,.14)}
.top-actions{gap:7px}
.daily-inline{position:relative;max-width:210px;gap:8px;padding:0 12px;border-radius:14px;color:var(--text);white-space:nowrap}
.daily-inline.is-ready,.daily-inline.is-claimed{border-color:var(--gold2);background:linear-gradient(135deg,var(--hint),var(--accent-soft))}
.daily-inline .ico{flex:0 0 auto;font-size:18px;line-height:1}.daily-inline .txt{position:relative;min-width:0;padding-bottom:6px;overflow:hidden;color:var(--c-gold);font-size:11.5px;font-weight:750;line-height:1.1;text-overflow:ellipsis}.daily-inline .txt span{display:none}
.daily-inline .daily-progress{position:absolute;right:10px;bottom:5px;left:38px;width:auto;height:2px;margin:0;background:var(--soft)}
.daily-inline.is-ready{cursor:pointer}.daily-inline.is-claimed,.daily-inline.is-disabled{cursor:default}
.filter-cap:hover,.filter-cog:hover,.tool-btn:hover,.tool-av:hover{transform:translateY(-1px);border-color:var(--coral);background:var(--soft);color:#fff}
.daily-inline.is-ready:hover{transform:translateY(-1px);border-color:var(--gold2);background:linear-gradient(135deg,var(--hint),var(--accent-soft))}
.filter-cap:focus-visible,.filter-cog:focus-visible,.daily-inline:focus-visible,.tool-btn:focus-visible,.tool-av:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.vc-theme-quick{border-color:var(--coral);background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));color:var(--c-accent)}
.vc-theme-quick:hover{border-color:rgba(190,149,255,.48);background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));color:#fff}

@media(max-width:768px), (max-height:600px) and (pointer:coarse){
  .topbar{min-height:60px;gap:6px;padding:calc(8px + var(--safe-top)) calc(10px + var(--safe-right)) 8px calc(10px + var(--safe-left))}
  .filter-bar{gap:6px}
  .filter-cap,.filter-cog,.daily-inline,.tool-btn,.tool-av{height:44px;min-height:44px}
  .filter-cap{max-width:calc(100% - 50px);padding:0 10px;border-radius:14px;font-size:11.5px}
  .filter-cog,.tool-btn,.tool-av{flex-basis:44px;width:44px}
  .daily-inline{display:grid;place-items:center;flex:0 0 44px;width:44px;max-width:44px;padding:0;border-radius:14px}
  .daily-inline .ico{font-size:19px}.daily-inline .txt{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .daily-inline .daily-progress{right:7px;bottom:5px;left:7px;width:auto}
  .top-actions{gap:6px}
}
@media(pointer:coarse){
  .filter-cap,.filter-cog,.daily-inline,.tool-btn,.tool-av{height:44px;min-height:44px}
  .filter-cog,.tool-btn,.tool-av{flex-basis:44px;width:44px}
}
@media(max-width:350px){.topbar{gap:5px;padding-inline:7px}.filter-bar{gap:5px}.filter-cap{padding-inline:8px}}

/* Live non-stackable checkout promotion. */
.store-live-promo{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;margin:0 0 14px;padding:14px 16px;overflow:hidden;border:1px solid rgba(246,191,94,.24);border-radius:19px;background:linear-gradient(135deg,rgba(247,166,82,.13),rgba(155,89,215,.1) 58%,var(--soft));box-shadow:0 16px 46px rgba(54,53,35,.14),inset 0 1px 0 transparent;}
.store-live-promo::after{content:"";position:absolute;inset:-70% auto -70% -20%;width:32%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,var(--soft),transparent);animation:vcPromoShine 5s ease-in-out infinite;pointer-events:none}
@keyframes vcPromoShine{0%,65%{translate:-150% 0}90%,100%{translate:520% 0}}
.store-live-promo-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,216,132,.22);border-radius:15px;background:linear-gradient(145deg,rgba(255,183,94,.18),rgba(174,94,220,.12));color:var(--c-gold);font-size:21px;box-shadow:0 9px 28px rgba(220,115,64,.16)}
.store-live-promo-copy{min-width:0}.store-live-promo-copy span,.store-live-promo-copy strong,.store-live-promo-copy small{display:block}.store-live-promo-copy span{color:var(--c-gold);font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.store-live-promo-copy strong{margin-top:4px;color:#fff;font-size:16px;line-height:1.2}.store-live-promo-copy small{margin-top:4px;color:var(--text3);font-size:10px;line-height:1.35}
.store-live-promo-clock{min-width:108px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:rgba(24,27,22,.24);text-align:right}.store-live-promo-clock span,.store-live-promo-clock strong{display:block}.store-live-promo-clock span{color:var(--text3);font-size:8px}.store-live-promo-clock strong{margin-top:3px;color:var(--c-gold);font-size:12px;font-variant-numeric:tabular-nums}
.pack.has-promo{border-color:rgba(246,191,94,.27)!important;background:linear-gradient(135deg,rgba(246,191,94,.09),rgba(166,91,211,.06))!important}.pack-nm s{color:var(--text3);font-size:.78em;text-decoration-color:#ff8d74}.pack-tag.promo{color:#351b0c;background:linear-gradient(135deg,#ffd37e,#f4a55e)}.vc-promo-modal-note{padding:9px 11px;border:1px solid rgba(246,191,94,.18);border-radius:11px;background:rgba(246,191,94,.07);color:var(--c-gold)!important;font-size:11px!important}
.pack-price.is-offer{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.pack-price.is-offer s{color:var(--text3);font-size:9px;font-weight:700;text-decoration-color:#ff8d74}.pack-price.is-offer strong{color:var(--c-gold);font-size:15px;line-height:1}
.store-live-promo.is-rescue{border-color:rgba(255,183,84,.32);background:linear-gradient(135deg,rgba(255,176,73,.15),rgba(112,82,207,.09) 62%,var(--soft))}.store-live-promo.is-rescue .store-live-promo-clock strong{font-size:14px}
.vc-rescue-offer{position:fixed;right:22px;bottom:calc(22px + var(--safe-bottom));z-index:9200;display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-areas:"icon copy time" "icon copy action";gap:5px 12px;align-items:center;width:min(440px,calc(100vw - 32px));padding:13px 14px;border:1px solid rgba(255,187,88,.28);border-radius:20px;background:linear-gradient(145deg,rgba(24,27,22,.97),rgba(24,27,22,.97));color:var(--text);box-shadow:0 24px 64px rgba(54,53,35,.14),inset 0 1px 0 transparent;animation:vcRescueOfferIn .24s cubic-bezier(.2,.8,.2,1) both}
.vc-rescue-offer-icon{grid-area:icon;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,191,92,.22);border-radius:13px;background:rgba(255,173,69,.1);color:var(--c-gold)}.vc-rescue-offer-icon .vc-glass-icon{width:38px;height:38px}
.vc-rescue-offer-copy{grid-area:copy;min-width:0}.vc-rescue-offer-copy span,.vc-rescue-offer-copy strong,.vc-rescue-offer-copy small{display:block}.vc-rescue-offer-copy span{color:var(--c-gold);font-size:8px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.vc-rescue-offer-copy strong{margin-top:3px;font-size:14px;line-height:1.15}.vc-rescue-offer-copy small{margin-top:4px;overflow:hidden;color:var(--text3);font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.vc-rescue-offer-copy s{color:var(--text3);text-decoration-color:#ff8d74}
.vc-rescue-offer-time{grid-area:time;min-width:64px;text-align:right}.vc-rescue-offer-time span,.vc-rescue-offer-time strong{display:block}.vc-rescue-offer-time span{color:var(--text3);font-size:7px}.vc-rescue-offer-time strong{margin-top:2px;color:var(--c-gold);font-size:13px;font-variant-numeric:tabular-nums}
.vc-rescue-offer>button{grid-area:action;min-height:29px;padding:0 10px;border:0;border-radius:9px;background:linear-gradient(135deg,#ffc76f,#f0a34e);color:#2d1908;font-size:9px;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(232,156,62,.18);transition:filter .15s ease,transform .15s ease}.vc-rescue-offer>button:hover{filter:brightness(1.06);transform:translateY(-1px)}.vc-rescue-offer>button:focus-visible{outline:2px solid #ffd184;outline-offset:2px}
@keyframes vcRescueOfferIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:620px){.store-live-promo{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px}.store-live-promo-icon{width:42px;height:42px}.store-live-promo-clock{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:7px 9px;text-align:left}.store-live-promo-clock strong{margin:0}.store-live-promo-copy strong{font-size:14px}}
@media(max-width:768px){.vc-rescue-offer{right:12px;bottom:calc(74px + var(--safe-bottom));width:calc(100vw - 24px)}}
@media(max-width:480px){.vc-rescue-offer{grid-template-columns:38px minmax(0,1fr) auto;padding:11px 12px;gap:4px 9px;border-radius:17px}.vc-rescue-offer-icon{width:38px;height:38px}.vc-rescue-offer-copy small{display:none}.vc-rescue-offer-time span{display:none}.vc-rescue-offer>button{padding:0 8px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.store-live-promo::after{animation:none}.vc-rescue-offer{animation:none}.vc-rescue-offer>button{transition:none}}

/* ============================================================================
 * APPEARANCE — persisted light / dark / system themes
 * ============================================================================ */
.vc-theme-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:2px}
.vc-theme-switch button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:48px;padding:8px 10px;border:1px solid var(--control-border);border-radius:14px;background:var(--surface-1);color:var(--text2);transition:transform .16s,border-color .16s,background .16s,color .16s}
.vc-theme-switch button span{font-size:18px;line-height:1}.vc-theme-switch button strong{min-width:0;font-size:11px;line-height:1.2}
.vc-theme-switch button:hover{transform:translateY(-1px);border-color:var(--coral);background:var(--surface-2);color:var(--text)}
.vc-theme-switch button.is-active{border-color:rgba(255,116,96,.48);background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));color:var(--text);box-shadow:0 0 0 3px rgba(231,118,98,.18),inset 0 1px 0 var(--surface-highlight)}

.guest-gate-context{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--coral);border-radius:16px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft))}
.guest-gate-context>img,.guest-gate-context>span{grid-row:1;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--coral),var(--purple));object-fit:cover;color:#fff;font-size:18px;font-weight:850}
.guest-gate-context>div{min-width:0}.guest-gate-context small,.guest-gate-context strong,.guest-gate-context em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guest-gate-context small{color:var(--c-accent);font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.guest-gate-context strong{margin-top:2px;font-size:14px}.guest-gate-context em{margin-top:2px;color:var(--text3);font-size:10px;font-style:normal}

@media(max-width:768px){
  .vc-theme-switch{grid-template-columns:1fr}.vc-theme-switch button{justify-content:flex-start;padding-inline:14px}
  
}
/* ===== Legal consent ===== */
.tos-legal-links{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 13px}.tos-legal-links a{padding:6px 9px;border:1px solid var(--line,var(--line));border-radius:999px;color:var(--accent,#ff8d74);font-size:11px;text-decoration:none}.tos-check{align-items:flex-start!important;margin-top:8px!important}.tos-check input{margin-top:3px}
.vc-settings-legal{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.vc-settings-legal a{padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--text2);font-size:10px;text-decoration:none}.vc-settings-legal a:hover{border-color:var(--coral);color:var(--accent,#ff8d74)}
@media(max-width:640px){.tos-dialog>div{max-height:92vh;overflow:auto}}

/* First free opener and contextual chat-continuation paywall. */
.chat-compact-chip.free-opener{border-color:rgba(163,189,147,.25);background:linear-gradient(135deg,rgba(163,189,147,.12),var(--hint));color:var(--c-green);box-shadow:inset 0 1px 0 transparent}
.vc-chat-paywall{display:grid;gap:13px}.vc-chat-paywall>p{margin:0;color:var(--text2);font-size:13px;line-height:1.55}.vc-chat-paywall>small{color:var(--c-green);font-size:11px;font-weight:750}
.vc-chat-paywall-person{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:11px;padding:10px;border:1px solid var(--surface-border);border-radius:16px;background:var(--surface-1)}
.vc-chat-paywall-person>img,.vc-chat-paywall-person>span{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,var(--coral),var(--purple));object-fit:cover;color:#fff;font-size:19px;font-weight:850}.vc-chat-paywall-person>div{min-width:0}.vc-chat-paywall-person small,.vc-chat-paywall-person strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-chat-paywall-person small{color:var(--text3);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.vc-chat-paywall-person strong{margin-top:3px;font-size:15px}
.vc-chat-paywall-pack{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border:1px solid var(--gold2);border-radius:17px;background:radial-gradient(circle at 100% 0,var(--hint),transparent 42%),linear-gradient(145deg,var(--accent-soft),var(--accent-soft))}.vc-chat-paywall-pack span,.vc-chat-paywall-pack strong,.vc-chat-paywall-pack small{display:block}.vc-chat-paywall-pack span{color:var(--text3);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.vc-chat-paywall-pack strong{margin-top:3px;color:var(--c-gold);font-size:25px;line-height:1}.vc-chat-paywall-pack small{margin-top:4px;color:var(--text2);font-size:10px}.vc-chat-paywall-pack>b{color:var(--c-gold);font-size:28px;letter-spacing:-.04em}

/* Contextual conversion cards: one calm next step, only where the surface is empty. */
.vc-context-stage{display:grid;place-items:center;width:100%;min-height:min(410px,54dvh);padding:22px}
.vc-context-cta{--ctx-rgb:237,150,127;--ctx-accent:#ed967f;--ctx-accent2:#c1523f;position:relative;isolation:isolate;display:grid;gap:15px;width:min(100%,560px);padding:20px;overflow:hidden;border:1px solid rgba(var(--ctx-rgb),.2);border-radius:22px;background:radial-gradient(circle at 8% 4%,rgba(var(--ctx-rgb),.16),transparent 36%),radial-gradient(circle at 95% 96%,var(--accent-soft),transparent 38%),linear-gradient(145deg,rgba(24,27,22,.9),rgba(24,27,22,.82));box-shadow:inset 0 1px 0 transparent,0 22px 54px rgba(54,53,35,.14)}
.vc-context-cta:before{content:"";position:absolute;z-index:-1;inset:-40% 52% 44% -15%;border-radius:50%;background:rgba(var(--ctx-rgb),.11);filter:blur(24px);pointer-events:none}
.vc-context-cta.tone-purple{--ctx-rgb:193,82,63;--ctx-accent:#e0a08c;--ctx-accent2:#c1523f}.vc-context-cta.tone-gold{--ctx-rgb:242,193,91;--ctx-accent:#ffd983;--ctx-accent2:#f0a94d}.vc-context-cta.tone-blue{--ctx-rgb:69,141,255;--ctx-accent:#8fbdff;--ctx-accent2:#4f76e8}.vc-context-cta.tone-green{--ctx-rgb:163,189,147;--ctx-accent:#a3bd93;--ctx-accent2:#52856b}
.vc-context-main{position:relative;display:flex;align-items:center;gap:15px;min-width:0}.vc-context-icon{position:relative;display:grid;place-items:center;flex:0 0 62px;width:62px;height:62px;border:1px solid rgba(var(--ctx-rgb),.24);border-radius:19px;background:linear-gradient(145deg,rgba(var(--ctx-rgb),.2),rgba(var(--ctx-rgb),.075));box-shadow:inset 0 1px 0 transparent,0 12px 28px rgba(var(--ctx-rgb),.1)}
.vc-context-icon>span{font-size:29px;filter:drop-shadow(0 8px 13px rgba(var(--ctx-rgb),.24));animation:vcContextFloat 3.4s ease-in-out infinite}.vc-context-icon>i{position:absolute;top:6px;right:7px;color:var(--ctx-accent);font-size:11px;font-style:normal;animation:vcContextSpark 1.9s ease-in-out infinite}
.vc-context-copy{min-width:0}.vc-context-copy>small{display:block;margin-bottom:4px;color:var(--ctx-accent);font-size:9px;font-weight:900;letter-spacing:.095em;text-transform:uppercase}.vc-context-copy>strong{display:block;color:var(--text);font-size:17px;line-height:1.2}.vc-context-copy>p{max-width:470px;margin:5px 0 0;color:var(--text3);font-size:12px;line-height:1.55}
.vc-context-progress{display:grid;gap:6px;padding:10px 12px;border:1px solid rgba(var(--ctx-rgb),.12);border-radius:13px;background:var(--soft)}.vc-context-progress>div{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text3);font-size:10px}.vc-context-progress strong{color:var(--ctx-accent);font-size:11px}.vc-context-progress>i{display:block;height:5px;overflow:hidden;border-radius:999px;background:var(--soft)}.vc-context-progress>i>em{display:block;width:var(--vc-context-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ctx-accent2),var(--ctx-accent));box-shadow:0 0 14px rgba(var(--ctx-rgb),.34);transition:width .45s ease}
.vc-context-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.vc-context-actions:has(>button:only-child){grid-template-columns:1fr}.vc-context-actions button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;padding:0 14px;border-radius:13px;font:inherit;font-size:11px;font-weight:850;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.vc-context-actions button:hover{transform:translateY(-1px)}.vc-context-primary{border:1px solid rgba(var(--ctx-rgb),.28);background:linear-gradient(135deg,var(--ctx-accent),var(--ctx-accent2));box-shadow:0 11px 28px rgba(var(--ctx-rgb),.18);color:#fff}.tone-gold .vc-context-primary{color:#2b1c07}.vc-context-primary>b{margin-left:auto;font-size:15px}.vc-context-secondary{border:1px solid var(--surface-border);background:var(--soft);color:var(--text2)}.vc-context-secondary:hover{border-color:rgba(var(--ctx-rgb),.3);color:var(--text)}
.vc-context-cta.is-centered{text-align:center}.vc-context-cta.is-centered .vc-context-main{flex-direction:column}.vc-context-cta.is-centered .vc-context-copy>p{margin-inline:auto}.vc-context-cta.is-centered .vc-context-icon{width:68px;height:68px;flex-basis:68px;border-radius:21px}.vc-context-cta.is-compact{gap:11px;padding:14px;border-radius:17px}.vc-context-cta.is-compact .vc-context-main{gap:12px}.vc-context-cta.is-compact .vc-context-icon{width:50px;height:50px;flex-basis:50px;border-radius:15px}.vc-context-cta.is-compact .vc-context-icon>span{font-size:24px}.vc-context-cta.is-compact .vc-context-copy>strong{font-size:13px}.vc-context-cta.is-compact .vc-context-copy>p{margin-top:4px;font-size:10px;line-height:1.45}.vc-context-cta.is-compact .vc-context-actions button{min-height:40px}.vc-context-cta.is-micro{margin-top:8px;padding:12px}.vc-context-cta.is-micro .vc-context-icon{width:43px;height:43px;flex-basis:43px;border-radius:13px}.vc-context-cta.is-micro .vc-context-icon>span{font-size:20px}.vc-context-cta.is-micro .vc-context-copy>strong{font-size:12px}.vc-context-cta.is-micro .vc-context-actions{display:flex}.vc-context-cta.is-micro .vc-context-actions button{width:auto;min-height:36px;padding-inline:12px}
.own-profile-card .ints>.vc-context-cta{width:100%;margin-top:0}.chat-compact-view .vc-context-cta.chat-empty{align-self:center;width:min(100%,430px);margin:auto;padding:16px 18px;border-style:solid;color:var(--text);font-size:inherit}.chat-compact-view .vc-context-cta.chat-empty .vc-context-icon{width:52px;height:52px;flex-basis:52px}.hub-games-card>.vc-context-cta{margin-top:10px}

@keyframes vcContextFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes vcContextSpark{0%,100%{opacity:.35;transform:scale(.78) rotate(0)}50%{opacity:1;transform:scale(1.16) rotate(22deg)}}
@media(max-width:640px){.vc-context-stage{min-height:300px;padding:12px}.vc-context-cta{gap:12px;padding:15px;border-radius:18px}.vc-context-cta:not(.is-centered) .vc-context-icon{width:52px;height:52px;flex-basis:52px}.vc-context-copy>strong{font-size:15px}.vc-context-copy>p{font-size:11px}.vc-context-actions{grid-template-columns:1fr}.vc-context-actions button{min-height:43px}.vc-context-cta.is-micro .vc-context-actions button{width:100%}.chat-compact-view .vc-context-cta.chat-empty{width:min(100%,360px);padding:13px}.chat-compact-view .vc-context-cta.chat-empty .vc-context-actions button{min-height:39px}}
@media(prefers-reduced-motion:reduce){.vc-context-icon>span,.vc-context-icon>i{animation:none}.vc-context-progress>i>em{transition:none}}

/* Headerless shell: filters stay with Discover; notifications live in Activity. */
.discover-filter-dock{display:flex;align-items:center;align-self:center;flex:0 0 auto;gap:7px;width:min(100%,620px);min-width:0;padding:4px;border:1px solid var(--surface-border);border-radius:15px;background:linear-gradient(145deg,var(--surface-2),var(--surface-1));box-shadow:inset 0 1px 0 var(--surface-highlight),0 10px 26px rgba(54,53,35,.14)}
.discover-filter-dock .filter-cap{min-width:0;min-height:36px;padding:6px 12px;border-color:transparent;background:transparent;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.discover-filter-dock .filter-cap:first-child{flex:1}.discover-filter-dock .filter-cog{width:36px;height:36px;border-radius:11px}.discover-filter-dock.is-active{border-color:var(--coral);box-shadow:inset 0 1px 0 var(--surface-highlight),0 10px 26px rgba(255,105,91,.07)}
.activity-tab-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:8px}.activity-tab-row>.set-btn{min-width:0;margin:0}.activity-notifications{position:relative;display:grid!important;place-items:center;padding:0!important}.activity-notifications>svg{width:18px;height:18px}.activity-notifications>span{position:absolute;top:3px;right:3px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid var(--panel);border-radius:999px;background:var(--coral);color:#fff;font-size:8px;font-weight:900;line-height:1}

@media(max-width:768px), (max-height:600px) and (pointer:coarse){body:not(.vc-chat-route) .main-body{padding-top:var(--safe-top)}.discover-filter-dock{gap:4px;min-height:50px;padding:3px;border-radius:13px}.discover-filter-dock .filter-cap{min-height:44px;padding-inline:9px;font-size:11px}.discover-filter-dock .filter-cog{flex:0 0 44px;width:44px;height:44px}.discover-filter-dock .filter-cap:nth-child(2){display:none}.activity-tab-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:6px}.activity-notifications{min-height:44px!important}}

/* GLASS visual system: generated transparent assets shared by navigation, swipe and chat. */
.vc-glass-icon,.vc-badge-glass-icon{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 5px 10px rgba(0,0,0,.28))}
.nav-item>.vc-glass-icon{flex:0 0 27px;width:27px;height:27px;margin-left:-3px;transition:transform .2s ease,filter .2s ease}.nav-item:hover>.vc-glass-icon,.nav-item.active>.vc-glass-icon{transform:translateY(-1px) scale(1.07);filter:drop-shadow(0 6px 13px rgba(194,132,255,.4))}
.bn-item>.vc-glass-icon{width:27px;height:27px;transition:transform .18s ease,filter .18s ease}.bn-item.active>.vc-glass-icon{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 5px 11px rgba(255,116,146,.5))}
.vc-brand-lockup{display:flex;align-items:center;justify-content:center;gap:10px}.vc-brand-lockup img{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(255,97,139,.28))}

.vc-glass-action-dock{position:relative;isolation:isolate;display:grid!important;grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px;width:min(100%,430px);min-height:76px;margin:0 auto;padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:26px!important;background:radial-gradient(circle at 50% -30%,var(--soft),transparent 55%),linear-gradient(145deg,rgba(24,27,22,.82),rgba(24,27,22,.88))!important;box-shadow:inset 0 1px 0 transparent,0 18px 42px rgba(54,53,35,.14)!important;}
.vc-glass-action-dock .act{align-self:center;justify-self:center;width:54px!important;height:54px!important;min-width:44px;min-height:44px;border:1px solid var(--line)!important;background:linear-gradient(145deg,var(--soft),var(--soft))!important;box-shadow:inset 0 1px 0 transparent,0 8px 18px rgba(54,53,35,.14)!important}
.vc-glass-action-dock .act-like{width:62px!important;height:62px!important;border-color:rgba(255,153,193,.22)!important;background:radial-gradient(circle at 32% 20%,var(--soft),transparent 26%),linear-gradient(145deg,rgba(255,95,144,.25),rgba(126,83,224,.19))!important;box-shadow:inset 0 1px 0 transparent,0 10px 25px rgba(255,76,138,.19)!important}
.vc-glass-action-dock .act .vc-glass-icon{width:43px;height:43px}.vc-glass-action-dock .act-like .vc-glass-icon{width:51px;height:51px}.vc-glass-action-dock .act:hover{transform:translateY(-3px) scale(1.04)!important;filter:saturate(1.1)}
.photo-nav{top:50%;display:grid;place-items:center;width:48px;height:56px;padding:4px!important;border:0!important;border-radius:0!important;background:rgba(0,0,0,0)!important;background-color:rgba(0,0,0,0)!important;background-image:none!important;color:#fff;box-shadow:none!important;appearance:none!important;-webkit-appearance:none!important;text-shadow:none;transform:translateY(-50%)}.photo-nav:hover,.photo-nav:focus-visible{background:rgba(0,0,0,0)!important;background-color:rgba(0,0,0,0)!important;background-image:none!important}.photo-nav:focus-visible{outline:3px solid var(--coral)!important;outline-offset:2px!important;border-radius:14px!important}.photo-nav .vc-photo-nav-icon{width:38px;height:38px;filter:drop-shadow(0 3px 7px rgba(0,0,0,.72))}.chat-match-next .vc-chat-next-icon{width:29px;height:29px}#install-btn{display:flex;align-items:center;justify-content:center;gap:7px}#install-btn .vc-install-inline-icon{flex:0 0 28px;width:28px;height:28px}#offline-banner>span{display:inline-flex;align-items:center;justify-content:center;gap:7px}#offline-banner .vc-offline-inline-icon{flex:0 0 23px;width:23px;height:23px}

.vc-icon-glass{display:grid!important;place-items:center}.chat-compact-view .chat-back .vc-glass-icon,.chat-compact-view #vc-chat-block .vc-glass-icon,.chat-down .vc-glass-icon{width:30px;height:30px}.chat-compact-view .chat-composer .vc-glass-icon{width:31px;height:31px}.chat-compact-view .chat-composer .c-send .vc-glass-icon{width:34px;height:34px}.chat-compact-view .chat-composer .c-add svg,.chat-compact-view .chat-composer .c-send svg{display:none}
.chat-quick-actions{position:relative;isolation:isolate;gap:6px!important;padding:6px;border:1px solid var(--line);border-radius:17px;background:radial-gradient(circle at 50% -25%,var(--soft),transparent 58%),rgba(24,27,22,.32);box-shadow:inset 0 1px 0 transparent}
.chat-quick-action{grid-template-columns:34px minmax(0,1fr)!important;gap:5px!important;min-height:48px!important;padding:5px 7px!important;border-radius:13px!important;overflow:hidden;transition:transform .18s ease,border-color .18s ease,filter .18s ease!important}.chat-quick-action>.vc-glass-icon{width:34px;height:34px}.chat-quick-action>strong{font-size:9px!important;line-height:1.15!important}.chat-quick-action.profile{background:linear-gradient(145deg,rgba(99,174,255,.11),var(--soft))}.chat-quick-action.gift{background:linear-gradient(145deg,rgba(255,196,81,.13),rgba(255,119,185,.045))}.chat-quick-action.wish{background:linear-gradient(145deg,rgba(77,221,211,.1),rgba(255,116,159,.045))}.chat-quick-action:hover{transform:translateY(-2px);filter:saturate(1.12) brightness(1.08)}
.vc-chat-action-menu>button>span{padding:3px}.vc-chat-action-menu>button>span .vc-glass-icon{width:32px;height:32px}.badge-icon{padding:2px;overflow:hidden}.badge-icon .vc-badge-glass-icon{width:38px;height:38px}.badge-ring .vc-badge-glass-icon{width:39px;height:39px}

@media(max-width:768px){.vc-glass-action-dock{width:min(100%,390px);gap:4px;min-height:70px;padding:6px!important;border-radius:22px!important}.vc-glass-action-dock .act{width:50px!important;height:50px!important}.vc-glass-action-dock .act-like{width:58px!important;height:58px!important}.vc-glass-action-dock .act .vc-glass-icon{width:40px;height:40px}.vc-glass-action-dock .act-like .vc-glass-icon{width:48px;height:48px}.chat-quick-action{grid-template-columns:1fr!important;justify-items:center;gap:1px!important;min-height:57px!important;padding:3px!important}.chat-quick-action>.vc-glass-icon{width:36px;height:36px}.chat-quick-action>strong{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;display:block!important;text-align:center;font-size:8px!important;-webkit-line-clamp:1!important}.chat-compact-view #vc-chat-context{max-height:min(210px,33dvh)!important;overflow-y:auto!important;overflow-x:hidden!important}.chat-compact-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){.vc-glass-action-dock{gap:2px}.vc-glass-action-dock .act{width:47px!important;height:47px!important}.vc-glass-action-dock .act-like{width:54px!important;height:54px!important}.chat-quick-actions{gap:3px!important;padding:4px}.chat-quick-action>.vc-glass-icon{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){.nav-item>.vc-glass-icon,.bn-item>.vc-glass-icon,.chat-quick-action,.vc-glass-action-dock .act{transition:none!important}}

/* Unified semantic GLASS icons: profile, modals, progress, filters and settings. */
.vc-semantic-icon{flex:0 0 auto}.vc-icon-glass>.vc-glass-icon,.tool-btn>.vc-glass-icon,.filter-cog>.vc-glass-icon{width:28px;height:28px}
.vc-modal-icon{padding:4px;overflow:hidden}.vc-modal-icon .vc-modal-glass-icon{width:44px;height:44px;filter:drop-shadow(0 9px 16px rgba(171,101,255,.3))}.vc-modal-icon>.vc-badge-glass-icon{flex:0 0 42px;width:42px!important;height:42px!important;max-width:42px;max-height:42px;object-fit:contain}.vc-modal-x{padding:8px}.vc-modal-x .vc-modal-close-icon{width:22px;height:22px}
.vc-progress-icon{padding:3px}.vc-progress-icon .vc-progress-glass-icon{width:31px;height:31px}.chat-insight-stack>.vc-progress-card:not(.is-active) .vc-progress-glass-icon{width:23px;height:23px}
.vc-context-icon>span{display:grid;place-items:center;width:51px;height:51px;font-size:0}.vc-context-icon>span .vc-context-glass-icon{width:47px;height:47px}.vc-context-icon>i{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,#fff 0 23%,#9df7ff 25% 42%,rgba(255,127,190,.85) 44% 55%,transparent 58%);box-shadow:0 0 10px rgba(157,247,255,.72)}.vc-context-cta.is-compact .vc-context-icon>span,.vc-context-cta.is-micro .vc-context-icon>span{width:100%;height:100%}.vc-context-cta.is-compact .vc-context-icon>span .vc-glass-icon{width:39px;height:39px}.vc-context-cta.is-micro .vc-context-icon>span .vc-glass-icon{width:34px;height:34px}.vc-context-action-icon{width:22px;height:22px}
.vc-search-glass-icon,.vc-chat-search-icon{flex:0 0 21px;width:21px!important;height:21px!important}.r-search>.vc-search-glass-icon{margin-left:11px}.chat-list-tools label>.vc-chat-search-icon{margin-left:10px}.discover-filter-dock .filter-cap:first-child{display:flex;align-items:center;gap:6px}.vc-filter-location-icon{width:20px!important;height:20px!important}.vc-info-glass-icon{flex:0 0 18px;width:18px!important;height:18px!important}.info-chip .vc-info-glass-icon{width:16px!important;height:16px!important}
.vc-profile-symbol{display:inline-flex!important;align-items:center;gap:6px;min-width:0}.vc-profile-symbol-icon{display:block;flex:0 0 23px;width:23px;height:23px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(76,35,118,.35))}.info-chip .vc-profile-symbol-icon{flex-basis:20px;width:20px;height:20px}.pp-chips .vc-profile-symbol{padding:6px 10px 6px 7px}.pp-chips .vc-profile-symbol-icon{flex-basis:24px;width:24px;height:24px}.zodiac-badge.vc-profile-symbol,.daily-status.vc-profile-symbol{width:fit-content}.zodiac-badge .vc-profile-symbol-icon,.daily-status .vc-profile-symbol-icon{flex-basis:32px;width:32px;height:32px}.daily-status.vc-profile-symbol{font-style:normal}
.vc-rank-emblem{display:grid;place-items:center;flex:0 0 auto;width:100%;height:100%}.vc-rank-emblem img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(63,22,99,.38));pointer-events:none}.medal{display:grid;place-items:center;width:48px;height:48px;font-size:0}.medal .vc-podium-rank-icon{width:48px;height:48px}.rk{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px}.rk .vc-list-rank-icon{width:38px;height:38px}@media(max-width:480px){.medal,.medal .vc-podium-rank-icon{width:43px;height:43px}.rk{flex-basis:34px;width:34px;height:34px}.rk .vc-list-rank-icon{width:34px;height:34px}}
.vp-edit .vc-profile-edit-icon{width:27px;height:27px}.vc-photo-main,.vc-photo-del{position:absolute;top:5px;padding:4px!important;border-radius:10px!important;background:rgba(24,27,22,.76)!important;color:#fff!important}.vc-photo-main{left:5px}.vc-photo-del{right:5px;background:rgba(24,27,22,.78)!important}.vc-photo-action-icon{width:28px!important;height:28px!important}.own-profile-photo-empty span{width:42px;height:42px;background:transparent}.own-profile-photo-empty .vc-profile-empty-icon{width:40px;height:40px}.vc-profile-add-photo{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 10px;border:1px solid var(--coral);border-radius:11px;background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));color:var(--c-accent);cursor:pointer}.vc-profile-add-icon{width:24px!important;height:24px!important}.profile-missing{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center!important;gap:2px 7px!important;text-align:left!important}.profile-missing small{grid-column:1/-1}.profile-complete-ok{display:flex;align-items:center;gap:7px}.vc-profile-status-icon{width:25px!important;height:25px!important}
.own-profile-gallery #vc-photo-add{min-height:44px}
.own-profile-card .vc-context-cta.is-micro .vc-context-actions button{min-height:44px}
.own-profile-action{display:flex!important;align-items:center;justify-content:center;gap:7px!important;border:1px solid var(--line)!important;background:linear-gradient(145deg,var(--soft),var(--soft))!important;color:var(--text2)!important;box-shadow:inset 0 1px 0 transparent;cursor:pointer;transition:transform .18s,border-color .18s,background .18s}.own-profile-action:hover{transform:translateY(-2px);border-color:var(--coral)!important;background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft))!important;color:#fff!important}.own-profile-action .vc-profile-action-icon{flex:0 0 32px;width:32px;height:32px}.own-profile-view #vc-prof-hub{background:linear-gradient(145deg,var(--accent-soft),var(--soft))!important;color:var(--c-accent)!important}.own-profile-view #vc-prof-likes{background:linear-gradient(145deg,rgba(255,112,145,.1),rgba(255,172,122,.04))!important;color:var(--c-accent)!important}.own-profile-view #vc-prof-settings{width:100%;min-height:48px;padding:9px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,var(--soft),var(--soft));color:var(--text2);font-size:12px;font-weight:700;cursor:pointer}
.vc-labelled-glass-button{display:inline-flex!important;align-items:center!important;justify-content:center;gap:8px!important}.vc-labelled-glass-button>.vc-glass-icon{flex:0 0 27px;width:27px;height:27px}.vc-settings-heading-icon{display:flex;align-items:center;gap:7px}.vc-settings-heading-icon>.vc-glass-icon{width:25px;height:25px}.vc-theme-switch button>span{display:grid!important;place-items:center;width:40px!important;height:40px!important;font-size:0!important}.vc-theme-switch button>span>.vc-glass-icon{width:38px;height:38px}.activity-tab-row>.vc-labelled-glass-button>.vc-glass-icon{width:26px;height:26px}.activity-notifications>.vc-glass-icon{width:28px;height:28px}.chat-match-all-avatar>.vc-glass-icon{width:46px;height:46px}.chat-match-photo-count{display:inline-flex!important;align-items:center;gap:2px}.chat-match-photo-count .vc-chat-photo-count-icon{width:13px!important;height:13px!important}.pp-hero-info p{display:flex;align-items:center;gap:5px}.pp-hero-info .vc-profile-location-icon{width:21px;height:21px}.pp-hero-info .vc-profile-premium-icon{display:inline-block;width:26px;height:26px;vertical-align:middle}
@media(max-width:640px){.vc-modal-icon .vc-modal-glass-icon{width:40px;height:40px}.vc-progress-icon .vc-progress-glass-icon{width:27px;height:27px}.vc-context-icon>span .vc-context-glass-icon{width:42px;height:42px}.own-profile-action .vc-profile-action-icon{width:29px;height:29px}.vc-theme-switch button>span{width:36px!important;height:36px!important}.vc-theme-switch button>span>.vc-glass-icon{width:34px;height:34px}}
.daily-inline .ico{display:grid;place-items:center}.daily-inline .ico>.vc-glass-icon{width:31px;height:31px}.stat-ico>.vc-glass-icon{width:36px;height:36px}.filter-bar .filter-cap:first-child{display:flex;align-items:center;gap:6px}.filter-bar .filter-cap .vc-filter-location-icon{width:19px!important;height:19px!important}
.pp-thumb>span,.pp-gallery-lock{display:flex!important;align-items:center!important;justify-content:center!important;gap:3px!important}.pp-thumb>span>.vc-glass-icon{width:17px;height:17px}.pp-gallery-lock>.vc-glass-icon{width:25px;height:25px}.pp-actions .vc-glass-icon,.pp-safety .vc-glass-icon,.pp-sub button>.vc-glass-icon{width:28px;height:28px}.pp-gift>span>.vc-glass-icon{width:36px;height:36px}.pp-gift-empty-icon span>.vc-glass-icon{width:48px;height:48px}.pp-gift-empty-icon>i{width:9px;height:9px;border-radius:50%;background:#c6fbff;box-shadow:0 0 12px #74e9ff}.pp-gift-empty button>.vc-glass-icon{width:30px;height:30px}
.vc-notification-summary .vc-progress-card>span{display:grid;place-items:center}.vc-notification-summary .vc-progress-card>span>.vc-glass-icon{width:31px;height:31px}.vc-notification-item>span{display:grid;place-items:center}.vc-notification-item>span>.vc-notification-glass-icon{width:38px;height:38px}.vc-notification-item>[data-notice-profile]{width:38px;height:38px;padding:5px;border-radius:12px}.vc-notification-item>[data-notice-profile]>.vc-glass-icon{width:27px;height:27px}
.vc-hub-event-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.vc-hub-event-row>span{display:grid;place-items:center}.vc-hub-event-icon{width:36px!important;height:36px!important}.vc-hub-event-row>div>div:not(.sr-sub){font-size:12px;color:var(--text2)}.vc-game-glass-icon{width:42px!important;height:42px!important}.vc-step-check-icon{width:22px!important;height:22px!important}.vc-stepper i>.vc-glass-icon,.vc-quest-state-icon>.vc-glass-icon{width:22px;height:22px}.vc-quest-state-icon{display:inline-grid;place-items:center}
.store-method-head>span{display:grid!important;place-items:center!important}.store-method-head>span>.vc-glass-icon{width:43px;height:43px}.pack-ico>.vc-store-pack-icon{width:39px;height:39px}.store-live-promo-icon>.vc-glass-icon{width:50px;height:50px}.boost-card .bc-ico>.vc-glass-icon{width:50px;height:50px}.vc-store-check-icon{display:inline-block;width:22px!important;height:22px!important}.trial-btn>.vc-glass-icon{width:30px;height:30px}
.vc-gift-picker-head>strong{display:flex;align-items:center;gap:8px}.vc-gift-picker-head>strong>.vc-glass-icon{width:34px;height:34px}.vc-gift-picker-head>[data-close]>.vc-glass-icon{width:24px;height:24px}.vc-gift-filter>.vc-glass-icon{width:24px;height:24px}.vc-gift-fallback-icon{width:58px!important;height:58px!important}.chat-gift-fallback>.vc-glass-icon{width:50px;height:50px}
.guest-photo-picker #vc-gate-preview>.vc-gate-photo-icon{width:66px;height:66px}.onb-smart{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;column-gap:8px}.onb-smart>.vc-glass-icon{grid-row:1/3;width:34px;height:34px}.onb-smart>strong{min-width:0}.look-btn>.vc-glass-icon{width:25px;height:25px}
@media(max-height:860px){
  .auth-wrap-onboarding{padding:10px calc(14px + var(--safe-right)) 10px calc(14px + var(--safe-left))}
  .auth-wrap-onboarding .onboarding{max-width:360px;gap:3px}
  .auth-wrap-onboarding .onb-logo{margin-bottom:3px;font-size:26px}
  .auth-wrap-onboarding .onb-logo>img{width:42px;height:42px}
  .auth-wrap-onboarding .onb-title{font-size:23px;line-height:1.1}
  .auth-wrap-onboarding .onb-sub{margin:2px 0 7px;font-size:12px}
  .auth-wrap-onboarding .onb-card{padding:14px 16px;gap:8px;border-radius:18px}
  .auth-wrap-onboarding .gender-btn{gap:4px;padding:8px}
  .auth-wrap-onboarding .gender-btn .vc-guest-gender-icon{width:46px;height:46px}
  .auth-wrap-onboarding .onb-looking{grid-template-columns:repeat(3,minmax(0,1fr))}
  .auth-wrap-onboarding .look-btn{min-height:40px;padding:5px 3px}
  .auth-wrap-onboarding .onb-card .onb-step[style]{margin-top:1px!important}
  .auth-wrap-onboarding .onb-age input[type=number]{min-height:40px;padding-block:8px}
  .auth-wrap-onboarding .onb-city-picker input{min-height:42px;padding-block:9px}
  .auth-wrap-onboarding .onb-cta{margin-top:2px;padding:11px}
  .auth-wrap-onboarding .onb-auth{margin-top:5px}
}
@media(max-height:620px) and (max-width:480px){.auth-wrap{padding:10px 12px}.onboarding{gap:3px}.onb-logo{margin-bottom:3px}.onb-title{font-size:23px}.onb-sub{margin-bottom:7px}.onb-card{padding:14px;gap:9px;border-radius:18px}.gender-btn{gap:5px;padding:9px 8px}.gender-btn .vc-guest-gender-icon{width:48px;height:48px}.onb-looking{grid-template-columns:repeat(3,minmax(0,1fr))}.look-btn{min-height:44px}.onb-card .onb-step[style]{margin-top:1px!important}.onb-cta{margin-top:3px;padding:12px}.onb-auth{margin-top:6px}}
@media(max-width:640px){.vc-notification-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.vc-hub-event-row{grid-template-columns:34px minmax(0,1fr)}.vc-hub-event-row>.set-btn{grid-column:2}.store-method-head>span>.vc-glass-icon{width:38px;height:38px}.pp-actions .vc-glass-icon{width:25px;height:25px}}

/* Hosted crypto checkout: one clear choice, then one secure payment step. */
.crypto-checkout-card{border-color:rgba(116,226,194,.28)!important;background:radial-gradient(circle at 95% 0,rgba(84,218,188,.12),transparent 35%),linear-gradient(145deg,var(--soft),var(--soft))}.crypto-network-title{margin:2px 0 -4px;color:var(--text2);font-size:11px;font-weight:800}.crypto-network-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.crypto-network{display:grid;gap:3px;min-width:0;padding:10px 8px;border:1px solid var(--line);border-radius:13px;background:var(--soft);color:var(--text);text-align:left;cursor:pointer;transition:.18s ease}.crypto-network strong{font-size:11px;white-space:nowrap}.crypto-network small{color:var(--text3);font-size:9px}.crypto-network:hover,.crypto-network.is-selected{border-color:rgba(91,222,190,.72);background:rgba(91,222,190,.12);box-shadow:0 8px 22px rgba(48,205,168,.12)}.store-anchor small{display:block;color:var(--text3);font-size:10px;font-weight:700}.vc-crypto-hosted-modal{z-index:10000;background:rgba(24,27,22,.78);}.vc-crypto-hosted-card{width:min(440px,100%);padding:22px;border:1px solid rgba(116,226,194,.28);border-radius:24px;background:linear-gradient(155deg,rgba(24,27,22,.98),rgba(24,27,22,.98));box-shadow:0 26px 80px rgba(24,27,22,.5)}.vc-crypto-hosted-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.vc-crypto-hosted-head strong{display:block;margin-top:5px;font-size:20px}.vc-crypto-hosted-head .eyebrow{color:var(--c-green);font-size:9px;font-weight:900;letter-spacing:.14em}.crypto-hosted-network{display:flex;justify-content:space-between;align-items:center;margin:14px 0;padding:11px 13px;border-radius:13px;background:rgba(102,222,192,.1);color:var(--text2);font-size:12px}.crypto-hosted-network strong{color:var(--c-green)}.vc-crypto-hosted-card p{color:var(--text2);font-size:12px;line-height:1.55}.vc-primary-cta{width:100%;min-height:48px;border:0;border-radius:14px;background:linear-gradient(135deg,#5bd9b4,#55a8ff);color:#071218;font-weight:900;cursor:pointer;box-shadow:0 12px 26px rgba(77,211,181,.2)}.vc-crypto-trust{display:block;margin-top:10px;color:var(--text3);font-size:10px;text-align:center}.vc-message-toast{position:fixed;right:20px;bottom:calc(22px + var(--safe-bottom));z-index:9998;display:grid;grid-template-columns:40px minmax(0,1fr) 24px;gap:10px;align-items:center;width:min(360px,calc(100vw - 32px));padding:12px 12px 12px 10px;border:1px solid rgba(113,221,194,.3);border-radius:18px;background:linear-gradient(145deg,rgba(24,27,22,.97),rgba(24,27,22,.97));color:var(--text);text-align:left;box-shadow:0 18px 42px rgba(54,53,35,.14);cursor:pointer;animation:vcMessageToastIn .3s ease both}.vc-message-toast-avatar{width:40px;height:40px;border-radius:13px;background:center/cover no-repeat,linear-gradient(135deg,#76d9bf,#7e6cf1);display:grid;place-items:center;color:#fff;font-weight:900}.vc-message-toast-copy{min-width:0}.vc-message-toast-copy strong,.vc-message-toast-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-message-toast-copy strong{font-size:12px}.vc-message-toast-copy span{margin-top:3px;color:var(--text2);font-size:11px}.vc-message-toast-close{border:0;background:transparent;color:var(--text3);font-size:18px;cursor:pointer}.vc-message-toast.is-leaving{animation:vcMessageToastOut .22s ease both}@keyframes vcMessageToastIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes vcMessageToastOut{to{opacity:0;transform:translateY(10px) scale(.97)}}

.premium-value-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(260px,1.1fr);gap:14px;align-items:center;margin:0 0 12px;padding:15px;border:1px solid rgba(255,194,110,.22);border-radius:18px;background:radial-gradient(circle at 5% 0,rgba(255,181,91,.13),transparent 42%),var(--soft)}.premium-value-card span,.premium-value-card strong{display:block}.premium-value-card span{color:var(--c-gold);font-size:8px;font-weight:900;letter-spacing:.1em}.premium-value-card strong{margin-top:5px;font-size:15px}.premium-value-card ul{display:grid;gap:5px;margin:0;padding:0;list-style:none;color:var(--text2);font-size:10px}.premium-value-card>small{grid-column:1/-1;color:var(--text3);font-size:9px}
@media(max-width:640px){.crypto-network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vc-message-toast{right:12px;bottom:calc(82px + var(--safe-bottom));width:calc(100vw - 24px)}.vc-signal-toast{right:8px;grid-template-columns:minmax(0,1fr) 44px;gap:2px;width:calc(100vw - 16px);min-height:56px;padding:6px 4px 6px 10px}.vc-signal-toast .vc-notice__open{grid-template-columns:32px minmax(0,1fr);gap:8px}.vc-signal-toast .vc-notice__cta{display:none}.vc-signal-toast .vc-notice__close{grid-column:2;grid-row:1;width:44px;height:44px}.vc-signal-toast .vc-notice__copy{grid-column:2;grid-row:1;display:flex;align-items:baseline;gap:6px;overflow:hidden;white-space:nowrap}.vc-signal-toast .vc-notice__copy strong{flex:0 1 auto;max-width:42%;font-size:11px}.vc-signal-toast .vc-notice__copy span{flex:1 1 auto;min-width:0;margin:0;font-size:10px}.vc-signal-toast .vc-notice__icon{grid-column:1;grid-row:1;width:32px;height:32px}.vc-signal-toast .vc-notice__glyph{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.vc-signal-toast{animation:none}.vc-signal-toast.is-leaving{animation:none;opacity:0}.vc-progress-card,.vc-notification-item{transition:none}}

.vc-gift-picker-head button{width:44px;height:44px}
.chat-match-next{top:10px;width:44px;height:44px}
.chat-sticker-draft>[data-sticker-draft-clear]{flex-basis:44px!important;width:44px!important;height:44px!important}
.vc-chat-status-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;color:#fff;font-size:10px;line-height:1.2}.vc-chat-status-icon{width:22px!important;height:22px!important}.vc-chat-status-pill>span{white-space:nowrap}
.vc-overlay-close,.lightbox button[data-close]{display:grid;place-items:center;width:38px;height:38px;padding:7px!important;border:1px solid var(--line)!important;border-radius:12px!important;background-color:var(--soft)!important;background-image:url('/app/assets/glass/icon-close.png')!important;background-position:center!important;background-repeat:no-repeat!important;background-size:24px 24px!important;color:transparent!important;font-size:0!important;cursor:pointer}.vc-overlay-close>.vc-glass-icon,.lightbox button[data-close]>.vc-glass-icon{width:24px;height:24px}.vc-flip-horizontal{transform:scaleX(-1)}.pp-lb-close>.vc-glass-icon,.pp-lb-prev>.vc-glass-icon,.pp-lb-next>.vc-glass-icon{width:31px;height:31px}

/* Chat stickers: compact attachment menu, dual character packs and bubbleless messages. */
.chat-compact-view .chat-attach-menu{position:absolute;z-index:18;left:calc(10px + var(--safe-left));bottom:calc(var(--chat-composer-height,62px) + 8px);display:grid;gap:6px;width:min(270px,calc(100% - 20px - var(--safe-left) - var(--safe-right)));padding:8px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(24,27,22,.98),rgba(24,27,22,.98));box-shadow:0 18px 48px rgba(24,27,22,.5),inset 0 1px 0 transparent}
.chat-compact-view .chat-attach-menu[hidden]{display:none!important}.chat-attach-menu>button{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-height:58px;padding:6px 10px 6px 7px;border:1px solid transparent;border-radius:14px;color:var(--text);text-align:left;transition:transform .16s,border-color .16s,background .16s}.chat-attach-menu>button:hover,.chat-attach-menu>button:focus-visible{border-color:var(--line);background:var(--soft);transform:translateY(-1px);outline:none}.chat-attach-menu>button>.vc-glass-icon{width:46px;height:46px}.chat-attach-menu>button>span,.chat-attach-menu strong,.chat-attach-menu small{display:block;min-width:0}.chat-attach-menu strong{font-size:13px}.chat-attach-menu small{margin-top:1px;color:var(--text3);font-size:10px;line-height:1.3}.chat-compact-view .chat-composer .c-add.is-open{border-color:rgba(167,125,255,.34);background:rgba(167,125,255,.12)}
.chat-compact-view .chat-composer .c-express{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;border:1px solid var(--coral);border-radius:14px;background:linear-gradient(145deg,var(--accent-soft),var(--accent-soft));box-shadow:inset 0 1px 0 transparent}.chat-compact-view .chat-composer .c-express:hover{border-color:var(--coral);transform:translateY(-1px)}.chat-compact-view .chat-composer .c-express>.vc-glass-icon{width:31px;height:31px}
.chat-floating-gift{position:absolute;z-index:12;right:16px;bottom:calc(var(--chat-composer-height,62px) + 16px);display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,196,92,.24);border-radius:16px;background:radial-gradient(circle at 28% 18%,rgba(255,235,174,.18),transparent 42%),linear-gradient(145deg,rgba(255,176,76,.18),rgba(168,92,226,.13));box-shadow:0 14px 34px rgba(54,53,35,.14),inset 0 1px 0 transparent;animation:vcGiftButtonFloat 3.4s ease-in-out infinite}.chat-floating-gift>.vc-glass-icon{width:39px;height:39px}.chat-floating-gift:hover{border-color:rgba(255,204,105,.42);filter:brightness(1.08)}.chat-down{right:76px}
.vc-expression-switch{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:4px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}.vc-expression-switch>button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:42px;padding:5px 10px;border:1px solid transparent;border-radius:11px;color:var(--text3);font-size:11px;font-weight:850}.vc-expression-switch>button>.vc-glass-icon{width:29px;height:29px}.vc-expression-switch>button.is-active,.vc-expression-switch>button[aria-selected="true"]{border-color:var(--coral);background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));color:var(--text)}
.vc-emoji-title>.vc-glass-icon{width:29px;height:29px}

@keyframes vcGiftButtonFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
@media(max-width:768px),(pointer:coarse){.chat-compact-view .chat-composer .c-express{flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px}.chat-floating-gift{right:calc(10px + var(--safe-right));bottom:calc(var(--chat-composer-height,62px) + 12px)}.chat-down{right:calc(68px + var(--safe-right))}}
@media(prefers-reduced-motion:reduce){.chat-floating-gift{animation:none}}
.vc-sticker-layer{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:20px;background:rgba(24,27,22,.72);animation:vcStickerFade .16s ease-out}.vc-sticker-picker{width:min(560px,100%);max-height:min(78dvh,680px);padding:14px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:24px;background:radial-gradient(circle at 12% 0,rgba(255,113,170,.13),transparent 34%),radial-gradient(circle at 88% 4%,rgba(100,203,255,.12),transparent 34%),linear-gradient(150deg,#241d2c,#121018 74%);box-shadow:0 30px 90px rgba(24,27,22,.5),inset 0 1px 0 transparent;animation:vcStickerRise .2s cubic-bezier(.2,.8,.2,1)}
.vc-sticker-layer.is-chat-expression{display:block;padding:0;background:transparent;animation:none}.vc-sticker-layer.is-chat-expression .vc-sticker-picker{position:fixed;max-height:none;box-sizing:border-box;animation:vcStickerRise .16s cubic-bezier(.2,.8,.2,1)}
.vc-sticker-head,.vc-sticker-head>div,.vc-sticker-tabs>button{display:flex;align-items:center}.vc-sticker-head{justify-content:space-between;gap:14px}.vc-sticker-head>div{gap:9px;min-width:0}.vc-sticker-head>div>span{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px}.vc-sticker-head>div>span>.vc-glass-icon{width:42px;height:42px}.vc-sticker-head strong,.vc-sticker-head small{display:block}.vc-sticker-head strong{font-size:16px}.vc-sticker-head small{margin-top:1px;color:var(--text3);font-size:10px}.vc-sticker-head>[data-sticker-close]{flex:0 0 40px;width:40px;height:40px;padding:7px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.vc-sticker-head>[data-sticker-close]>.vc-glass-icon{width:26px;height:26px}
.vc-sticker-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:7px;margin:11px 0 10px;padding:4px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.vc-sticker-tabs>button{justify-content:center;gap:6px;min-width:0;min-height:44px;padding:5px 8px;border:1px solid transparent;border-radius:12px;color:var(--text3);font-size:12px;font-weight:800;transition:background .16s,border-color .16s,color .16s}.vc-sticker-tabs>button>.vc-glass-icon,.vc-sticker-pack-preview{display:block;flex:0 0 31px;width:31px;height:31px;object-fit:contain}.vc-sticker-tabs>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-sticker-tabs>button.is-active{border-color:var(--line);background:linear-gradient(135deg,rgba(255,109,162,.14),rgba(111,160,255,.12));color:#fff;box-shadow:inset 0 1px 0 transparent}.vc-sticker-tabs>button.is-flirt.is-active{border-color:rgba(255,145,189,.24);background:linear-gradient(135deg,rgba(255,86,148,.2),rgba(170,94,255,.16));box-shadow:inset 0 1px 0 transparent,0 7px 22px rgba(224,64,136,.1)}
.vc-sticker-tabs>button.is-premium{position:relative;border-color:rgba(247,193,92,.22);color:var(--c-gold)}.vc-sticker-tabs>button.is-premium.is-active{border-color:rgba(255,205,103,.42);background:linear-gradient(135deg,rgba(255,194,82,.2),rgba(171,96,255,.2));color:var(--c-gold);box-shadow:inset 0 1px 0 transparent,0 8px 24px rgba(245,181,64,.12)}.vc-sticker-tab-lock{position:absolute;top:3px;right:5px;color:var(--c-gold);font-size:10px;line-height:1}.vc-sticker-premium-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:10px 12px;border:1px solid rgba(247,193,92,.25);border-radius:15px;background:linear-gradient(135deg,rgba(255,194,82,.13),rgba(171,96,255,.13));color:var(--c-gold)}.vc-sticker-premium-banner>div{min-width:0}.vc-sticker-premium-banner strong,.vc-sticker-premium-banner small{display:block}.vc-sticker-premium-banner strong{font-size:12px}.vc-sticker-premium-banner small{margin-top:2px;color:rgba(255,243,196,.72);font-size:10px;line-height:1.3}.vc-sticker-premium-banner button{flex:0 0 auto;padding:8px 11px;border:1px solid rgba(255,220,137,.34);border-radius:11px;background:linear-gradient(135deg,#f5bd58,#a866f2);color:#24172e;font:inherit;font-size:11px;font-weight:900;cursor:pointer;box-shadow:0 7px 18px rgba(237,173,67,.18)}.vc-sticker-premium-banner button:hover,.vc-sticker-premium-banner button:focus-visible{filter:brightness(1.08);outline:2px solid rgba(255,222,143,.45);outline-offset:2px}.vc-sticker-price-note{color:var(--text3);font-size:11px}.vc-sticker-option.is-locked{cursor:not-allowed;filter:saturate(.55);opacity:.62}.vc-sticker-option.is-locked:after{content:'♛';position:absolute;right:7px;top:5px;color:var(--c-gold);font-size:14px;text-shadow:0 2px 8px rgba(24,27,22,.6)}.vc-sticker-option.is-locked:hover{transform:none;border-color:rgba(247,193,92,.16);background:linear-gradient(145deg,rgba(255,194,82,.08),rgba(171,96,255,.06))}
.vc-sticker-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.vc-sticker-option{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:3px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,var(--soft),var(--soft));overflow:hidden;transition:transform .16s,border-color .16s,background .16s}.vc-sticker-option:hover,.vc-sticker-option:focus-visible{z-index:1;transform:translateY(-2px) scale(1.025);border-color:rgba(255,141,188,.3);background:linear-gradient(145deg,rgba(255,133,182,.11),rgba(111,181,255,.07));outline:none}.vc-sticker-option:active{transform:scale(.96)}.vc-sticker-option img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.24));pointer-events:none}
.chat-compact-view .msg-wrap.is-sticker{width:auto;max-width:230px!important}.chat-compact-view .bub.chat-sticker-bubble{padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important}.chat-sticker{display:block;width:clamp(148px,34vw,210px);height:auto;max-height:230px;object-fit:contain;filter:drop-shadow(0 11px 14px rgba(0,0,0,.24));user-select:none;-webkit-user-select:none}.msg-wrap.is-sticker .bub-footer{padding-inline:6px}.msg-wrap.is-sticker.is-failed .bub-footer{flex-wrap:wrap}
.chat-sticker-draft{position:absolute;z-index:17;left:58px;bottom:calc(100% + 7px);display:flex;align-items:center;gap:4px;max-width:min(230px,calc(100% - 116px));padding:4px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(24,27,22,.98),rgba(24,27,22,.98));box-shadow:0 12px 34px rgba(54,53,35,.14)}.chat-sticker-draft>button{display:flex;align-items:center;min-width:0;border:0;color:var(--text)}.chat-sticker-draft>[data-sticker-draft-send]{flex:1;gap:7px;padding:0 7px 0 0;text-align:left}.chat-sticker-draft>[data-sticker-draft-send]>img{display:block;flex:0 0 38px;width:38px;height:38px;object-fit:contain}.chat-sticker-draft>[data-sticker-draft-send]>span,.chat-sticker-draft>[data-sticker-draft-send] strong,.chat-sticker-draft>[data-sticker-draft-send] small{display:block;min-width:0}.chat-sticker-draft>[data-sticker-draft-send] strong{font-size:11px}.chat-sticker-draft>[data-sticker-draft-send] small{color:var(--text3);font-size:9px}.chat-sticker-draft>[data-sticker-draft-clear]{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;padding:5px;border-radius:11px;background:var(--soft)}.chat-sticker-draft>[data-sticker-draft-clear]>.vc-glass-icon{width:24px;height:24px}.chat-sticker-draft>button:focus-visible{outline:2px solid rgba(255,141,188,.54);outline-offset:1px}

@media(max-width:600px){.vc-sticker-layer{place-items:end center;padding:0}.vc-sticker-picker{width:100%;max-height:min(82dvh,650px);padding:12px calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left));border-width:1px 0 0;border-radius:24px 24px 0 0}.vc-sticker-tabs{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.vc-sticker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.vc-sticker-option{max-height:112px;border-radius:15px}.vc-sticker-head small{font-size:9px}.chat-sticker{width:clamp(148px,46vw,190px)}}
@media(max-height:620px) and (max-width:600px){.vc-sticker-picker{max-height:94dvh}.vc-sticker-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.vc-sticker-option{max-height:86px}.vc-sticker-head small{display:none}.vc-sticker-tabs{margin-block:7px}}
@media(prefers-reduced-motion:reduce){.vc-sticker-layer,.vc-sticker-picker{animation:none}.vc-sticker-option,.chat-attach-menu>button{transition:none}}
@keyframes vcStickerFade{from{opacity:0}to{opacity:1}}@keyframes vcStickerRise{from{opacity:.7;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}

/* The public-profile center pane can be narrow even on a wide desktop shell.
   Size actions by their own container instead of the browser viewport. */
@container public-profile-content (max-width:440px){
  .pp-actions{gap:5px;padding:6px}
  .pp-actions button,.pp-actions .primary{min-height:46px;padding-inline:3px;font-size:8.5px!important;line-height:1!important;gap:3px!important}
  .pp-actions button>.vc-glass-icon{width:18px!important;height:18px!important;flex:0 0 18px!important}
}

/* Live signal notifications stay at the bottom so the masthead and chat
   context remain readable. Keep them above the composer/bottom navigation. */
.vc-signal-toast{top:auto!important;bottom:calc(92px + var(--safe-bottom))!important;animation-name:vcNoticeInBottom!important}
@media(max-width:640px){
  .vc-signal-toast{right:8px!important;bottom:calc(78px + var(--safe-bottom))!important}
}
@keyframes vcNoticeInBottom{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Profile likes: one quiet signal for the whole profile and a compact count
   on every photo. Controls sit outside the image buttons so clicks never
   conflict with opening the viewer. */
.pp-hero-wrap{position:relative;min-width:0}.pp-hero-wrap>.pp-hero{width:100%}
.pp-photo-like-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:34px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:999px;background:rgba(24,27,22,.68);color:var(--text);font-size:10px;font-weight:900;line-height:1;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.pp-photo-like-btn:hover{transform:translateY(-1px);border-color:var(--coral);color:#fff}.pp-photo-like-btn.active{background:rgba(255,95,100,.23);border-color:var(--coral);color:var(--c-accent);box-shadow:0 0 0 3px rgba(255,95,100,.08)}.pp-photo-like-btn:disabled{opacity:.42;cursor:not-allowed;transform:none}.pp-photo-like-btn>.vc-glass-icon{width:15px;height:15px;flex:0 0 15px}.pp-hero-like-btn{position:absolute;z-index:5;top:14px;right:14px;height:36px;min-width:42px;font-size:11px}.pp-hero-like-btn>.vc-glass-icon{width:18px;height:18px;flex-basis:18px}
.pp-thumb-wrap{position:relative;display:block;flex:0 0 66px;height:82px}.pp-thumb-wrap>.pp-thumb{width:100%;height:100%}.pp-thumb-wrap>.pp-photo-like-btn{position:absolute;z-index:4;left:4px;bottom:4px;height:23px;min-width:28px;padding:0 5px;font-size:8px}.pp-thumb-wrap>.pp-photo-like-btn>.vc-glass-icon{width:12px;height:12px;flex-basis:12px}
.pp-gallery-item-wrap{position:relative;display:block;min-width:0}.pp-gallery-item-wrap>.pp-gallery-item{width:100%;height:100%}.pp-gallery-item-wrap>.pp-photo-like-btn{position:absolute;z-index:4;left:6px;bottom:7px;height:26px;min-width:32px;padding:0 6px;font-size:9px}.pp-gallery-item-wrap>.pp-photo-like-btn>.vc-glass-icon{width:13px;height:13px;flex-basis:13px}
.pp-profile-like-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:21px;margin-left:auto;padding:0 6px;border-radius:999px;background:var(--soft);color:inherit;font-size:10px;font-weight:900;line-height:1}.pp-actions button.active .pp-profile-like-count{background:var(--accent-soft)}

@media(max-width:640px){.pp-hero-like-btn{top:11px;right:11px}.pp-profile-like-count{min-width:20px;height:19px;padding-inline:5px;font-size:9px}.pp-thumb-wrap{flex-basis:58px;height:72px}}

/* Activity v6: real likes and profile views in the latest prototype grammar. */
.vc-activity-v6{gap:0;padding:20px 22px calc(90px + var(--safe-bottom))}.vc-activity-v6 .vc-page-head{align-items:center}.vc-activity-head-actions{display:flex;align-items:center;gap:8px}.vc-activity-summary{display:flex;align-items:center;gap:8px;min-height:46px;padding:7px 9px 7px 13px;border:1px solid var(--border);border-radius:15px;background:var(--panel);box-shadow:inset 0 1px 0 transparent}.vc-activity-summary strong{font-size:20px;line-height:1;font-variant-numeric:tabular-nums}.vc-activity-summary small{max-width:72px;color:var(--text3);font-size:9px;line-height:1.15}.vc-activity-bell{position:relative;flex:0 0 46px;width:46px;height:46px;border-radius:15px}.vc-activity-bell>.vc-glass-icon{width:29px;height:29px}.vc-activity-bell>span{position:absolute;right:-3px;top:-4px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--bg);border-radius:99px;background:var(--coral);color:#fff;font-size:8px;font-weight:900}.vc-activity-grid{display:grid;align-items:start;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;min-width:0}.vc-activity-feed,.vc-activity-insight{border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:inset 0 1px 0 transparent,var(--sh-soft)}.vc-activity-feed{min-width:0;padding:14px}.vc-activity-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:min(360px,100%);margin-bottom:12px;padding:4px;border:1px solid var(--border);border-radius:14px;background:var(--panel2)}.vc-activity-tabs>button{min-width:0;min-height:40px;padding:0 12px;border:1px solid transparent;border-radius:10px;color:var(--text3);font-size:11px;font-weight:850;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}.vc-activity-tabs>button.is-active{border-color:color-mix(in srgb,var(--purple) 28%,var(--border));background:color-mix(in srgb,var(--purple) 13%,var(--panel));color:var(--text);box-shadow:inset 0 1px 0 transparent}.vc-activity-tabs>button:focus-visible,.vc-activity-row:focus-visible,.vc-activity-insight>button:focus-visible{outline:2px solid color-mix(in srgb,var(--purple) 62%,white);outline-offset:2px}.vc-activity-list{display:grid;align-content:start;grid-auto-rows:max-content;gap:4px;min-width:0;min-height:0}.vc-activity-list:has(>.spin){min-height:260px;place-items:center}.vc-activity-list>.vc-context-stage{min-height:330px}.vc-activity-row{display:grid;grid-template-columns:50px minmax(0,1fr) auto 36px;align-items:center;gap:11px;width:100%;min-height:72px;padding:9px;border:1px solid transparent;border-radius:17px;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.vc-activity-row:hover{border-color:color-mix(in srgb,var(--purple) 16%,var(--border));background:var(--panel2);transform:translateY(-1px)}.vc-activity-avatar{display:grid;place-items:center;width:50px;height:50px;overflow:hidden;border:1px solid color-mix(in srgb,var(--purple) 25%,var(--border));border-radius:16px;color:#fff;font-size:15px;font-weight:900}.vc-activity-avatar img{width:100%;height:100%;object-fit:cover}.vc-activity-row-copy{min-width:0}.vc-activity-row-copy strong,.vc-activity-row-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-activity-row-copy strong{font-size:12px}.vc-activity-row-copy small{margin-top:5px;color:var(--text2);font-size:10px}.vc-activity-row time{color:var(--text3);font-size:9px;white-space:nowrap}.vc-activity-kind{display:grid;place-items:center;width:36px;height:36px;border-radius:12px}.vc-activity-kind.is-like{background:color-mix(in srgb,var(--coral) 13%,var(--panel2))}.vc-activity-kind.is-guest{background:color-mix(in srgb,var(--purple) 14%,var(--panel2))}.vc-activity-kind-icon{width:28px!important;height:28px!important}.vc-activity-insights{display:grid;align-content:start;gap:18px;min-width:0}.vc-activity-insight{display:grid;align-content:start;min-width:0;padding:22px;overflow:hidden}.vc-activity-profile-insight{background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--coral) 14%,transparent),transparent 43%),linear-gradient(145deg,var(--panel),var(--panel2))}.vc-activity-soft-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:38px;border:1px solid color-mix(in srgb,var(--coral) 21%,var(--border));border-radius:18px;background:color-mix(in srgb,var(--coral) 9%,var(--panel2))}.vc-activity-soft-icon>.vc-glass-icon{width:45px;height:45px}.vc-activity-insight small{display:block;color:var(--c-accent);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.vc-activity-insight h2{margin:8px 0 0;color:var(--text);font-size:18px;line-height:1.18;letter-spacing:-.025em}.vc-activity-insight h2 strong{font-size:28px;font-variant-numeric:tabular-nums}.vc-activity-insight p{margin:8px 0 0;color:var(--text2);font-size:11px;line-height:1.48}.vc-activity-profile-progress{display:block;height:5px;margin-top:18px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--text) 8%,transparent)}.vc-activity-profile-progress>em{display:block;width:var(--vc-activity-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--coral),var(--purple));transition:width .3s cubic-bezier(.2,.8,.2,1)}.vc-activity-insight>button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:16px;padding:0 13px;border:1px solid color-mix(in srgb,var(--coral) 24%,var(--border));border-radius:13px;background:color-mix(in srgb,var(--coral) 9%,var(--panel2));color:var(--text);font-size:11px;font-weight:850;cursor:pointer}.vc-activity-insight>button span{color:var(--c-accent)}.vc-activity-week-insight{min-height:210px}.vc-activity-bars{display:flex;align-items:flex-end;gap:7px;height:88px;margin-top:20px}.vc-activity-bars i{flex:1;height:var(--vc-activity-bar);min-height:7px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--purple),color-mix(in srgb,var(--purple) 22%,var(--panel2)));box-shadow:inset 0 1px 0 transparent}

@media(max-width:1100px){.vc-activity-grid{grid-template-columns:1fr}.vc-activity-insights{grid-template-columns:repeat(2,minmax(0,1fr))}.vc-activity-soft-icon{margin-bottom:22px}}
@media(max-width:768px){.vc-activity-v6{padding:12px 10px calc(94px + var(--safe-bottom))}.vc-activity-v6 .vc-page-head{align-items:flex-start}.vc-activity-v6 .vc-page-copy p{display:none}.vc-activity-summary{min-height:44px;padding:6px 8px 6px 11px}.vc-activity-summary strong{font-size:18px}.vc-activity-summary small{display:none}.vc-activity-bell{flex-basis:44px;width:44px;height:44px}.vc-activity-grid,.vc-activity-insights{gap:10px}.vc-activity-feed{padding:10px;border-radius:17px}.vc-activity-tabs{width:100%;margin-bottom:8px}.vc-activity-tabs>button{min-height:44px;padding-inline:6px}.vc-activity-row{grid-template-columns:46px minmax(0,1fr) 34px;gap:9px;min-height:64px;padding:7px 5px}.vc-activity-avatar{width:46px;height:46px;border-radius:14px}.vc-activity-row time{display:none}.vc-activity-kind{width:34px;height:34px}.vc-activity-kind-icon{width:26px!important;height:26px!important}.vc-activity-insights{grid-template-columns:1fr 1fr}.vc-activity-insight{padding:16px;border-radius:17px}.vc-activity-soft-icon{width:46px;height:46px;margin-bottom:16px}.vc-activity-soft-icon>.vc-glass-icon{width:39px;height:39px}.vc-activity-insight h2{font-size:15px}.vc-activity-insight h2 strong{font-size:23px}.vc-activity-week-insight{min-height:0}.vc-activity-bars{height:66px;margin-top:14px}}
@media(max-width:560px){.vc-activity-insights{grid-template-columns:1fr}.vc-activity-profile-insight{grid-template-columns:auto minmax(0,1fr);column-gap:12px}.vc-activity-profile-insight .vc-activity-soft-icon{grid-row:1;margin:0}.vc-activity-profile-insight>div{grid-column:2}.vc-activity-profile-insight .vc-activity-profile-progress,.vc-activity-profile-insight>button{grid-column:1/-1}.vc-activity-row-copy strong{font-size:11px}.vc-activity-row-copy small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.vc-activity-tabs>button,.vc-activity-row,.vc-activity-profile-progress>em{transition:none}.vc-activity-row:hover{transform:none}}

/* ===== UI polish 2026-09 ===== */
img.vc-img-broken{object-fit:cover;background:#2a2033}
.store-pay-pack small{margin-top:2px;color:var(--text2);font-size:13px;font-weight:800;letter-spacing:-.01em}
.store-inline-notice{white-space:normal;line-height:1.35}

.crypto-checkout-card.is-unavailable{border-color:var(--surface-border,var(--line))!important;background:linear-gradient(145deg,var(--soft),var(--soft))}
.crypto-checkout-card.is-unavailable .store-method-head>em{color:var(--text3);background:rgba(127,127,127,.12)}
/* Signal toast: name + preview stacked so the sender name is never squeezed to one letter. */
.vc-signal-toast .vc-notice__copy{display:grid;gap:1px;align-items:start}
.vc-signal-toast .vc-notice__copy strong{max-width:100%;font-size:12px}
.vc-signal-toast .vc-notice__copy span{font-size:11px}
.vc-signal-toast .vc-notice__icon{background-size:cover;background-position:center}
@media(max-width:768px){body.vc-chat-route .vc-signal-toast{top:calc(64px + var(--safe-top))!important;bottom:auto!important;animation-name:vcNoticeIn!important}}
/* Chat: keep the last bubble clear of the floating gift button; readable failed-send retry. */
.chat-view .chat-thread{padding-bottom:72px!important;scroll-padding-bottom:72px}
.bub-retry{min-height:28px;padding:3px 10px;border-color:rgba(255,92,112,.5);background:rgba(255,92,112,.16);color:var(--c-red);font-size:11px;font-weight:800}

/* Voice message: mic replaces the disabled send button while the composer is empty. */
.chat-composer .c-ai{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:1px solid var(--surface-border,var(--line));border-radius:50%;background:linear-gradient(145deg,rgba(159,122,224,.18),var(--accent-soft));font-size:19px;line-height:1;cursor:pointer;transition:background .16s,transform .16s,opacity .16s}
.chat-composer .c-ai[hidden]{display:none!important}
.chat-composer .c-ai:hover{background:var(--accent-soft)}
.chat-composer .c-ai:disabled{opacity:.45;cursor:not-allowed}
.chat-composer .c-ai.is-thinking{opacity:.5;pointer-events:none}
.chat-compact-view .chat-composer .c-ai{flex:0 0 40px;width:40px;height:40px;min-width:40px;border-radius:14px}
.chat-reference-view .composer .c-ai{flex:0 0 42px;width:42px;height:42px;min-width:42px;min-height:42px;border-radius:13px}

@media(prefers-reduced-motion:reduce){.chat-composer .c-ai{transition:none}}
.chat-view .chat-composer .c-send:disabled{display:none!important}
.chat-thread img.vc-img-broken{width:min(220px,60vw);height:auto;aspect-ratio:3/4;object-fit:cover}

/* Light theme contrast fixes (values measured < 2:1 against their cards). */

.vc-modal-danger-link{display:block;margin:10px auto 0;padding:8px 12px;border:0;background:none;color:var(--c-red);font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth-magic summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;color:var(--text2);font-size:13px;font-weight:700}
.auth-magic .magic-hint{margin:0 0 10px;color:var(--text3);font-size:12px;line-height:1.4;text-align:center}
.profile-edit .pe-head{display:flex;align-items:center;gap:10px}
.profile-edit .pe-head .pe-h{margin:0}
.profile-edit textarea{min-height:96px;resize:vertical;line-height:1.4;font-family:inherit}
.profile-edit .pe-count{align-self:flex-end;color:var(--text3);font-size:11px;font-weight:600}
/* Mobile: the edit form must scroll clear of the fixed bottom nav. */
@media(max-width:768px){.profile-edit{padding-bottom:calc(110px + var(--safe-bottom,0px))}}
img.vc-img-broken[src*="icon-gift"]{background:none;object-fit:contain}
/* Tablet/desktop: use the available viewport height instead of a fixed 720px card (portrait tablets left ~40% empty). */
@media(min-width:769px){.app:not(.auth-screen){height:min(960px,calc(100vh - 48px));height:min(960px,calc(100dvh - 48px))}}

/* U06: служебный текст не мельче 12px — единый override (приоритет оплата/профиль/чат/ошибки) */
.bottom-nav .bn-item,
.vc-payment-method-row small,
.vc-payment-security,
.vc-payment-no-balance,
.store-method-head small,
.store-inline-notice,
.vc-rescue-offer-copy small,
.pp-actions button,
.pp-gift p,
.pp-gift-empty-copy p,
.own-profile-account p,
.own-profile-stats small,
.own-profile-completion span small,
.vc-profile-trust-badge,
.pp-disclaimer,
.pp-gallery-lock,
.bub-ts,
.ch-sub,
.daynote,
.chat-quick-action>strong,
.chat-compact-offer small,
.bub-retry,
.vc-chat-paywall-pack small,
.vc-notification-item p,
.vc-notice__copy span,
.vc-hub-continue-row small,
.vc-activity-summary small,
.match-card-copy small{font-size:12px !important;line-height:1.45 !important;}

/* Purchase history (E3-4): history-specific tweaks over the shared .pack base. */
.store-history-card{margin-top:18px}
.pack.hist-row{align-items:center}
.hist-row .pack-price small{display:block}

/* Deck action dock labels (V2): label sits under each button, sizes/places unchanged. */
.vc-glass-action-dock{min-height:0!important;align-items:end}
.dock-cell{display:flex;flex-direction:column;align-items:center;gap:6px;justify-self:center;min-width:0}
.dock-cell small{font-size:11px;font-weight:600;color:var(--text2);white-space:nowrap}
.dock-cell.hero small{color:var(--text)}

/* Stage 3: filters, support, settings zones */
.discover-filter-dock .filter-cog{position:relative}
.vc-filter-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--coral,#ff8d74);color:#2a1210;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.deck-empty .vc-empty-chips,.deck-empty .vc-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.vc-empty-remove{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:22px;border:1px solid var(--surface-border,var(--line));background:transparent;color:inherit;font-size:13px;cursor:pointer}
.vc-empty-remove b{font-size:16px}
.vc-empty-remove:focus-visible,.vc-filter-sheet :focus-visible,.vc-support-ticket:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.vc-filter-sheet select,.vc-filter-sheet input[type=number]{min-height:44px}
.vc-filter-sheet .vc-filter-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px!important}
.vc-filter-sheet input[type=checkbox]{width:20px;height:20px}
.vc-filter-sheet .set-btn{min-height:44px}
.vc-filter-count-line{min-height:18px;margin-top:8px;font-size:12px;color:var(--text2)}
.vc-support-ticket{display:block;width:100%;min-height:44px;padding:10px 0;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer;font-size:12px}
.vc-support-answer{color:var(--c-green)}

.vc-support-h{margin-top:6px}
.vc-set-lang-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.vc-set-lang-row select{min-height:44px}
.vc-danger-zone{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,105,122,.25)}
.vc-danger-btn{color:var(--c-red);border-color:rgba(255,105,122,.35);min-height:44px}

/* Stage 3b: primary write CTA, bio clamp, interest chips, quiet hours, support */
.vc-write-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:min(100%,430px);min-height:52px;margin:10px auto 0;padding:0 20px;border:0;border-radius:16px;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px rgba(139,92,246,.32)}
.vc-write-cta .vc-glass-icon{width:26px;height:26px}
.vc-write-cta:focus-visible{outline:3px solid #fff;outline-offset:2px}
.vc-glass-action-dock.vc-dock-4{grid-template-columns:repeat(4,minmax(44px,1fr))!important}
.pp-bio.is-clamped{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pp-bio-toggle{margin-top:8px;min-height:44px;padding:0 4px;border:0;background:none;color:var(--brand,#a78bfa);font:inherit;font-weight:600;cursor:pointer}
.pe-interests{display:flex;flex-direction:column;gap:8px}
.vc-int-chips{display:flex;flex-wrap:wrap;gap:8px;max-height:168px;overflow:auto}
.vc-int-chip{min-height:44px;padding:0 14px;border-radius:22px;border:1px solid var(--line,var(--line));background:transparent;color:inherit;font:inherit;cursor:pointer}
.vc-int-chip.is-on{background:#8b5cf6;border-color:#8b5cf6;color:#fff}
.vc-notif-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--text2)}
.vc-quiet-times{display:flex;gap:12px;flex-wrap:wrap}
.vc-quiet-times input[type=time]{min-height:44px}
.vc-support-preview{padding:10px 12px;border:1px dashed var(--line,var(--line));border-radius:12px;margin:10px 0}
.vc-support-preview pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font:12px/1.45 ui-monospace,monospace;color:var(--text2)}
.vc-support-tech{display:flex;gap:8px;align-items:flex-start;min-height:44px}
.vc-order-help{display:inline-block;margin-top:4px;font-size:12px;color:var(--brand,#a78bfa)}

/* Sidebar navigation label + active state in the prototype visual language (redesign stage 5) */
.nav-label{display:block;margin:0 24px 14px;color:var(--text3);font-size:9px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}
.nav-item.active{color:var(--c-accent);font-weight:600;background:var(--accent-soft)}

.nav-sep{font-size:9px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--text3);padding:16px 24px 6px}

/* ============================================================================
   PROTOTYPE SKIN (redesign-20261002) — full-bleed flat layout per the approved
   prototype (design-prototype-20261002/). Appended last: the cascade overrides
   the glass system without deleting legacy rules (contracts keep passing).
   ============================================================================ */

/* Prototype palette tokens (dark mirrors the prototype's [data-theme=dark]) */
:root{
  --pt-surface:#fff;--pt-line:#e1e2d9;--pt-soft:#f1f1ea;--pt-text:#2e302f;--pt-muted:#5f645c;
  --pt-accent:#e77762;--pt-action:#c1523f;--pt-action-hover:#af4837;--pt-accent-soft:#fdf0eb;
  --pt-green:#52856b;--pt-green-soft:#eef5ee;--pt-shadow:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08);
}

/* Flat page: no background photo scene, no vignette, no blur anywhere */
body::before{background:var(--bg)!important;background-image:none!important}
body::after{background:none!important}
.app,.app *

/* Full-bleed shell instead of the centered 720px glass frame */
.app{
  width:100%!important;max-width:none!important;height:100%!important;min-height:100vh;min-height:100dvh;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  grid-template-columns:224px minmax(0,1fr)!important;overflow:visible!important;
}

.center{overflow:visible!important}
.main-body{padding:39px 34px 0!important}
body{font-size:14px!important}

/* Sidebar — prototype: solid surface, right hairline */
.left{background:var(--pt-surface)!important;border-right:1px solid var(--pt-line)!important;box-shadow:none!important;padding:35px 18px 20px!important}

.brand{padding:0 8px 0!important;border-bottom:0!important}
.brand h1{font-size:23px;font-weight:800;letter-spacing:-1.2px}
.brand h1 span{background:none!important;-webkit-text-fill-color:var(--pt-accent)!important;color:var(--c-accent)!important}
.vc-sidebar-brand{gap:9px}
.vc-sidebar-brand>img{width:35px;height:38px;filter:none!important}
.vc-sidebar-brand .sub{font-size:8px;letter-spacing:2.05px;margin-top:9px}
.nav{margin-top:54px!important}
.nav-label{display:block;margin:0 15px 15px!important;color:var(--pt-muted);font-size:9px;letter-spacing:1.3px;font-weight:600}
.nav-item{height:auto;padding:15px!important;margin:0 0 6px!important;border-radius:11px!important;gap:13px;color:var(--pt-muted)!important;font-weight:600;font-size:14px;background:none!important;box-shadow:none!important}
.nav-item .vc-glass-icon{width:20px;height:20px}
.nav-item:hover{background:var(--pt-soft)!important;color:var(--pt-text)!important}
.nav-item.active{background:var(--pt-accent-soft)!important;color:var(--c-accent)!important;box-shadow:none!important}

.nav-item.active::before{display:none!important}
.nav-item .badge{background:var(--pt-accent-soft)!important;color:var(--c-accent)!important}
.nav-sep{margin:23px 15px!important;border-top:1px solid var(--pt-line);padding:0!important;font-size:0!important;height:0!important;color:transparent}
.vc-rail-theme{margin:auto 0 0!important;padding:12px 12px 20px!important;border:0!important;background:transparent!important;box-shadow:none!important}
.vc-rail-theme button{border:0!important;background:transparent!important;min-height:36px;color:var(--pt-muted)!important}
.vc-rail-theme .vc-glass-icon{width:17px;height:17px}
.vc-rail-theme-copy strong{font-size:11px;font-weight:600}
.vc-rail-theme-track{width:28px!important;height:16px!important;border:0!important;background:var(--pt-line)!important;box-shadow:none!important}
.vc-rail-theme-track i{width:10px!important;height:10px!important;top:3px!important;left:3px!important;background:#fff!important;box-shadow:0 1px 3px rgba(54,53,35,.14)!important;transition:transform .18s}
.vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track{background:var(--pt-accent)!important}
.vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track i{transform:translateX(12px)!important;background:#fff!important;box-shadow:none!important}
.user-mini{margin:17px 9px 0!important;padding:17px 9px 0!important;border-top:1px solid var(--pt-line);border-radius:0!important;background:transparent!important;border-left:0;border-right:0;border-bottom:0;box-shadow:none!important}
.user-mini:hover{background:transparent!important}
.user-mini .av{width:40px!important;height:40px!important;border-radius:50%!important;background:#e5ebdf!important;color:#677461!important;font-weight:700;font-size:12px}
.user-mini .un{font-size:13px;font-weight:700}
.user-mini .ub{font-size:10px!important;color:var(--pt-muted)!important}

/* Page header (prototype) */
.vc-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin:0 0 30px!important;padding:0!important;border:0!important}
.vc-page-header::after{display:none!important}
.vc-page-eyebrow{font-size:9px;letter-spacing:1.35px;font-weight:600;color:var(--text3);margin-bottom:11px;text-transform:uppercase}
.vc-page-title{font-size:clamp(28px,2.6vw,40px)!important;line-height:1.25;letter-spacing:-1.6px;font-weight:700;color:var(--pt-text)!important;margin:0}
.vc-page-title span{color:var(--c-accent)!important}
.vc-page-sub{color:var(--pt-muted);font-size:14px;margin-top:10px}

/* Discover workspace: card + 290px rail (prototype proportions) */
.discover-workspace{grid-template-columns:minmax(0,1fr) 290px;gap:28px}
.discover-primary{min-width:0}

/* Filter dock — prototype chips */
.discover-filter-dock{border:0!important;background:transparent!important;box-shadow:none!important;padding:0 0 24px!important;margin:0!important;border-bottom:1px solid var(--pt-line)!important;justify-content:flex-start!important;gap:10px!important}
.filter-cap{height:41px;padding:10px 14px!important;border:1px solid var(--pt-line)!important;border-radius:999px!important;background:var(--pt-surface)!important;box-shadow:none!important;color:var(--pt-text)!important;font-size:13px!important;font-weight:600;gap:7px}
.filter-cap:hover{background:var(--pt-soft)!important}
.filter-cap .vc-glass-icon{width:14px;height:14px}
.filter-cog{width:41px!important;padding:0!important;display:grid;place-items:center}

/* Profile card — prototype: solid, photo left / details right */
.card-back-wrap{margin:0!important}
.card-back-peek{display:none!important}
.glass-container{
  display:grid!important;grid-template-columns:49% 51%!important;
  border:1px solid var(--pt-line)!important;border-radius:19px!important;overflow:hidden!important;
  background:var(--pt-surface)!important;min-height:520px!important;box-shadow:var(--pt-shadow)!important;
}

.photo-zone{position:relative!important;min-height:520px!important;background:#e3ddd2!important;border:0!important}
.photo-zone img.photo{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 32%!important;border-radius:0!important}
.photo-zone::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(24,27,22,.62));pointer-events:none}
.swtop{position:absolute;top:14px;left:14px;right:14px;z-index:3!important}
.photo-nav{z-index:4!important;top:50%!important;background:#fffffff2!important;border-radius:50%!important;width:36px!important;height:36px!important;box-shadow:0 4px 14px rgba(54,53,35,.14)!important}
.photo-nav .vc-glass-icon{width:14px!important;height:14px!important}
.online-dot{display:none!important}
.pt-online-badge{position:absolute;z-index:3;left:18px;bottom:18px;display:flex;align-items:center;gap:6px;padding:6px 9px;border-radius:20px;background:#fffffff2;color:#515c4f;font-size:10px;font-weight:600;}
.pt-online-badge>span{width:5px;height:5px;background:#78a17b;border-radius:50%}
.pt-online-badge.is-offline>span{background:#c0b9aa}
.pt-photo-caption{position:absolute;z-index:3;bottom:26px;left:24px;right:20px;color:#fff}
.pt-photo-caption>span{font-size:8px;letter-spacing:2px;font-weight:500;opacity:.85;display:block;margin-bottom:9px;text-transform:uppercase}
.pt-photo-caption>p{font-size:25px;font-family:Georgia,'Times New Roman',serif;font-style:italic;line-height:1.25;max-width:230px;text-shadow:0 1px 10px rgba(24,27,22,.15);margin:0}
.info-zone{padding:27px 26px 22px!important;display:flex!important;flex-direction:column!important;min-width:0;background:transparent!important;border:0!important}
.info-name-row{margin:0 0 8px!important}
.info-name{font-size:29px!important;letter-spacing:-1px!important;line-height:1.3!important;font-weight:700!important;color:var(--pt-text)!important}
.info-name .age{font-weight:400!important;color:var(--text3)!important}
.info-block{margin:0 0 14px!important;color:var(--pt-muted)!important;font-size:12px!important}
.info-block .vc-glass-icon{width:13px;height:13px}
.info-chips-row{gap:6px;margin:0 0 6px!important}
.info-chip{border:1px solid var(--pt-line)!important;background:transparent!important;color:var(--text2)!important;font-size:11px!important;padding:5px 8px!important;border-radius:6px!important;box-shadow:none!important}
.info-chip .vc-glass-icon{width:12px;height:12px}
.info-section{margin-top:18px!important;padding:0!important;border:0!important;background:transparent!important}
.info-section .sh{font-size:11px!important;font-weight:600!important;color:var(--pt-muted)!important;margin-bottom:10px!important;text-transform:none!important;letter-spacing:0!important}
.bio{font-size:14px!important;line-height:1.85!important;color:#686c64!important;max-width:360px}
.info-bio-placeholder{font-size:13px!important;color:var(--pt-muted)!important;border:0!important;background:transparent!important}
.info-tags{gap:6px}
.info-tag{border:1px solid var(--pt-line)!important;background:transparent!important;color:var(--text2)!important;font-size:11px!important;padding:5px 8px!important;border-radius:6px!important}
.info-placeholder{color:var(--pt-muted)!important;font-size:12px!important}
.info-ask-btn{color:var(--c-accent)!important;font-weight:700!important;font-size:12px!important;text-decoration:underline}
.drag-badge{z-index:6!important}

/* Actions — prototype: text Back, outlined Skip, filled Like */
.vc-write-cta{display:none!important}
.actions{
  display:flex!important;grid-template-columns:none!important;gap:12px;justify-content:center;
  background:transparent!important;border:0!important;box-shadow:none!important;padding:16px 0 0!important;margin:0!important;
}
.actions .dock-cell{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:9px;min-height:46px;margin:0!important;padding:0 25px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer}
.actions .dock-cell small{display:inline!important;position:static!important;font-size:13px!important;font-weight:600!important;color:inherit!important;margin:0!important}
.actions .act{width:20px!important;height:20px!important;min-width:20px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.actions .act .vc-glass-icon{width:17px!important;height:17px!important}
.actions .act-rewind{color:var(--pt-muted)!important}
.actions .dock-cell:has(.act-dislike){border:1px solid var(--pt-line);background:var(--pt-surface);color:var(--pt-text)}
.actions .dock-cell:has(.act-like){background:var(--pt-action);color:#fff;min-width:171px;padding:0 28px;box-shadow:0 5px 12px rgba(231,118,98,.18)}
.actions .dock-cell:has(.act-like):hover{background:var(--pt-action-hover)}
.actions .dock-cell:has(.act-profile){color:var(--pt-muted)}
.no-rush{text-align:center;color:var(--pt-muted);font-size:12px;margin:14px 0 0}
.no-rush .tiny-spark{color:var(--c-accent)}

/* Discover rail — flat, prototype spacing */
.discover-more{background:transparent!important;border:0!important;box-shadow:none!important;padding:33px 0 0!important}
.discover-more>header{padding:0 0 12px!important;border:0!important;background:transparent!important}
.discover-more>header span{font-size:9px;letter-spacing:1.35px;font-weight:600;color:var(--text3);text-transform:uppercase}
.discover-more>header h2{font-size:19px!important;letter-spacing:-.5px!important;color:var(--pt-text)!important;margin:6px 0 0!important}
.discover-more>header b{background:var(--pt-green-soft)!important;color:var(--c-green)!important;border:0!important;font-size:10px!important}
.discover-more-person{border:1px solid transparent!important;background:transparent!important;border-radius:12px!important}
.discover-more-person:hover{background:var(--pt-soft)!important;border-color:var(--pt-line)!important}
.discover-more-person>img,.discover-more-avatar{border-radius:12px!important;border:1px solid var(--pt-line)!important;box-shadow:none!important}
.discover-more-copy small{color:var(--pt-muted)!important}
.discover-more-toggle{border:1px solid var(--pt-line)!important;background:var(--pt-surface)!important;color:var(--pt-muted)!important;box-shadow:none!important}
.vc-icebreaker{background:var(--pt-green-soft)!important;border:0!important;border-radius:13px!important}

.vc-icebreaker h3{color:var(--pt-text)!important}
.vc-icebreaker-text{color:var(--c-green)!important}
.vc-icebreaker-tag{color:var(--c-green)!important}
.vc-icebreaker-next{background:transparent!important;border:0!important;color:var(--c-green)!important}
.vc-icebreaker-start{color:var(--c-green)!important}
.vc-safety-note{background:var(--pt-soft)!important;border:1px solid var(--pt-line)!important;border-radius:12px!important}
.vc-safety-note small{color:var(--pt-muted)!important}

/* Deck empty + stage: flat */
.stage{background:transparent!important}
.deck-empty h2{color:var(--pt-text)!important}

/* Mobile bottom nav — flat surface */
.bottom-nav{background:var(--pt-surface)!important;border-top:1px solid var(--pt-line)!important;box-shadow:0 -3px 20px rgba(54,53,35,.14)!important;}

.bottom-nav .bn-item{color:var(--pt-muted)!important}
.bottom-nav .bn-item.active{color:var(--c-accent)!important}
.bn-badge{background:var(--pt-action)!important;border-color:var(--pt-surface)!important}

/* Responsive shell (prototype breakpoints) */
@media(max-width:1250px){
  .app{grid-template-columns:210px minmax(0,1fr)!important}
  .main-body{padding:32px 25px 0!important}
  .discover-workspace{grid-template-columns:minmax(0,1fr) 230px;gap:19px}
}
@media(max-width:1080px){
  .discover-workspace{grid-template-columns:minmax(0,1fr)}
  .discover-more{display:grid!important;grid-template-columns:1fr 1fr;gap:20px;padding-top:8px!important}
}
@media(max-width:768px){
  .app{grid-template-columns:1fr!important}
  .left{display:none!important}
  .main-body{padding:24px 18px 0!important;padding-bottom:148px!important}
  .glass-container{grid-template-columns:1fr!important;min-height:0!important}
  .photo-zone{min-height:350px!important}
  .pt-photo-caption{display:none}
  .info-zone{padding:24px!important}
  .discover-more{grid-template-columns:1fr!important}
  .actions .dock-cell{padding:0 18px}
  .actions .dock-cell:has(.act-like){min-width:150px}
}

/* ============================================================================
   PROTOTYPE SKIN (design-prototype-20261002) — flat warm shell + discover layout
   Appended last so these rules win the cascade over the legacy glass layer.
   ============================================================================ */
:root{--p-surface:#262a27;--p-line:#3b4039;--p-soft:#30362e;--p-hint:#34382f;--p-accent-soft:#42342d;--p-green-soft:#333e2d;--p-shadow:0 12px 40px rgba(0,0,0,.18);--p-sidebar-w:224px}

.p-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Full-bleed flat shell replaces the rounded glass window */
.app{width:100vw;max-width:100vw;height:100vh;height:100dvh;border-radius:0;border:0;background:var(--bg)!important;box-shadow:none}
body::before{display:none}

/* ===== Sidebar (prototype .sidebar look on the existing rail) ===== */
.app>.left{background:var(--p-surface);border:0;border-right:1px solid var(--p-line);display:flex;flex-direction:column;padding:35px 0 20px}
.p-brand{display:flex;align-items:center;gap:9px;padding:0 18px 26px;margin:0}
.vc-sidebar-brand{display:flex;align-items:center;gap:10px}
.vc-sidebar-brand>img{width:38px;height:38px;flex:0 0 38px}
.p-brand-copy h1{margin:0;font-size:23px;font-weight:800;letter-spacing:-1.2px;line-height:1.1;color:var(--text)}
.p-brand-copy .brand-dot{color:var(--c-accent)}
.p-brand-copy small{display:block;font-size:8px;font-weight:600;letter-spacing:2.05px;margin-top:6px;color:var(--text3)}
.left .nav{margin:0}
.left .nav-label{display:block;margin:0 33px 15px;color:var(--text3);font-size:9px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}
.left .nav-item{position:relative;width:auto;margin:0 15px 6px;padding:14px 15px;border-radius:11px;display:flex;align-items:center;gap:13px;color:var(--text2);font-size:14px;font-weight:600;background:transparent;border:0}
.left .nav-item:hover{background:var(--p-soft);color:var(--text)}
.left .nav-item.active{background:var(--p-accent-soft);color:var(--c-accent)}

.left .nav-item .p-icon{width:20px;height:20px}
.left .nav-active-dot{display:none;width:6px;height:6px;background:var(--coral);border-radius:50%;margin-left:auto}
.left .nav-item.active .nav-active-dot{display:block}
.left .nav-count{margin-left:auto;background:var(--p-accent-soft);color:var(--c-accent);border-radius:6px;min-width:20px;font-size:10px;text-align:center;padding:2px 5px;font-weight:700}

.left .nav-divider{margin:23px 15px;border-top:1px solid var(--p-line)}
.sidebar-bottom{margin-top:auto;padding-top:14px}
.left .vc-rail-theme{margin:0 15px;padding:0;border:0;background:transparent;box-shadow:none}
.left .vc-rail-theme button{display:flex;align-items:center;gap:11px;width:100%;padding:12px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text3);font-size:11px;font-weight:600}
.left .vc-rail-theme button:hover{background:var(--p-soft)}
.left .vc-rail-theme .vc-rail-theme-current .p-icon{width:17px;height:17px}
.left .vc-rail-theme-copy{display:flex;flex-direction:column;min-width:0}
.left .vc-rail-theme-copy strong{font-size:11px;color:var(--text2)}
.left .vc-rail-theme-track{margin-left:auto;width:28px;height:16px;border-radius:20px;background:var(--p-line);padding:3px}
.left .vc-rail-theme-track i{display:block;width:10px;height:10px;background:var(--p-surface);border-radius:50%;box-shadow:0 1px 3px rgba(54,53,35,.14)}
.left .vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track{background:var(--coral)}
.left .vc-rail-theme button[aria-checked="true"] .vc-rail-theme-track i{transform:translateX(12px)}
.left .user-mini{margin:0 15px;display:flex;align-items:center;gap:11px;padding:15px 9px 0;border-top:1px solid var(--p-line);border-left:0;border-right:0;border-bottom:0;border-radius:0;background:transparent!important;box-shadow:none}
.left .user-mini:hover{background:transparent!important}
.left .user-mini .av{width:40px;height:40px;border-radius:50%;flex-shrink:0}
.left .user-mini .un{font-size:13px;font-weight:700}
.left .user-mini .ub{font-size:10px;color:var(--text3);margin-top:3px}

/* ===== Discover page (scoped to the discover route) ===== */
body.vc-discover-route .stage{display:block;padding:34px 34px 24px;max-width:1580px}
body.vc-discover-route .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:26px}
.page-header .eyebrow{font-size:9px;letter-spacing:1.35px;font-weight:600;color:var(--text3);margin-bottom:11px;text-transform:uppercase}
.page-title{margin:0;font-size:clamp(28px,2.6vw,40px);line-height:1.25;letter-spacing:-1.6px;font-weight:800;color:var(--text)}
.page-title span{color:var(--c-accent)}
.page-subtitle{color:var(--text3);font-size:14px;margin-top:10px}
.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-bottom:24px;border-bottom:1px solid var(--p-line);margin-bottom:26px}
.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}
.filter-button{display:flex;align-items:center;gap:7px;padding:10px 14px;min-height:40px;border:1px solid var(--p-line);border-radius:20px;background:var(--p-surface);font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;transition:background .18s,border-color .18s}
.filter-button:hover{border-color:var(--coral)}
.filter-button .p-icon{width:15px;height:15px}
.filter-button .p-icon:last-child{opacity:.5}
.filter-button.all-filters .vc-filter-count{margin-left:2px;background:var(--p-accent-soft);color:var(--c-accent);border-radius:999px;font-size:9px;font-weight:800;padding:2px 6px}
.online-filter{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;user-select:none}
.online-filter input{position:absolute;opacity:0;pointer-events:none}
.online-filter .switch{width:28px;height:16px;border-radius:20px;background:var(--p-line);padding:3px;transition:background .18s}
.online-filter .switch:after{content:'';display:block;width:10px;height:10px;background:var(--p-surface);border-radius:50%;box-shadow:0 1px 3px rgba(54,53,35,.14);transition:transform .18s}
.online-filter input:checked+.switch{background:var(--coral)}
.online-filter input:checked+.switch:after{transform:translateX(12px)}
.online-filter input:focus-visible+.switch{outline:2px solid var(--coral);outline-offset:2px}
body.vc-discover-route .discover-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;width:100%}
body.vc-discover-route .discover-primary{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 2px 12px}
.section-heading h2{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--text)}
.section-heading h2 .p-icon{width:16px;height:16px;color:var(--c-accent)}
.vc-deck-counter{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--text3)}
body.vc-discover-route .card-back-wrap{position:relative;flex:0 1 auto;min-height:0;max-width:none;width:100%}
.profile-card{display:grid;grid-template-columns:49% 51%;border:1px solid var(--p-line);border-radius:19px;overflow:hidden;background:var(--p-surface);min-height:520px;box-shadow:var(--p-shadow);animation:card-in .25s ease}
@keyframes card-in{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.profile-photo{position:relative;min-height:520px;overflow:hidden;background:var(--p-hint)}
.profile-photo>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 32%}
.profile-photo:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(24,27,22,.62));pointer-events:none}
.online-badge{display:flex;align-items:center;gap:6px;position:absolute;z-index:1;left:18px;top:18px;padding:6px 9px;border-radius:20px;background:var(--surface);color:#515c4f;font-size:10px;font-weight:600;}
.online-badge>span{width:5px;height:5px;background:#78a17b;border-radius:50%}
.online-badge.offline>span{background:#c0b9aa}
.photo-caption{position:absolute;z-index:1;bottom:28px;left:24px;right:20px;color:#fff}
.photo-caption>span{font-size:8px;letter-spacing:2px;font-weight:600;opacity:.85;display:block;margin-bottom:9px}
.photo-caption>p{margin:0;font-size:25px;font-family:Georgia,'Times New Roman',serif;font-style:italic;line-height:1.25;max-width:230px;text-shadow:0 1px 10px rgba(24,27,22,.15)}
.mobile-photo-identity{display:none}
.profile-details{padding:27px 26px 22px;display:flex;flex-direction:column;min-width:0}
.shared-label{display:flex;align-items:center;gap:5px;color:var(--c-green);font-size:11px;font-weight:600;margin-bottom:18px}
.shared-label .p-icon{width:14px;height:14px}
.profile-name{display:flex;align-items:center;gap:8px;margin:0;font-size:29px;letter-spacing:-1px;line-height:1.3;font-weight:800;color:var(--text)}
.profile-name .age{font-weight:400;color:var(--text3)}
.verified{display:inline-flex;color:var(--c-green);flex-shrink:0}
.verified .p-icon{width:19px;height:19px}
.location{display:flex;align-items:center;gap:5px;color:var(--text3);font-size:12px;margin:8px 0 0}
.location .p-icon{width:13px;height:13px}
.bio{font-size:14px;line-height:1.85;margin:20px 0 0;max-width:360px;color:var(--text2)}
.details-label{font-size:11px;font-weight:700;color:var(--text3);display:block;margin-bottom:10px;text-transform:uppercase;letter-spacing:.8px}
.interests-section{margin-top:24px}
.interest-tags{display:flex;flex-wrap:wrap;gap:6px}
.interest-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;border:1px solid var(--p-line);padding:5px 8px;border-radius:6px;color:var(--text2);white-space:nowrap}
.interest-tag .p-icon{width:12px;height:12px}
.interest-tag.shared{border-color:#dce7d9;background:var(--p-green-soft);color:var(--c-green)}
.profile-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:24px}
.full-profile{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;min-height:46px;border:1px solid var(--p-line);border-radius:9px;background:var(--p-surface);color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .18s,color .18s}
.full-profile:hover{border-color:var(--coral);color:var(--text)}
.full-profile .p-icon{width:15px;height:15px}
.message-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;min-height:46px;border:1px solid var(--p-line);border-radius:9px;background:var(--p-accent-soft);color:var(--c-accent);font-size:13px;font-weight:700;cursor:pointer;transition:background .18s,border-color .18s}

.message-button:hover{border-color:var(--coral)}
.message-button .p-icon{width:16px;height:16px}
body.vc-discover-route .actions.profile-actions{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0 0;padding:0;background:transparent!important;min-height:0;width:100%}
.profile-actions button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:12px 20px;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.profile-actions .p-icon{width:17px;height:17px}
.back-button{color:var(--text3);background:transparent;border:1px solid transparent;padding-left:13px}
.back-button:hover{color:var(--text)}
.back-button:disabled{opacity:.35;cursor:default}
.skip-button{border:1px solid var(--p-line);background:var(--p-surface);color:var(--text2)}
.skip-button:hover{background:var(--p-soft);color:var(--text)}
.like-button{flex:1;background:var(--accent-btn);border:1px solid transparent;color:#fff;min-width:171px;box-shadow:0 5px 12px rgba(231,118,98,.18)}
.like-button:hover{background:var(--accent-btn-hover);box-shadow:0 5px 18px rgba(231,118,98,.18)}
.profile-open-btn{border:1px solid var(--p-line);background:var(--p-surface);color:var(--text2)}
.profile-open-btn:hover{border-color:var(--coral);color:var(--text)}
.no-rush{display:flex;align-items:center;gap:7px;margin:14px 2px 0;font-size:11px;color:var(--text3)}
.tiny-spark{color:var(--c-accent)}

/* ===== Right rail: new faces, icebreaker, safety ===== */
body.vc-discover-route .discover-more{display:flex;flex-direction:column;gap:16px;width:auto;margin:0;padding:0;background:transparent;border:0;box-shadow:none}
.aside-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.aside-heading h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.today-label{font-size:10px;font-weight:700;color:var(--c-accent);text-transform:uppercase;letter-spacing:1px}
.aside-description{margin:6px 0 0;font-size:12px;color:var(--text3)}
.discover-more-list{display:grid;gap:8px;margin-top:12px}
.discover-more-person.recommendation{display:grid;grid-template-columns:52px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;padding:10px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-surface);color:var(--text);text-align:left;cursor:pointer;transition:transform .18s,border-color .18s}
.recommendation:hover{transform:translateX(3px);border-color:var(--coral)}
.recommendation-photo{position:relative;width:52px;height:62px}
.recommendation-photo img,.recommendation-photo .discover-more-avatar{width:52px;height:62px;object-fit:cover;border-radius:12px;display:grid;place-items:center;font-size:16px;font-weight:800;color:#fff}
.online-dot{position:absolute;right:3px;bottom:3px;width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 2px var(--p-surface)}
.recommendation-info{display:grid;gap:2px;min-width:0}
.recommendation-info strong{font-size:13px;font-weight:700;color:var(--text)}
.recommendation-info small{font-size:10px;color:var(--text3)}
.mini-tag{font-size:9px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.discover-more-person.recommendation>.p-icon{width:16px;height:16px;color:var(--text3)}
.discover-more-toggle.browse-all{display:inline-flex;align-items:center;gap:8px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-soft);color:var(--text2);font-size:12px;font-weight:700;cursor:pointer}
.discover-more-toggle.browse-all:hover{border-color:var(--coral);color:var(--text)}
.discover-more-toggle.browse-all .p-icon{width:15px;height:15px}
body.vc-discover-route .vc-icebreaker{margin:0;padding:18px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-green-soft)}
.vc-icebreaker .vc-icebreaker-tag{color:var(--c-green)}
.vc-icebreaker h3{color:var(--text)}
.vc-icebreaker .vc-icebreaker-text{color:var(--text)}
.vc-icebreaker .vc-icebreaker-start{color:var(--c-green)}
body.vc-discover-route .vc-safety-note{margin:0;padding:13px 14px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-surface)}
.vc-safety-note>.p-icon:first-child{width:17px;height:17px;color:var(--c-green);margin-top:1px}
.vc-safety-note>.p-icon:last-child{width:14px;height:14px;margin-left:auto;color:var(--text3)}

/* ===== Bottom nav (mobile) ===== */
.bottom-nav{background:var(--p-surface);border-top:1px solid var(--p-line);box-shadow:none}
.bn-item{gap:4px;font-size:9px}
.bn-item .vc-glass-icon{width:21px;height:21px;filter:saturate(.2) opacity(.75)}
.bn-item.active{color:var(--c-accent)}
.bn-item.active .vc-glass-icon{filter:none}

/* ===== Responsive ===== */
@media(max-width:1120px){
  body.vc-discover-route .discover-workspace{grid-template-columns:minmax(0,1fr)}
  body.vc-discover-route .discover-more{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-top:8px}
  .profile-card,.profile-photo{min-height:477px}
}
@media(max-width:768px){
  .app{grid-template-columns:1fr}
  body.vc-discover-route .stage{padding:24px 18px 0}
  .page-title{font-size:28px;letter-spacing:-1.15px}
  .filter-bar{align-items:flex-start;flex-wrap:wrap;gap:12px;padding-bottom:18px;margin-bottom:19px}
  .filter-buttons{width:100%}
  .online-filter{font-size:11px}
  .profile-card{display:block;border-radius:16px;min-height:0}
  .profile-photo{height:350px;min-height:0}
  .photo-caption{display:none}
  .mobile-photo-identity{display:block;position:absolute;z-index:1;bottom:21px;left:22px;color:#fff}
  .mobile-photo-identity h2{margin:0;font-size:27px;letter-spacing:-.7px;display:flex;align-items:center;gap:7px;line-height:1.3;font-weight:800}
  .mobile-photo-identity h2>span{font-weight:400}
  .mobile-photo-identity h2 .p-icon{width:19px;height:19px}
  .mobile-photo-identity p{display:flex;align-items:center;gap:4px;margin:6px 0 0;font-size:12px}
  .mobile-photo-identity .p-icon{width:13px;height:13px}
  .profile-details>.profile-name,.profile-details>.location{display:none}
  .profile-details{padding:22px 20px 18px}
  .profile-name{font-size:27px}
  .bio{font-size:13px;margin-top:16px}
  .interests-section{margin-top:18px}
  .profile-links{margin-top:18px}
  .message-button,.full-profile{flex:1}
  body.vc-discover-route .actions.profile-actions{gap:10px}
  .like-button{min-width:130px}
  body.vc-discover-route .discover-more{display:flex;flex-direction:column}
}

/* ===== Flat prototype — shared primitives: icons, brand, topbar, dialogs ===== */

/* Prototype token set (light default) + flat dark override — appended last so
   every layer above resolves through these values. */
:root{--p-surface:#fff;--p-line:#e1e2d9;--p-soft:#f1f1ea;--p-hint:#f3f0e9;--p-accent-soft:#fdf0eb;--p-green-soft:#eef5ee;--p-shadow:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08);--p-sidebar-w:224px;
  --pt-surface:#fff;--pt-line:#e1e2d9;--pt-soft:#f1f1ea;--pt-text:#2e302f;--pt-muted:#5f645c;--pt-accent:#e77762;--pt-action:#c1523f;--pt-action-hover:#af4837;--pt-accent-soft:#fdf0eb;--pt-green:#52856b;--pt-green-soft:#eef5ee;--pt-shadow:0 1px 2px rgba(54,53,35,.06),0 10px 30px rgba(54,53,35,.08)}
html[data-theme="dark"]{
  color-scheme:dark;
  --c-accent:#ed967f;--c-green:#a3bd93;--c-gold:#f2c15b;--c-red:#ff8d94;
  --bg:#1e211f;--surface:#262a27;--soft:#30362e;--line:#3b4039;--hint:#34382f;--border2:#4a4f45;
  --text:#eeefe8;--text2:rgba(238,239,232,.78);--text3:rgba(238,239,232,.62);
  --accent:#ed967f;--accent-hover:#e58067;--accent-soft:#42342d;--action:#ed967f;
  --coral:#ed967f;--coral2:#e58067;--purple:#ed967f;
  --action-coral:#c1523f;--action-coral2:#af4837;--action-purple:#c1523f;
  --gold:#e6c680;--gold2:#f2c15b;--green:#a3bd93;--green-soft:#333e2d;
  --red:#ff8d94;--amber:#ffb43a;--blue:#a3bd93;
  --panel:#262a27;--panel2:#30362e;--glass-bg:#262a27;--glass-border:#3b4039;--glass-glow:transparent;
  --border:#3b4039;--div:#3b4039;
  --surface-1:#262a27;--surface-2:#30362e;--surface-3:#262a27;--surface-border:#3b4039;--surface-highlight:transparent;
  --control-bg:#262a27;--control-border:#4a4f45;
  --sh-soft:0 12px 40px rgba(0,0,0,.35);--sh-glass:0 12px 40px rgba(0,0,0,.35);
  --notice-bg:#262a27;--notice-bg-read:#22261f;--notice-border:#3b4039;--notice-shadow:0 12px 40px rgba(0,0,0,.4);
  --notice-message:#a3bd93;--notice-like:#ed967f;--notice-guest:#74b7c5;
  --shadow:0 12px 40px rgba(0,0,0,.35);
  --p-surface:#262a27;--p-line:#3b4039;--p-soft:#30362e;--p-hint:#34382f;--p-accent-soft:#42342d;--p-green-soft:#333e2d;--p-shadow:0 12px 40px rgba(0,0,0,.35);
  --pt-surface:#262a27;--pt-line:#3b4039;--pt-soft:#30362e;--pt-text:#eeefe8;--pt-muted:#9ba395;--pt-accent:#ed967f;--pt-action:#c1523f;--pt-action-hover:#e58067;--pt-accent-soft:#42342d;--pt-green:#a3bd93;--pt-green-soft:#333e2d;--pt-shadow:0 12px 40px rgba(0,0,0,.35)}

/* Icons are SVG line icons now: shared stroke base for both icon classes. */
.vc-glass-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round}
.brand-mark{width:35px;height:38px;flex-shrink:0;color:var(--c-accent)}
.vc-brand-lockup .brand-mark{width:38px;height:38px}
.verified .p-icon{width:19px;height:19px;fill:var(--c-green);stroke:var(--p-surface);stroke-width:1.7}
html[data-theme="dark"] .verified .p-icon{stroke:#262a27}

/* Topbar: flat white bar with a single hairline. */
.topbar{background:var(--p-surface);border-bottom:1px solid var(--p-line);box-shadow:none}
.search{background:var(--bg);border:1px solid var(--p-line);border-radius:9px;box-shadow:none}
.search:focus-within{border-color:var(--coral);box-shadow:none}
.search svg{color:var(--text3)}
.daily-inline{background:var(--p-hint);border:1px solid var(--p-line);box-shadow:none}
.daily-inline .txt span,.daily-inline .txt b{color:var(--text2)}
.tool-btn{background:transparent;border:1px solid transparent;color:var(--text2);border-radius:50%}
.tool-btn:hover{background:var(--p-soft);color:var(--text)}
.tool-btn .dot{border-color:var(--p-surface)}
.tool-av{border:1px solid var(--p-line)}
.vc-theme-quick{border-color:var(--p-line);background:var(--p-hint);color:var(--text2)}
.vc-theme-quick:hover{border-color:var(--coral);color:var(--c-accent)}

/* Route loader + spinners. */
.vc-route-loader{position:absolute;inset:0;display:grid;place-items:center;background:var(--bg);z-index:5;pointer-events:none;opacity:0;transition:opacity .18s}
.vc-route-loader i{width:26px;height:26px;border:3px solid var(--p-line);border-top-color:var(--coral);border-radius:50%;animation:spin .8s linear infinite}
.spin{border-color:var(--p-line);border-top-color:var(--coral)}

/* Shared secondary button (settings, empty states, filter sheet). */
.set-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--p-line);border-radius:10px;background:var(--p-surface);color:var(--text2);font-size:12px;font-weight:700;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.set-btn:hover{background:var(--p-soft);color:var(--text)}
.set-btn.primary,.set-btn#vc-filter-apply{background:var(--accent-btn);border-color:transparent;color:#fff}
.set-btn.primary:hover,.set-btn#vc-filter-apply:hover{background:var(--accent-btn-hover)}

/* Unified dialogs (confirmations, inputs, purchases) — flat card, hairline, soft shadow. */
.vc-modal-layer{background:rgba(24,27,22,.45)}
.vc-modal-card{width:min(100%,460px);padding:26px;border:1px solid var(--p-line);border-radius:20px;background:var(--p-surface);box-shadow:0 25px 100px rgba(23,28,40,.22)}
.vc-modal-card h2{font-size:21px;letter-spacing:-.6px}
.vc-modal-icon{width:48px;height:48px;margin-bottom:16px;border-radius:14px;background:var(--p-accent-soft);color:var(--c-accent);font-size:0}
.vc-modal-icon .vc-glass-icon{width:26px;height:26px}
.vc-modal-x{top:16px;right:16px;width:38px;height:38px;border-radius:50%;background:var(--p-soft);color:var(--text2);font-size:0}
.vc-modal-x:hover{background:var(--p-line);color:var(--text)}
.vc-modal-x .vc-glass-icon{width:18px;height:18px}
.vc-modal-copy{color:var(--text2);font-size:14px;line-height:1.7}
.vc-modal-field label{color:var(--text3);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.vc-modal-field input,.vc-modal-field textarea,.vc-modal-field select{min-height:46px;padding:12px 14px;border:1px solid var(--p-line);border-radius:9px;background:var(--bg);color:var(--text)}
.vc-modal-field input:focus,.vc-modal-field textarea:focus,.vc-modal-field select:focus{border-color:var(--coral);box-shadow:none}
.vc-modal-cancel{border:1px solid var(--p-line);background:var(--p-surface);color:var(--text2)}
.vc-modal-cancel:hover{background:var(--p-soft);color:var(--text)}
.vc-modal-confirm{background:var(--accent-btn);color:#fff;box-shadow:none}
.vc-modal-confirm:hover{background:var(--accent-btn-hover)}
.vc-modal-layer.tone-danger .vc-modal-icon{background:rgba(217,61,89,.1);color:var(--c-red)}
.vc-modal-layer.tone-danger .vc-modal-confirm{background:var(--red)}
.vc-modal-layer.tone-success .vc-modal-icon{background:var(--p-green-soft);color:var(--c-green)}
.vc-modal-layer.tone-warning .vc-modal-icon{background:var(--p-hint);color:var(--c-gold)}
.vc-modal-layer.tone-warning .vc-modal-confirm{background:var(--gold2)}

/* Purchase sheet inside dialogs. */
.vc-purchase-summary{border:1px solid var(--p-line);border-radius:14px;background:var(--p-soft)}
.vc-purchase-summary>div{background:var(--p-surface)}
.vc-purchase-summary .is-short strong{color:var(--c-red)}
.vc-purchase-error{border:1px solid rgba(217,61,89,.35);background:rgba(217,61,89,.08);color:var(--c-red)}
.vc-account-balance-note{color:var(--text3)}
.vc-perk-list li::marker{color:var(--c-green)}
.vc-danger-list li::marker{color:var(--c-red)}
.vc-boost-preview,.vc-badge-detail{border:1px solid var(--p-line);background:var(--p-soft)}
.vc-badge-detail i{background:var(--p-line)}
.vc-badge-detail em{background:linear-gradient(90deg,var(--coral),var(--coral2))}
.vc-payment-method-row{border:1px solid var(--p-line);border-radius:12px;background:var(--p-surface)}
.vc-payment-method-row:hover{border-color:var(--coral)}
.vc-payment-method-icon{background:var(--p-accent-soft);border-radius:9px}
.vc-payment-method-icon .vc-glass-icon{color:var(--c-accent)}
.vc-payment-method-row em{color:var(--c-green)}
.vc-payment-no-balance{border:1px solid rgba(184,109,0,.25);background:var(--p-hint);color:var(--c-gold)}
.vc-payment-security{color:var(--text3)}
.vc-promo-modal-note{color:var(--text3)}

/* Generic lightbox + discover filter sheet. */
.lightbox{background:rgba(24,27,22,.6)}
.lightbox [data-close]{background:var(--p-soft);color:var(--text2)}
.lightbox [data-close]:hover{background:var(--p-line)!important;color:var(--text)!important}
.vc-filter-sheet{background:var(--p-surface)!important;border:1px solid var(--p-line);border-radius:18px;box-shadow:0 25px 100px rgba(23,28,40,.22)}
.vc-filter-sheet strong{color:var(--text)}
.vc-filter-sheet label{color:var(--text2);font-size:12px;font-weight:600}
.vc-filter-sheet input,.vc-filter-sheet select{border:1px solid var(--p-line);border-radius:9px;background:var(--bg);color:var(--text);padding:9px 12px}
.vc-filter-sheet input:focus,.vc-filter-sheet select:focus{border-color:var(--coral);outline:none}
.vc-filter-sheet input[type="checkbox"]{accent-color:var(--coral)}
.vc-filter-count-line{color:var(--text3);font-size:11px;margin-top:10px}

/* Chat scrollbar colors: use the hairline token. */
*{scrollbar-color:var(--p-line) transparent}

/* Flat page mastheads (shared by activity, store, profile, chats). */
.vc-page-copy h1{color:var(--text)}
.vc-page-copy>small{color:var(--text3)}
.vc-page-head::after{box-shadow:none}
.vc-activity-insight>button span{color:var(--c-accent)}

/* Shell is a fixed full-viewport surface; photo nav carries no blur surface. */
.app,.app.auth-screen{position:fixed;inset:0}
.photo-nav{background-color:rgba(0,0,0,0)!important;box-shadow:none!important}

/* ============================================================================
 * SKIN 10 — AUTH / ONBOARDING / BOOT / SYSTEM (flat prototype override layer)
 * Covers boot screen, onboarding, guest gate, auth + magic views, error cards,
 * toast/fatal/offline/install. Loads after app.css; tokens only, hex for
 * scrims and the dark toast. Layout props stay from the base stylesheet.
 * ============================================================================ */

/* ===== Brand lockup (shared by onb/auth logos): coral mark + flat wordmark ===== */
.vc-brand-lockup{color:var(--text)}
.vc-brand-lockup .brand-mark{width:38px;height:38px;color:var(--c-accent);filter:none}
.vc-brand-lockup .vt,
.auth-logo .vt,
.onb-logo .vt{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:var(--text);color:var(--text);font-weight:800;letter-spacing:-1.2px}
.auth-logo .hrt{color:var(--c-accent);filter:none}

/* ===== Boot screen: flat page on var(--bg), no vignette, no gradient text ===== */
#boot-screen{background:var(--bg)!important;color:var(--text)}
#boot-screen::before{display:none}
.boot-logo .hrt{color:var(--c-accent);filter:none}
.boot-logo .vibeTxt{background:none;-webkit-text-fill-color:var(--text);color:var(--text)}
.boot-spin{border-color:var(--line);border-top-color:var(--coral)}
.boot-tag{color:var(--text3)}
/* Boot-timeout fallback (inline styles in index.php) flattened */
#boot-screen h2{color:var(--c-red)!important}
#boot-screen p{color:var(--text3)!important}
#boot-screen button[style]{background:var(--accent-btn)!important;color:#fff!important;border:1px solid var(--accent-btn)!important;border-radius:10px!important;box-shadow:none!important;font-family:var(--font)}
#boot-screen button#vc-boot-help[style]{background:var(--p-soft)!important;border:1px solid var(--p-line)!important;color:var(--text)!important}

/* ===== Auth shell + centered cards ===== */
.auth-wrap{background:transparent}
.auth-card{max-width:430px;background:var(--surface);border:1px solid var(--p-line);border-radius:22px;padding:28px;box-shadow:var(--p-shadow)}
.auth-title{color:var(--text)}
.auth-sub{color:var(--text3)}
.auth-card input{min-height:45px;background:var(--bg);border:1px solid var(--p-line);border-radius:9px;color:var(--text)}
.auth-card input:focus{border-color:var(--coral);background:var(--bg);box-shadow:none}
.auth-submit{margin-top:6px;padding:14px;border-radius:10px;background:var(--accent-btn);color:#fff;min-height:48px;box-shadow:none}
.auth-submit:hover{background:var(--accent-btn-hover);box-shadow:none}
.auth-submit:active{background:var(--accent-btn-active)}
.auth-toggle{color:var(--text2)}
.auth-toggle:hover{color:var(--c-accent)}
.auth-magic summary{color:var(--text2)}
.auth-magic summary:hover{color:var(--c-accent)}
.magic-hint{color:var(--text3)}
.magic-form input{min-height:45px;background:var(--bg);border:1px solid var(--p-line);border-radius:9px;color:var(--text)}
.magic-form button{padding:12px 16px;border-radius:10px;background:var(--p-soft);border:1px solid var(--p-line);color:var(--text);box-shadow:none}
.magic-form button:hover{background:var(--soft)}
.magic-result{color:var(--text2)}
.magic-result .spin{border-color:var(--line);border-top-color:var(--coral);filter:none}

/* ===== Register photo picker + profile fields: flat, no gradients ===== */
.auth-register-photo{border:1px solid var(--p-line);border-radius:9px;background:var(--accent-soft);box-shadow:none}
.auth-register-photo:hover{border-color:var(--coral);background:var(--accent-soft)}
.auth-register-photo strong{color:var(--text)}
.auth-register-photo small{color:var(--text3)}
.auth-profile-fields label{color:var(--text2)}
.auth-profile-fields select,
.auth-profile-fields input{min-height:45px;padding:11px 10px;border-radius:9px;background:var(--bg);border:1px solid var(--p-line);color:var(--text)}
.auth-smart-profile{border:1px solid var(--p-line);border-radius:9px;background:var(--accent-soft);color:var(--text2)}

/* ===== Onboarding: surface card, flat gender/look tiles, tokens only ===== */
.onb-logo{color:var(--text)}
.onb-logo .hrt{color:var(--c-accent);filter:none}
.onb-title{color:var(--text)}
.onb-sub{color:var(--text3)}
.onb-smart{border:1px solid var(--p-line);border-radius:12px;background:var(--accent-soft);color:var(--text2);box-shadow:none}
.onb-smart>strong{color:var(--text2)}
.onb-smart>span{color:var(--text3)}
.onb-smart>.vc-glass-icon{color:var(--c-accent)}
.onb-card{background:var(--surface);border:1px solid var(--p-line);border-radius:22px;padding:22px;box-shadow:var(--p-shadow)}
.onb-step{color:var(--text2)}
.gender-btn{border:1px solid var(--p-line);border-radius:12px;background:var(--surface);box-shadow:none}
.gender-btn:hover{background:var(--p-soft)}
.gender-btn.selected{border-color:var(--coral);background:var(--accent-soft);box-shadow:none}
.gender-btn .vc-guest-gender-icon{filter:none}
.gender-btn:hover .vc-guest-gender-icon,
.gender-btn.selected .vc-guest-gender-icon{transform:none;filter:none}
.gender-btn .g-label{color:var(--text2)}
.gender-btn.selected .g-label{color:var(--text)}
.look-btn{border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);box-shadow:none}
.look-btn:hover{background:var(--p-soft)}
.look-btn.selected{border-color:var(--coral);background:var(--accent-soft);color:var(--text);box-shadow:none}
.look-btn .vc-guest-looking-icon{filter:none}
.onb-age input[type=number]{min-height:45px;background:var(--bg);border:1px solid var(--p-line);border-radius:9px;color:var(--text)}
.onb-age input[type=number]:focus{border-color:var(--coral);background:var(--bg);box-shadow:none}
.onb-age input[type=number]:invalid:not(:focus){border-color:var(--coral)}
.onb-age-hint{color:var(--text3);border-left:1px solid var(--p-line)}
.onb-city-picker input{min-height:45px;background:var(--bg);border:1px solid var(--p-line);border-radius:9px;color:var(--text)}
.onb-city-picker input:focus{border-color:var(--coral);box-shadow:none}
.city-suggest{background:var(--surface);border:1px solid var(--p-line);border-radius:12px;box-shadow:var(--p-shadow)}
.city-suggest-item{color:var(--text)}
.city-suggest-item strong{color:var(--text)}
.city-suggest-item small{color:var(--text3)}
.city-suggest-item:hover,.city-suggest-item:focus-visible{border-color:var(--coral);background:var(--accent-soft)}
.onb-cta{border-radius:10px;background:var(--accent-btn);color:#fff;min-height:48px;box-shadow:none}
.onb-cta:hover:not(:disabled){background:var(--accent-btn-hover);box-shadow:none;transform:none}
.onb-cta:active{background:var(--accent-btn-active);transform:none}
.onb-auth .link-btn{color:var(--text2)}
.onb-auth .link-btn:hover{color:var(--c-accent)}

/* ===== Guest gate (lightbox card): flat surface over a dark scrim ===== */
.guest-profile-gate{background:rgba(24,27,22,.6)!important}
.lightbox.guest-profile-gate>div.guest-gate-card{background:var(--surface)!important;border:1px solid var(--p-line)!important;border-radius:22px!important;box-shadow:var(--p-shadow)!important}
.guest-gate-card h2{color:var(--text)}
.guest-gate-card>p{color:var(--text2)}
.guest-gate-kicker{color:var(--c-accent)}
.guest-gate-close{color:var(--text3)}
.guest-gate-close:hover{background:var(--soft)!important;color:var(--text)}
.guest-gate-context{border:1px solid var(--p-line);border-radius:10px;background:var(--bg)}
.guest-gate-context>img,
.guest-gate-context>span{border-radius:10px;background:var(--accent-soft);color:var(--c-accent);box-shadow:none}
.guest-gate-context small{color:var(--c-accent)}
.guest-gate-context strong{color:var(--text)}
.guest-gate-context em{color:var(--text3)}
.guest-photo-picker{border:1px solid var(--p-line);border-radius:12px;background:var(--bg);color:var(--text2)!important}
.guest-photo-picker span{border-radius:9px;background:var(--soft);background-size:cover;background-position:center}
.guest-photo-picker b{color:var(--text)}
.guest-photo-hint{color:var(--text3)}
.guest-gate-card label:not(.guest-photo-picker){color:var(--text2)}
.guest-gate-card label:not(.guest-photo-picker)>input,
.guest-gate-card label:not(.guest-photo-picker)>select,
.guest-gate-card .guest-city-row .city-picker>input{min-height:45px;padding:12px 13px;border-radius:9px;border:1px solid var(--p-line);background:var(--bg);color:var(--text)}
.guest-gate-card label:not(.guest-photo-picker)>input:focus,
.guest-gate-card label:not(.guest-photo-picker)>select:focus{border-color:var(--coral)}
.guest-city-row button{border:1px solid var(--p-line);border-radius:10px;background:var(--p-soft);color:var(--c-accent)}
.guest-inferred-note,
.guest-gate-card>small{color:var(--text3)}
.guest-gate-status{color:var(--c-accent)}
.guest-gate-submit{min-height:48px;padding:13px 16px;border-radius:10px;background:var(--accent-btn);color:#fff;box-shadow:none}
.guest-gate-submit:hover{background:var(--accent-btn-hover)}
.guest-gate-submit:disabled{opacity:.55;cursor:wait}

/* ===== Toast: flat dark pill; variants keep a token-tinted hairline ===== */
.toast{background:#30382f;color:#fff;border:1px solid #30382f;border-radius:11px;box-shadow:0 8px 25px rgba(0,0,0,.15);font-weight:600}
.toast.success{border-color:var(--green);color:#fff}
.toast.error{border-color:var(--red);color:#fff}

/* ===== Fatal / offline / install strip buttons ===== */
#vc-fatal{background:var(--red)!important;color:#fff!important;border-top:0!important}
#offline-banner{background:var(--hint);border-top:1px solid var(--p-line);color:var(--c-gold)}
#offline-banner span{color:var(--c-gold)}
#install-btn{background:var(--accent-btn);color:#fff;border-radius:12px;border:0;box-shadow:none}
#install-btn:hover{background:var(--accent-btn-hover)}
#pwa-update-btn{background:var(--p-soft);color:var(--text);border:1px solid var(--p-line);border-radius:12px;box-shadow:none}

/* ===== Mobile: 16px inputs, tighter paddings, full-bleed feel ===== */
@media(max-width:768px){
  .auth-card input,.auth-profile-fields select,.auth-profile-fields input,
  .magic-form input,.onb-age input[type=number],.onb-city-picker input,
  .guest-gate-card label:not(.guest-photo-picker)>input,
  .guest-gate-card label:not(.guest-photo-picker)>select{font-size:16px}
  .auth-wrap{padding:20px}
  .onb-card,.auth-card{padding:22px}
}
@media(max-width:430px){
  .auth-wrap{padding:16px}
  .onb-card,.auth-card{padding:22px;border-radius:19px}
  .magic-form{flex-direction:column}
  .magic-form button{width:100%}
}

/* ===== Dark theme: tokens carry the look; only scrims/toast are fixed ===== */
html[data-theme="dark"] .guest-profile-gate{background:rgba(0,0,0,.55)!important}

/* ===== Flat prototype — chats: list, conversation, context rail, paywall, pickers ===== */

/* Icons sized for chat surfaces. */
.chat-back>.vc-glass-icon,#vc-chat-block>.vc-glass-icon{width:20px;height:20px}
.c-add>.vc-glass-icon,.c-express>.vc-glass-icon,.c-ai>.vc-glass-icon,.c-send>.vc-glass-icon{width:20px;height:20px}
.chat-match-next>.vc-glass-icon,.chat-list-tools label>.vc-chat-search-icon{width:18px!important;height:18px!important}
.chat-quick-action>.vc-glass-icon,.chat-ref-action>.vc-glass-icon{width:16px;height:16px}
.vc-chat-status-icon{width:14px!important;height:14px!important}
.chat-attach-menu>button>.vc-glass-icon,.chat-compact-access>.vc-chat-access-icon{width:20px!important;height:20px!important}
.chat-floating-gift>.vc-glass-icon{width:22px;height:22px}
.vc-rescue-offer-icon .vc-glass-icon{width:20px;height:20px}
.vc-sticker-head>div>span>.vc-glass-icon{width:22px;height:22px}

/* Chats list: white page, flat search, white row card. */
.chat-list-page{background:var(--surface)}
.chat-list-tools small{color:var(--text3);font-size:9px;letter-spacing:1.3px}
.chat-list-tools h1{font-size:24px;letter-spacing:-.8px;font-weight:800}
.chat-list-tools label{background:var(--surface);border:1px solid var(--p-line);border-radius:9px;box-shadow:none;color:var(--text3)}
.chat-list-tools label:focus-within{border-color:var(--coral);box-shadow:none}
.chat-list-tools input{font-size:13px}
.chat-list-page .chat-list{border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:var(--p-shadow)}
.chat-search-empty{padding:26px 20px;color:var(--text3);font-size:12px}

/* Match strip: flat round avatars, flat next button. */
.chat-match-scroller{margin-bottom:12px}
.chat-match-strip button{color:var(--text3)}
.chat-match-strip button small{font-size:10px;color:var(--text3)}
.chat-match-avatar{width:50px;height:50px;border:1px solid var(--p-line);border-radius:50%;background-color:var(--accent-soft);color:#fff;font-weight:800;box-shadow:none}
.chat-match-avatar img{border-radius:50%}
.chat-match-strip button:hover .chat-match-avatar,.chat-match-strip button.has-gallery .chat-match-avatar,.chat-match-strip button.has-new-photo .chat-match-avatar{transform:none;border-color:var(--coral);box-shadow:none}
.chat-match-photo-count,.chat-match-unread{border:2px solid var(--surface);border-radius:999px;font-weight:800}
.chat-match-photo-count{background:var(--text);color:#fff}
.chat-match-unread{background:var(--coral);color:#fff}
.chat-match-next{width:36px;height:36px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);box-shadow:none;font-size:0}
.chat-match-next:hover{background:var(--p-soft);color:var(--text)}

/* Chat rows: radius 12, hover soft, unread/draft flat tints. */
.chat-row{gap:12px;padding:12px 14px;border-bottom:1px solid var(--p-line);border-radius:12px;transition:background .18s}
.chat-row:last-child{border-bottom:0}
.chat-row:hover{background:var(--soft)}
.chat-row.has-unread{background:var(--accent-soft)}
.chat-row.has-unread .cnm>span{font-weight:700;color:var(--text)}
.chat-row .av{width:44px;height:44px;border-radius:50%;background:var(--accent-soft)!important;color:var(--c-accent)!important;font-weight:700;box-shadow:none}
.chat-row .av .dot,.chat-header .av .dot{background:var(--green);border:2px solid var(--surface)}
.cnm{font-size:14px;font-weight:700}
.chat-row-presence{font-size:10px;font-weight:600;color:var(--text3)}
.chat-row-presence.is-online{color:var(--c-green)}
.cmsg{font-size:12px;color:var(--text3)}
.chat-row.has-draft .cmsg{color:var(--text);font-weight:600}
.chat-row-draft,.chat-row-draft-label{color:var(--c-accent)}
html[data-theme="light"] .chat-row-draft,html[data-theme="light"] .chat-row-draft-label{color:var(--c-accent)}
.ctm{font-size:10px;color:var(--text3)}
.unread{min-width:18px;height:18px;border-radius:9px;background:var(--coral);color:#fff;font-size:10px;font-weight:700}

/* Insight cards: flat white cards with hairline. */
.chat-insight-stack.vc-progress-deck .vc-progress-card{border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.chat-insight-stack .vc-progress-card:hover{transform:none;box-shadow:none;border-color:var(--border2)}
.chat-insight-stack .vc-progress-icon{border:0;border-radius:10px;background:var(--accent-soft)!important;box-shadow:none}
.chat-insight-stack .vc-progress-card.tone-blue .vc-progress-icon,.chat-insight-stack .vc-progress-card.tone-green .vc-progress-icon{background:var(--p-green-soft)!important}
.chat-insight-stack .vc-progress-card.tone-blue .vc-progress-icon>.vc-glass-icon,.chat-insight-stack .vc-progress-card.tone-green .vc-progress-icon>.vc-glass-icon{color:var(--c-green)}
.chat-insight-stack .vc-progress-icon>.vc-glass-icon{color:var(--c-accent)}
.chat-insight-stack .vc-progress-copy small{color:var(--text3)}
.chat-insight-stack .vc-progress-track{background:var(--soft);box-shadow:none}
.chat-insight-stack .vc-progress-track>em{background:var(--coral);box-shadow:none}
.chat-insight-stack .vc-progress-card:not(.is-active){border-radius:12px;background:var(--bg)}
.chat-insight-stack .vc-context-cta{border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.chat-insight-stack .vc-context-icon{border:0;border-radius:10px;background:var(--accent-soft);box-shadow:none}
.chat-insight-stack .vc-context-copy>small{color:var(--c-accent)}
.chat-insight-stack .vc-context-progress{border:1px solid var(--p-line);background:var(--bg);box-shadow:none}
.chat-insight-stack .vc-context-progress strong{color:var(--c-accent)}
.chat-insight-stack .vc-context-progress>i{background:var(--soft)}
.chat-insight-stack .vc-context-progress>i>em{background:var(--coral);box-shadow:none}
.chat-insight-stack .vc-context-actions button{border-radius:10px;box-shadow:none}
.chat-insight-stack .vc-context-primary{border:1px solid var(--accent-btn);background:var(--accent-btn);color:#fff}
.chat-insight-stack .vc-context-primary:hover{background:var(--accent-btn-hover);color:#fff}
.chat-insight-stack .vc-context-secondary{border:1px solid var(--p-line);background:var(--surface);color:var(--text2)}
.chat-insight-stack .vc-context-secondary:hover{border-color:var(--coral);color:var(--text)}
.chat-insight-stack .vc-funnel-next,.chat-insight-stack .vc-funnel-reward{border:1px solid var(--p-line);border-radius:12px;background:var(--bg)}
.chat-insight-stack .vc-funnel-reward span,.chat-insight-stack .vc-funnel-next span{color:var(--c-green)}

/* Conversation: flat white header, warm thread, flat bubbles. */
.chat-view,.chat-compact-view{background:var(--surface)}
.chat-header{padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--p-line);box-shadow:none}
.chat-back,.icon-btn{width:36px;height:36px;border-radius:10px;background:transparent;border:0;color:var(--text2)}
.chat-back:hover,.icon-btn:hover{background:var(--soft);color:var(--text)}
.chat-header .av{width:38px;height:38px;border-radius:50%;background:var(--accent-soft)!important;color:var(--c-accent)!important;box-shadow:none}
.ch-nm{font-size:14px;font-weight:700}
.ch-info .vc-profile-trust-badge{border:1px solid var(--p-line)!important;border-radius:999px;background:var(--bg)!important;color:var(--text3)!important;font-weight:700}
.chat-thread{background:var(--bg);box-shadow:none}
.daynote{text-align:center;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin:10px 0}
.chat-reference-view{background:var(--surface)}
.chat-reference-view::before{display:none}
.chat-reference-view .chat-header,.chat-reference-view .chat-thread{background:transparent;box-shadow:none}
.chat-reference-view .chat-thread{background:var(--bg)}

/* Bubbles: them soft-left, me accent-soft-right; stickers borderless. */
.msg-wrap{max-width:75%}
.msg-wrap.is-pending{opacity:.7}
.msg-wrap.is-failed .bub{border:1px solid var(--red)}
.bub{border:0;border-radius:12px 12px 12px 3px;background:var(--soft);color:var(--text);font-size:var(--t-chat);box-shadow:none}
.bub.me{border-radius:12px 12px 3px 12px;background:var(--accent-soft);color:#a8543f}
.bub.them{background:var(--soft);color:var(--text)}
.chat-reference-view .msg-wrap.them{border:0;border-radius:12px 12px 12px 3px;background:transparent;box-shadow:none;padding:0}
.chat-reference-view .msg-wrap.me{max-width:75%}
.chat-reference-view .bub{border:0;border-radius:12px 12px 12px 3px}
.chat-reference-view .bub.me{border-radius:12px 12px 3px 12px}
.chat-compact-view .msg-wrap.is-sticker{max-width:230px!important}
.chat-compact-view .bub.chat-sticker-bubble{padding:0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.chat-sticker{filter:none}
.bub img{border-radius:10px}
.bub-footer .bub-ts{font-size:10px;color:var(--text3)}
.bub-delivery{color:var(--text3)}
.bub-delivery.is-seen,.bub-delivery.is-sent{color:var(--c-green)}
.bub-delivery.is-pending{color:var(--text3)}
.bub-delivery.is-failed{color:var(--c-red)}
.bub-retry{min-height:24px;border:1px solid var(--red);border-radius:9px;background:var(--surface);color:var(--c-red);font-size:10px;font-weight:700}
.bub .attach{color:inherit}
.bub button.attach{background:var(--accent-soft)!important;color:var(--c-accent)!important;border:0;border-radius:10px;font-size:12px}
.bub button.attach:hover{filter:none;border:1px solid var(--coral)}
.chat-gift-card{border-radius:12px;background:var(--surface);box-shadow:none}
.chat-gift-card strong{color:var(--text3);text-transform:uppercase;letter-spacing:.05em}
.chat-gift-spark{color:var(--c-accent)}
.chat-gift-fallback{color:var(--c-accent)}

/* Context rail: flat pills, quick actions, access and offer rows. */
.vc-chat-status-pill{background:var(--surface)!important;border:1px solid var(--p-line)!important;border-radius:999px;color:var(--text2)!important;font-size:10px;font-weight:700;box-shadow:none}
.chat-flirt-scale{gap:6px;color:var(--text3);font-size:10px;font-weight:700}
.chat-flirt-scale i{background:var(--soft);box-shadow:none}
.chat-flirt-scale i em{background:var(--coral)!important;box-shadow:none}
.chat-flirt-scale b{color:var(--text2)}
.chat-quick-actions{gap:6px;margin-top:8px}
.chat-quick-action{min-height:38px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2)}
.chat-quick-action>strong{font-size:10px;font-weight:700}
.chat-quick-action.wish{border-color:transparent;background:var(--p-green-soft);color:var(--c-green)!important}
.chat-quick-action:hover{border-color:var(--coral);background:var(--accent-soft);color:#a8543f}
.chat-compact-access{border:1px solid var(--p-line);border-radius:12px;background:var(--bg);color:var(--text2);box-shadow:none}
.chat-compact-access strong{font-size:12px;font-weight:700}
.chat-compact-access small{color:var(--text3)}
.chat-compact-access>.vc-chat-access-icon{color:var(--c-accent)}
.chat-compact-offers{gap:6px;margin-top:8px}
.chat-compact-offer,.chat-ref-offer{border:1px solid var(--p-line);border-radius:12px;background:var(--surface)}
.chat-compact-offer strong,.chat-ref-offer strong{font-size:11px;font-weight:700;color:var(--text)}
.chat-compact-offer-actions button,.chat-ref-offer-actions button{min-height:28px;border:1px solid var(--p-line);border-radius:9px;background:var(--surface);color:var(--text2);font-size:10px;font-weight:700}
.chat-compact-offer-actions button:hover,.chat-ref-offer-actions button:hover{background:var(--soft);color:var(--text)}

/* Legacy context rail: flat stat tiles and action cards. */
.chat-reference-view #vc-chat-context{background:var(--surface);border-bottom:1px solid var(--p-line)!important}
.chat-ref-stats{border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.chat-ref-stat{min-height:60px;border:1px solid var(--p-line);border-radius:12px;background:var(--bg);box-shadow:none}
button.chat-ref-stat:hover{transform:none;background:var(--soft);border-color:var(--border2)}
.chat-ref-stat-icon{border:0;border-radius:10px;background:var(--p-soft);color:var(--text2)}
.chat-ref-stat.coral .chat-ref-stat-icon{background:var(--p-accent-soft);color:var(--c-accent)}
.chat-ref-stat.gold .chat-ref-stat-icon{background:var(--p-accent-soft);color:var(--c-accent)}
.chat-ref-stat strong{color:var(--text)}
.chat-ref-actions{margin-top:12px}
.chat-ref-action{min-height:96px;border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.chat-ref-action:hover{transform:none;filter:none;border-color:var(--border2)}
.chat-ref-action>span{color:var(--c-accent)}
.chat-ref-action.coral{background:var(--p-accent-soft);border-color:var(--coral)}
.chat-ref-action.coral>span{color:var(--c-accent)}
.chat-ref-meta{margin-top:10px}
#vc-chat-context button[data-ca],#vc-chat-context button[data-offer-action]{background:var(--surface)!important;border:1px solid var(--p-line)!important;border-radius:999px;color:var(--text2)!important;font-size:10px;font-weight:700;padding:6px 10px}
#vc-chat-context button[data-ca]:hover,#vc-chat-context button[data-offer-action]:hover{background:var(--soft);color:var(--text)}
/* Attach menu, floating gift, scroll-down: white cards. */
.chat-attach-menu{border:1px solid var(--p-line);border-radius:16px;background:var(--surface)!important;box-shadow:var(--p-shadow)}
.chat-attach-menu>button{border-radius:10px}
.chat-attach-menu>button:hover,.chat-attach-menu>button:focus-visible{transform:none;border-color:var(--p-line);background:var(--soft)}
.chat-attach-menu strong{font-size:13px;font-weight:700}
.chat-floating-gift{width:44px;height:44px;border:1px solid var(--p-line);border-radius:12px;background:var(--surface)!important;color:var(--c-accent);box-shadow:var(--p-shadow);filter:none}
.chat-floating-gift:hover{border-color:var(--coral);background:var(--accent-soft)!important;filter:none}
.chat-down{height:38px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface)!important;color:var(--text2);box-shadow:var(--p-shadow)}
.chat-down small{color:var(--c-accent)}
.vc-chat-action-menu{gap:6px}
.vc-chat-action-menu>button{border:1px solid var(--p-line);border-radius:12px;background:var(--surface)}
.vc-chat-action-menu>button>span{border-radius:10px;background:var(--p-soft)}
.vc-chat-action-menu .danger{border-color:var(--red);background:var(--surface);color:var(--c-red)}

/* Composer: flat bar on a hairline, 43px send square. */
.composer,.chat-reference-view .composer{border-top:1px solid var(--p-line);background:var(--surface)!important;box-shadow:none}
.chat-reference-view .composer{margin:0;border:0;border-top:1px solid var(--p-line);border-radius:0}
.composer textarea,.chat-reference-view .composer textarea{min-height:42px;padding:10px 12px;border:1px solid var(--p-line);border-radius:10px;background:var(--bg);color:var(--text);font-size:var(--t-chat);box-shadow:none}
.composer textarea:focus{border-color:var(--coral);background:var(--surface);box-shadow:none;outline:none}
.c-add,.c-express,.c-ai{width:40px;height:40px;border-radius:50%;background:var(--p-soft);border:1px solid var(--p-line);color:var(--text2)}
.c-add:hover,.c-express:hover,.c-ai:hover{background:var(--soft);color:var(--text)}
.c-send{width:43px;height:43px;border-radius:10px;background:var(--accent-btn)!important;color:#fff!important;box-shadow:none}
.c-send:hover{background:var(--accent-btn-hover)!important}
.c-send:disabled{background:var(--p-soft)!important;color:var(--text3)!important;box-shadow:none}
.chat-sticker-draft{border:1px solid var(--p-line);border-radius:12px;background:var(--surface)!important;box-shadow:var(--p-shadow)}
.chat-sticker-draft>[data-sticker-draft-clear]{border-radius:9px;background:var(--soft)}
.chat-sticker-draft>button:focus-visible{outline-color:var(--coral)}

/* Chat paywall + rescue banner: flat cards, solid CTA. */
.vc-chat-paywall>p{color:var(--text2);font-size:13px}
.vc-chat-paywall>small{color:var(--c-green);font-weight:700}
.vc-chat-paywall-person{border:1px solid var(--p-line);border-radius:12px;background:var(--bg)}
.vc-chat-paywall-person>img,.vc-chat-paywall-person>span{border-radius:10px;background:var(--accent-soft)!important;color:var(--c-accent)!important}
.vc-chat-paywall-pack{border:1px solid var(--p-line);border-radius:12px;background:var(--surface)}
.vc-chat-paywall-pack strong{color:var(--text)}
.vc-chat-paywall-pack>b{color:var(--c-accent)}
.vc-rescue-offer{border:1px solid var(--p-line);border-radius:16px;background:var(--surface)!important;box-shadow:var(--p-shadow)}
.vc-rescue-offer-icon{border:1px solid var(--p-line);border-radius:10px;background:var(--p-accent-soft);color:var(--c-accent)}
.vc-rescue-offer-copy span{color:var(--c-accent)}
.vc-rescue-offer-copy s{color:var(--text3);text-decoration-color:var(--coral)}
.vc-rescue-offer-time strong{color:var(--text)}
.vc-rescue-offer>button{border:0;border-radius:10px;background:var(--accent-btn)!important;color:#fff!important;font-weight:800;box-shadow:none}
.vc-rescue-offer>button:hover{filter:none;transform:none;background:var(--accent-btn-hover)!important}
.vc-rescue-offer>button:focus-visible{outline:2px solid var(--coral);outline-offset:2px}

/* Sticker picker: white panel, flat tabs and tiles. */
.vc-sticker-layer{background:rgba(46,48,47,.4)}
.vc-sticker-picker{border:1px solid var(--p-line);border-radius:16px;background:var(--surface)!important;box-shadow:var(--p-shadow)}
.vc-sticker-head strong{font-size:15px}
.vc-sticker-head>[data-sticker-close]{border-radius:10px;background:var(--bg)}
.vc-sticker-tabs{border:1px solid var(--p-line);border-radius:12px;background:var(--bg)}
.vc-sticker-tabs>button{border-radius:9px;color:var(--text3)}
.vc-sticker-tabs>button:hover,.vc-sticker-tabs>button.is-active,.vc-sticker-tabs>button.is-flirt{border-color:var(--coral);background:var(--accent-soft);color:var(--c-accent)}
.vc-sticker-tabs>button.is-premium{border-color:var(--p-line);color:var(--text3)}
.vc-sticker-tabs>button.is-premium.is-active{border-color:var(--coral);background:var(--accent-soft);color:var(--c-accent);box-shadow:none}
.vc-sticker-tab-lock{color:var(--c-accent)}
.vc-sticker-premium-banner{border:1px solid var(--p-line);border-radius:12px;background:var(--bg);color:var(--text2)}
.vc-sticker-price-note{color:var(--text3)}
.vc-sticker-grid{gap:6px}
.vc-sticker-option{border:1px solid var(--p-line);border-radius:12px;background:var(--surface);box-shadow:none}
.vc-sticker-option:hover{transform:none;border-color:var(--coral)}

/* Emoji picker panel (runtime-injected styles need priority). */
.vc-emoji-panel{border:1px solid var(--p-line)!important;border-radius:16px!important;background:var(--surface)!important;color:var(--text)!important;box-shadow:var(--p-shadow)!important}
html[data-theme="light"] .vc-emoji-panel{background:var(--surface)!important;box-shadow:var(--p-shadow)!important}
.vc-emoji-head{border-bottom:1px solid var(--p-line)}
.vc-emoji-title{font-size:14px;font-weight:700}
.vc-emoji-title small{color:var(--text3)}
.vc-emoji-title>.vc-glass-icon{width:18px;height:18px;color:var(--c-accent)}
.vc-emoji-search{min-height:40px;border:1px solid var(--p-line)!important;border-radius:10px!important;background:var(--bg)!important;color:var(--text)!important;box-shadow:none!important;font-size:13px}
.vc-emoji-search:focus{border-color:var(--coral)!important;box-shadow:none!important}
.vc-emoji-close{width:40px;height:40px;border:1px solid var(--p-line)!important;border-radius:10px!important;background:var(--bg)!important;color:var(--text2)!important;font-size:18px}
.vc-emoji-close:hover{background:var(--soft)!important;color:var(--text)!important}
.vc-emoji-tabs{border-bottom:1px solid var(--p-line)}
.vc-emoji-tab{border:1px solid transparent;border-radius:9px}
.vc-emoji-tab:hover,.vc-emoji-tab.is-active{border-color:var(--p-line)!important;background:var(--accent-soft)!important;transform:none}
.vc-emoji-panel .vc-expression-switch>button{border:1px solid var(--p-line);border-radius:9px;background:var(--bg);color:var(--text2)}
.vc-emoji-panel .vc-expression-switch>button.is-active{border-color:var(--coral);background:var(--accent-soft);color:var(--c-accent)}
.vc-emoji-panel .vc-expression-switch>button>.vc-glass-icon{width:18px;height:18px}
.vc-emoji-section h3{color:var(--text3)}
.vc-emoji-item{border-radius:9px}
.vc-emoji-item:hover,.vc-emoji-item:focus-visible{transform:none;border-color:transparent!important;background:var(--soft)!important}
.vc-emoji-empty{color:var(--text3)}

/* Wingman options and chat empty state inside the thread. */
.vc-ai-option{border:1px solid var(--p-line)!important;border-radius:10px!important;background:var(--surface)!important;color:var(--text)!important}
.chat-compact-view .vc-context-cta.chat-empty{border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.chat-compact-view .vc-context-cta.chat-empty:before{display:none}
.chat-compact-view .vc-context-cta.chat-empty .vc-context-icon{border:0;border-radius:10px;background:var(--accent-soft);box-shadow:none}
.chat-compact-view .vc-context-cta.chat-empty .vc-context-icon>span{filter:none}

/* Dark theme: tokens carry most of it, glass shadows only need nudging. */
html[data-theme="dark"] .chat-view,html[data-theme="dark"] .chat-list-page,html[data-theme="dark"] .chat-header,html[data-theme="dark"] .chat-list-page .chat-list{background:var(--p-surface)}
html[data-theme="dark"] .chat-thread,html[data-theme="dark"] .composer,html[data-theme="dark"] .chat-sticker-draft{background:var(--p-surface)}
html[data-theme="dark"] .bub{background:var(--p-soft);color:var(--text)}
html[data-theme="dark"] .bub.me{background:var(--p-accent-soft);color:var(--text)}
html[data-theme="dark"] .chat-quick-action,html[data-theme="dark"] .vc-chat-status-pill,html[data-theme="dark"] .chat-compact-offer{background:var(--p-surface)}

/* Mobile: full-bleed thread, sticky composer, wide bubbles. */
@media(max-width:768px){
  .chat-list-page{padding:12px 10px calc(90px + var(--safe-bottom))}
  .chat-list-tools h1{font-size:21px}
  .chat-list-tools label{min-width:0;margin-top:12px}
  .chat-match-avatar{width:46px;height:46px}
  .chat-view,.chat-compact-view{background:var(--surface)}
  .chat-thread{background:var(--surface);padding:12px 10px}
  .msg-wrap{max-width:85%}
  .chat-compact-view .msg-wrap.is-sticker{max-width:60%!important}
  .composer{position:sticky;bottom:0;z-index:6;padding:12px;gap:6px;padding-bottom:calc(12px + var(--safe-bottom))}
  .chat-header{padding:8px 10px}
  .chat-down{right:12px}
}
@media(max-width:430px){
  .msg-wrap{max-width:85%}
  .bub{padding:9px 12px;font-size:var(--t-chat)}
  .composer{padding:12px 10px;padding-bottom:calc(10px + var(--safe-bottom))}
  .c-add,.c-express,.c-ai{width:38px;height:38px}
  .c-send{width:43px;height:43px}
  .chat-quick-action{min-height:36px}
  .chat-insight-stack.vc-progress-deck{grid-auto-columns:minmax(180px,80%)}
  .vc-rescue-offer{border-radius:14px}
}

/* 30_pages.css — flat prototype skin for own profile, public profile, activity, settings, store */

/* ===== Shared page controls (scoped to this area's views) ===== */
.own-profile-view .vc-icon-glass,.public-profile-page .vc-icon-glass,.activity-view .vc-icon-glass,.settings-view .vc-icon-glass,.vc-support-page .vc-icon-glass,.vc-crypto-hosted-card .vc-icon-glass{
  background:var(--surface);border:1px solid var(--p-line);color:var(--text2);width:36px;height:36px;border-radius:999px;display:grid;place-items:center}
.own-profile-view .vc-icon-glass:hover,.public-profile-page .vc-icon-glass:hover,.activity-view .vc-icon-glass:hover,.settings-view .vc-icon-glass:hover,.vc-support-page .vc-icon-glass:hover,.vc-crypto-hosted-card .vc-icon-glass:hover{background:var(--p-soft);color:var(--text)}
.public-profile-page .vc-labelled-glass-button,.own-profile-view .vc-labelled-glass-button,.activity-view .vc-labelled-glass-button,.settings-view .vc-labelled-glass-button,.vc-support-page .vc-labelled-glass-button{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 16px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:13px;font-weight:700;box-shadow:none}
.public-profile-page .vc-labelled-glass-button:hover,.own-profile-view .vc-labelled-glass-button:hover,.activity-view .vc-labelled-glass-button:hover,.settings-view .vc-labelled-glass-button:hover,.vc-support-page .vc-labelled-glass-button:hover{background:var(--p-soft);color:var(--text)}
.public-profile-page .vc-labelled-glass-button.primary,.activity-view .set-btn.primary,.settings-view .set-btn.primary{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}
.public-profile-page .vc-labelled-glass-button.primary:hover{background:var(--accent-btn-hover);color:#fff}

/* ===== Own profile ===== */
.own-profile-view{max-width:1060px;margin:0 auto}
.own-profile-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:22px}
.own-profile-eyebrow{display:block;font-size:9px;letter-spacing:1.3px;font-weight:700;color:var(--text3);text-transform:uppercase;margin-bottom:10px}
.own-profile-page-head h1{font-size:clamp(28px,2.6vw,40px);font-weight:800;letter-spacing:-1.6px;line-height:1.2;margin:0}
.own-profile-page-head p{margin:10px 0 0;font-size:14px;color:var(--text3)}
.own-profile-edit{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:13px;font-weight:700}
.own-profile-edit:hover{background:var(--p-soft);color:var(--text)}
.own-profile-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.35fr);gap:16px;align-items:start}
.own-profile-preview{background:var(--surface);border:1px solid var(--p-line);border-radius:19px;overflow:hidden;box-shadow:var(--p-shadow)}
.own-profile-cover{position:relative;height:220px;background-size:cover;background-position:center}
.own-profile-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,27,22,.02) 40%,rgba(24,27,22,.62))}
.own-profile-progress-pill{position:absolute;z-index:2;top:12px;right:12px;padding:6px 12px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text);font-size:11px;font-weight:800;box-shadow:none}
.own-profile-avatar{position:absolute;left:18px;bottom:-34px;width:92px;height:92px;border-radius:26px;background-size:cover;background-position:center;border:3px solid var(--surface);box-shadow:var(--p-shadow);display:grid;place-items:center;overflow:hidden}
.own-profile-avatar-initials{font-size:26px;font-weight:800;color:#fff}
.own-profile-copy{padding:46px 18px 0}
.own-profile-copy .vp-nm{font-size:22px;font-weight:800;letter-spacing:-.7px;color:var(--text)}
.own-profile-copy .vp-loc{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:13px;color:var(--text3)}
.own-profile-copy .vp-bio{margin:10px 0 0;font-size:13px;line-height:1.6;color:var(--text2)}
.own-profile-copy .ints{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.own-profile-copy .chip,.vc-int-chip{padding:5px 11px;border:1px solid var(--p-line);border-radius:999px;background:var(--soft);color:var(--text2);font-size:11px;font-weight:600}
.vc-int-chip.is-on{background:var(--p-accent-soft);border-color:transparent;color:#a8543f}
.own-profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 18px 18px}
.own-profile-stats span{padding:12px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--soft)}
.own-profile-stats strong{display:block;font-size:19px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
.own-profile-stats small{display:block;margin-top:3px;font-size:10px;color:var(--text3)}
.own-profile-panels{display:grid;gap:12px}
.own-profile-account,.own-profile-gallery,.own-profile-facts{background:var(--surface);border:1px solid var(--p-line);border-radius:16px;padding:16px 18px;box-shadow:none}
.own-profile-account{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px}
.own-profile-card-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.own-profile-account strong{display:block;margin-top:2px;font-size:14px;font-weight:800;color:var(--text)}
.own-profile-account p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--text3)}
.own-profile-account>button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:12px;font-weight:700}
.own-profile-account>button:hover{background:var(--p-soft)}
.own-profile-completion{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;border:1px solid var(--p-line);border-radius:16px;background:var(--surface);text-align:left;box-shadow:none}
.own-profile-completion:hover{background:var(--p-soft)}
.own-profile-completion .vc-profile-status-icon{color:var(--c-accent)}
.own-profile-completion span b{display:block;font-size:13px;font-weight:800;color:var(--text)}
.own-profile-completion span small{display:block;margin-top:2px;font-size:11px;color:var(--text3)}
.own-profile-completion em{margin-left:auto;font-style:normal;font-size:12px;font-weight:800;color:#a8543f;background:var(--p-accent-soft);border-radius:999px;padding:4px 10px}
.profile-complete-ok.own-profile-completion{background:var(--p-green-soft);border-color:transparent;color:var(--c-green)}
.profile-complete-ok.own-profile-completion em{background:var(--surface);color:var(--c-green)}
.own-profile-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.own-profile-card-head h2{margin:2px 0 0;font-size:16px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.vc-profile-add-photo{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:12px;font-weight:700}
.vc-profile-add-photo:hover{background:var(--p-soft);color:var(--text)}
.own-profile-gallery .pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.pcell{position:relative;aspect-ratio:1;background-size:cover;background-position:center;border:1px solid var(--p-line);border-radius:12px;overflow:hidden}
.vc-photo-main,.vc-photo-del{position:absolute;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);box-shadow:none}
.vc-photo-main{top:5px;right:5px}
.vc-photo-del{bottom:5px;right:5px}
.vc-photo-main:hover,.vc-photo-del:hover{background:var(--p-soft);color:var(--c-accent)}
.own-profile-photo-empty{display:grid;place-items:center;gap:6px;min-height:130px;border:1px dashed var(--p-line);border-radius:12px;background:var(--soft);color:var(--text3);font-size:12px;font-weight:700}
.own-profile-photo-empty:hover{background:var(--p-accent-soft);border-color:var(--coral);color:#a8543f}
.own-profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;overflow:hidden}
.own-profile-facts>div{padding:14px 16px}
.own-profile-facts>div+div{border-left:1px solid var(--p-line)}
.own-profile-facts span{display:block;font-size:9px;letter-spacing:1.1px;font-weight:700;color:var(--text3);text-transform:uppercase}
.own-profile-facts strong{display:block;margin-top:5px;font-size:13px;font-weight:700;color:var(--text)}
.own-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.own-profile-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:13px;font-weight:700;box-shadow:none}
.own-profile-action:hover{background:var(--p-soft);color:var(--text)}
/* badges */
.badges-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.badge-list-item{list-style:none}
.badge-card{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--p-line);border-radius:14px;background:var(--surface);text-align:left}
.badge-card:hover{background:var(--p-soft)}
.badge-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.badge-card.locked .badge-icon{background:var(--soft);color:var(--text3)}
.badge-copy b{display:block;font-size:12px;font-weight:800;color:var(--text)}
.badge-copy span{display:block;margin:2px 0 6px;font-size:10px;line-height:1.4;color:var(--text3)}
.badge-copy i{display:block;height:4px;border-radius:999px;background:var(--line);overflow:hidden}
.badge-copy i em{display:block;height:100%;border-radius:999px;background:var(--coral)}
.badge-copy small{display:block;margin-top:5px;font-size:10px;color:var(--text3)}
.badge-card.earned .badge-copy small{color:var(--c-green);display:inline-flex;align-items:center;gap:4px}
.vc-badge-earned-icon{color:var(--c-green)}
.vc-badge-detail i{display:block;height:4px;border-radius:999px;background:var(--line);overflow:hidden;margin:8px 0}
.vc-badge-detail i em{display:block;height:100%;border-radius:999px;background:var(--coral)}
.vc-badge-detail strong{font-size:12px;color:var(--text2)}
/* purchase history */
.store-history-card{background:var(--surface);border:1px solid var(--p-line);border-radius:16px;padding:16px 18px}
#vc-store-history .store-pack-group-title strong{display:block;margin-bottom:10px;font-size:12px;letter-spacing:.6px;font-weight:800;color:var(--text3);text-transform:uppercase}
.hist-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--p-line);background:transparent;border-left:0;border-right:0;border-top:0;border-radius:0}
.hist-row:last-child{border-bottom:0}
.hist-row .pack-nm{font-size:13px;font-weight:700;color:var(--text)}
.hist-row .pack-info small{display:block;margin-top:2px;font-size:11px;color:var(--text3)}
.hist-row .pack-price{font-size:13px;font-weight:800;color:var(--text)}
.hist-row .pack-price small{display:block;font-size:10px;font-weight:600;color:var(--text3)}
.vc-order-help{font-size:11px;font-weight:700;color:var(--c-accent);text-decoration:underline}
.vc-order-help:hover{color:var(--c-accent)}

/* ===== Public profile ===== */
.public-profile-page{padding:0 0 40px}
.pp-skeleton{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;max-width:1100px;margin:0 auto;padding-top:8px}
.pp-skeleton>i{display:block;height:380px;border:1px solid var(--p-line);border-radius:19px;background:var(--soft)}
.pp-skeleton b,.pp-skeleton span{display:block;border-radius:8px;background:var(--soft);height:14px;margin:8px 0}
.pp-skeleton b{height:22px;width:55%}
.pp-head{position:sticky;top:0;z-index:14;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--p-line)}
.pp-head small{display:block;font-size:9px;letter-spacing:1.3px;font-weight:700;color:var(--text3);text-transform:uppercase}
.pp-head strong{display:block;font-size:15px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.pp-grid{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(300px,1.18fr);gap:18px;max-width:1100px;margin:18px auto 0;align-items:start}
.pp-media{position:sticky;top:64px;min-width:0}
.pp-hero-wrap{position:relative}
.pp-hero{position:relative;display:block;width:100%;aspect-ratio:.78;border:1px solid var(--p-line);border-radius:19px;overflow:hidden;background:var(--pp-img) center/cover,var(--soft);cursor:zoom-in;box-shadow:var(--p-shadow)}
.pp-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,27,22,0) 40%,rgba(24,27,22,.62))}
.pp-hero-info{position:absolute;z-index:2;left:18px;right:18px;bottom:18px;text-align:left}
.pp-hero-info h1{margin:8px 0 4px;font-size:28px;font-weight:800;letter-spacing:-1px;line-height:1.1;color:#fff}
.pp-hero-info h1 span{font-weight:500;color:rgba(255,255,255,.85)}
.pp-hero-info h1 em{font-style:normal;color:var(--c-gold);font-size:18px}
.pp-hero-info p{display:flex;align-items:center;gap:6px;margin:0;color:rgba(255,255,255,.92);font-size:13px}
.pp-presence{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:10px;font-weight:800}
.pp-presence i{width:7px;height:7px;border-radius:50%;background:var(--text3)}
.pp-presence.online{color:var(--c-green)}
.pp-presence.online i{background:var(--green);box-shadow:none}
.pp-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin-top:10px}
.pp-thumb-wrap{position:relative}
.pp-thumb{position:relative;display:block;width:100%;aspect-ratio:1;background:var(--pp-img) center/cover,var(--soft);border:2px solid var(--p-line);border-radius:10px;overflow:hidden}
.pp-thumb.active{border-color:var(--coral)}
.pp-photo-like-btn{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 10px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:11px;font-weight:800}
.pp-photo-like-btn:hover{background:var(--p-soft)}
.pp-photo-like-btn.active{color:var(--c-accent);background:var(--p-accent-soft);border-color:transparent}
.pp-photo-like-btn:disabled{opacity:.55;cursor:default}
.pp-photo-like-btn span{font-size:10px}
.pp-hero-like-btn{position:absolute;z-index:3;right:14px;bottom:14px;min-height:34px}
.pp-content{display:grid;gap:12px;min-width:0}
.pp-actions{position:sticky;top:64px;z-index:12;display:grid;grid-template-columns:1.3fr repeat(3,minmax(0,1fr));gap:8px;padding:8px;border:1px solid var(--p-line);border-radius:16px;background:var(--surface);box-shadow:none}
.pp-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:46px;padding:8px 10px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:12px;font-weight:800}
.pp-actions button:hover{background:var(--p-soft);color:var(--text)}
.pp-actions button.primary{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff;box-shadow:none}
.pp-actions button.primary:hover{background:var(--accent-btn-hover)}
.pp-actions button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-actions .pp-profile-like-count{font-size:10px;font-weight:800;color:inherit;opacity:.75;margin-left:2px}
.pp-card{background:var(--surface);border:1px solid var(--p-line);border-radius:19px;padding:18px;box-shadow:none}
.pp-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.pp-section-head small{display:block;font-size:9px;letter-spacing:1.3px;font-weight:700;color:var(--text3);text-transform:uppercase}
.pp-section-head h2{margin:3px 0 0;font-size:18px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
.pp-chips{display:flex;flex-wrap:wrap;gap:8px}
.vc-profile-symbol{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--p-line);border-radius:999px;background:var(--soft);color:var(--text2);font-size:11px;font-weight:700}
.pp-bio{font-size:14px;line-height:1.65;color:var(--text2)}
.pp-bio.is-clamped{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.pp-bio-toggle{margin-top:10px;padding:0;font-size:12px;font-weight:800;color:var(--c-accent)}
.pp-bio-toggle:hover{color:var(--c-accent)}
.pp-about-empty p{font-size:13px;color:var(--text3)}
.pp-interests{display:flex;flex-wrap:wrap;gap:8px}
.pp-interests span{padding:6px 13px;border:1px solid var(--p-line);border-radius:999px;background:var(--soft);color:var(--text2);font-size:12px;font-weight:600}
.pp-gifts{display:grid;gap:8px}
.pp-gift{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--p-line);border-radius:14px;background:var(--soft)}
.pp-gift img{width:38px;height:38px;border-radius:10px}
.pp-gift span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--p-accent-soft);color:var(--c-accent)}
.pp-gift strong{display:block;font-size:12px;font-weight:800;color:var(--text)}
.pp-gift p{margin:2px 0 0;font-size:11px;color:var(--text3)}
.pp-gift b{font-size:11px;font-weight:800;color:#a8543f;background:var(--p-accent-soft);border-radius:999px;padding:4px 9px}
.pp-gift-empty{border:1px dashed var(--p-line);border-radius:14px;padding:16px;background:var(--soft)}
.pp-gift-empty-main{display:flex;align-items:flex-start;gap:12px}
.pp-gift-empty-icon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.pp-gift-empty-copy strong{display:block;font-size:13px;font-weight:800;color:var(--text)}
.pp-gift-empty-copy p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--text3)}
.pp-gift-empty .vc-labelled-glass-button{width:100%;margin-top:12px}
.pp-safety{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pp-safety .vc-labelled-glass-button{width:100%}
.pp-disclaimer{font-size:11px;line-height:1.6;color:var(--text3)}
/* lightbox */
.pp-lightbox{background:rgba(24,27,22,.86)}
.pp-lb-media{max-width:min(92vw,900px);max-height:82vh;border-radius:12px}
.pp-lb-close,.pp-lb-prev,.pp-lb-next{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);box-shadow:none}
.pp-lb-close:hover,.pp-lb-prev:hover,.pp-lb-next:hover{background:var(--p-soft);color:var(--text)}
.pp-lb-close{position:absolute;top:16px;right:16px}
.pp-lb-prev{position:absolute;left:16px;top:50%;margin-top:-22px}
.pp-lb-next{position:absolute;right:16px;top:50%;margin-top:-22px}
.pp-lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:5px 12px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:11px;font-weight:700}
.vc-flip-horizontal{transform:scaleX(-1)}

/* ===== Activity ===== */
.vc-activity-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;margin-top:4px}
.vc-activity-head-actions{display:flex;align-items:center;gap:12px}
.vc-activity-summary{text-align:right}
.vc-activity-summary strong{display:block;font-size:20px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
.vc-activity-summary small{display:block;font-size:9px;letter-spacing:1.2px;font-weight:700;color:var(--text3);text-transform:uppercase}
.vc-activity-bell{position:relative}
.vc-activity-bell span{position:absolute;top:-4px;right:-4px;min-width:17px;padding:2px 5px;border-radius:999px;background:var(--coral);color:#fff;font-size:9px;font-weight:800}
.vc-activity-feed{display:grid;gap:12px;min-width:0}
.vc-activity-tabs{display:flex;gap:8px;flex-wrap:wrap}
.vc-activity-tabs [role=tab]{min-height:38px;padding:8px 17px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:12px;font-weight:700}
.vc-activity-tabs [role=tab]:hover{background:var(--p-soft)}
.vc-activity-tabs [role=tab].is-active{background:var(--p-accent-soft);border-color:transparent;color:#a8543f}
.vc-activity-list{display:grid;gap:10px}
.vc-activity-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--p-line);border-radius:14px;background:var(--surface);text-align:left}
.vc-activity-row:hover{background:var(--p-soft)}
.vc-activity-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--soft);color:var(--text3);font-size:13px;font-weight:800;overflow:hidden}
.vc-activity-avatar img{width:100%;height:100%;object-fit:cover}
.vc-activity-row-copy strong{display:block;font-size:13px;font-weight:800;color:var(--text)}
.vc-activity-row-copy small{display:block;margin-top:2px;font-size:11px;color:var(--text3)}
.vc-activity-row time{font-size:11px;color:var(--text3)}
.vc-activity-kind{padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--text3);font-size:10px;font-weight:800}
.vc-activity-kind.is-like{background:var(--p-accent-soft);color:#a8543f}
.vc-activity-kind.is-guest{background:var(--p-green-soft);color:var(--c-green)}
.vc-activity-insights{display:grid;gap:12px;min-width:0}
.vc-activity-insight{background:var(--surface);border:1px solid var(--p-line);border-radius:19px;padding:18px;box-shadow:var(--p-shadow)}
.vc-activity-insight small{display:block;font-size:9px;letter-spacing:1.3px;font-weight:700;color:var(--text3);text-transform:uppercase}
.vc-activity-insight h2{margin:6px 0 8px;font-size:16px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.vc-activity-insight h2 strong{font-size:22px}
.vc-activity-insight p{margin:0 0 6px;font-size:13px;line-height:1.55;color:var(--text2)}
.vc-activity-insight p small{display:inline;font-size:11px;text-transform:none;letter-spacing:0}
.vc-activity-soft-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent);margin-bottom:10px}
.vc-activity-insight>[data-activity-profile]{margin-top:10px;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:9px 15px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:12px;font-weight:700}
.vc-activity-insight>[data-activity-profile]:hover{background:var(--p-soft);color:var(--text)}
.vc-activity-profile-progress{display:block;height:5px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:12px}
.vc-activity-profile-progress em{display:block;height:100%;border-radius:999px;background:var(--coral);width:var(--vc-activity-progress,0%)}
.vc-activity-bars{display:flex;align-items:flex-end;gap:5px;height:64px;margin-top:14px}
.vc-activity-bars i{flex:1;border-radius:5px;background:var(--coral);opacity:.3;min-height:4px}
.vc-activity-bars i:last-child{opacity:.9}
/* empty stage + context cta */
.vc-context-stage{padding:6px 0}
.vc-context-cta{border:1px solid var(--p-line);border-radius:19px;background:var(--surface);padding:20px;box-shadow:var(--p-shadow)}
.vc-context-cta.is-centered{margin:0 auto;text-align:center}
.vc-context-cta.is-compact{padding:16px}
.vc-context-cta.is-micro{padding:14px;box-shadow:none}
.vc-context-main{display:flex;align-items:center;gap:12px}
.vc-context-cta.is-centered .vc-context-main{flex-direction:column;text-align:center}
.vc-context-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.vc-context-copy{min-width:0}
.vc-context-copy small{display:block;font-size:9px;letter-spacing:1.2px;font-weight:700;color:var(--text3);text-transform:uppercase;margin-bottom:4px}
.vc-context-copy strong{display:block;font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--text)}
.vc-context-copy p{margin:5px 0 0;font-size:12px;line-height:1.55;color:var(--text3)}
.vc-context-progress{margin-top:14px}
.vc-context-progress>div{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--text3);margin-bottom:5px}
.vc-context-progress strong{font-size:11px;font-weight:800;color:var(--text)}
.vc-context-progress i{display:block;height:5px;border-radius:999px;background:var(--line);overflow:hidden}
.vc-context-progress i em{display:block;height:100%;border-radius:999px;background:var(--coral);width:var(--vc-context-progress,0%)}
.vc-context-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.vc-context-primary,.vc-context-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 16px;border-radius:10px;font-size:12px;font-weight:800}
.vc-context-primary{background:var(--accent-btn);border:1px solid var(--accent-btn);color:#fff}
.vc-context-primary:hover{background:var(--accent-btn-hover)}
.vc-context-secondary{background:var(--surface);border:1px solid var(--p-line);color:var(--text2)}
.vc-context-secondary:hover{background:var(--p-soft)}
/* notification center rows + signal toast */
.vc-notification-list{display:grid;gap:8px;margin-top:12px}
.vc-notification-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:60px;padding:10px 12px;border:1px solid var(--p-line);border-radius:14px;background:var(--surface);box-shadow:none;overflow:hidden}
.vc-notification-item:before{content:none}
.vc-notification-item>span{display:grid;place-items:center}
.vc-notification-item>span>.vc-notification-glass-icon{width:36px;height:36px}
.vc-notification-item strong{display:block;font-size:12px;font-weight:800;color:var(--text)}
.vc-notification-item p{margin:3px 0 0;font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vc-notification-item button,.vc-notification-activity{min-height:34px;padding:0 12px;border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:10px;font-weight:800}
.vc-notification-item button:hover,.vc-notification-activity:hover{background:var(--p-soft);color:var(--text)}
.vc-notification-activity{width:100%;margin-top:10px}
.pp-empty{padding:14px;text-align:center;font-size:12px;color:var(--text3)}
.vc-signal-toast{grid-template-columns:minmax(0,1fr) 44px;border:1px solid var(--p-line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--p-shadow)}
.vc-signal-toast:before{content:none}
.vc-notice__icon{border-radius:11px;background:var(--p-accent-soft);color:var(--c-accent)}
.vc-signal-toast[data-kind=like] .vc-notice__icon{color:var(--c-accent)}
.vc-signal-toast[data-kind=guest] .vc-notice__icon{background:var(--p-green-soft);color:var(--c-green)}
.vc-notice__cta{border:1px solid var(--p-line);border-radius:999px;background:var(--surface);color:var(--text2)}
.vc-notice__cta:hover{background:var(--p-soft);color:var(--text)}
.vc-notice__close:hover{background:var(--p-soft);color:var(--text)}

/* ===== Settings ===== */
.settings-view{max-width:760px;margin:0 auto}
.set-section{background:var(--surface);border:1px solid var(--p-line);border-radius:16px;padding:16px 18px;margin-bottom:14px}
.set-h{margin-bottom:4px;font-size:11px;letter-spacing:1.1px;font-weight:800;color:var(--text3);text-transform:uppercase}
.set-h.vc-settings-heading-icon{display:flex;align-items:center;gap:8px}
.set-h.vc-settings-heading-icon .vc-glass-icon{color:var(--c-accent)}
.set-row{padding:14px 0;border-bottom:1px solid var(--p-line)}
.set-section>.set-row:last-child,.set-section>.set-row:last-of-type{border-bottom:0;padding-bottom:2px}
.set-row .sr-sub{margin-top:6px}
.sr-lbl{display:block;font-size:12px;font-weight:700;color:var(--text)}
.sr-val{display:block;margin-top:4px;font-size:13px;color:var(--text2)}
.sr-sub{display:block;font-size:11px;line-height:1.55;color:var(--text3)}
.set-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text2);font-size:13px;font-weight:700}
.set-btn:hover{background:var(--p-soft);color:var(--text)}
.set-btn.primary{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}
.set-btn.primary:hover{background:var(--accent-btn-hover);color:#fff}
.set-btn:disabled{opacity:.5}
.set-logout{width:100%;color:var(--text2)}
.vc-danger-btn{color:var(--c-red)}
.vc-danger-btn:hover{color:var(--c-red);background:var(--p-accent-soft)}
.vc-premium-account-note{margin:12px 0;padding:13px 15px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-accent-soft)}
.vc-premium-account-note strong{display:block;font-size:13px;font-weight:800;color:var(--text)}
.vc-premium-account-note small{display:block;margin:4px 0 10px;font-size:11px;line-height:1.5;color:var(--text2)}
.vc-settings-legal{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}
.vc-settings-legal a{font-size:11px;font-weight:700;color:var(--c-accent);text-decoration:underline}
.vc-unblock{min-height:32px;padding:5px 12px;font-size:11px}
.vc-theme-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 8px}
.vc-theme-switch button{display:grid;place-items:center;gap:5px;min-height:64px;padding:10px;border:1px solid var(--p-line);border-radius:12px;background:var(--surface);color:var(--text2)}
.vc-theme-switch button strong{font-size:11px;font-weight:800}
.vc-theme-switch button:hover{background:var(--p-soft)}
.vc-theme-switch button.is-active{background:var(--p-accent-soft);border-color:var(--coral);color:#a8543f}
.vc-set-lang-row{display:flex;align-items:center;gap:12px;padding:12px 0 2px;border-top:1px solid var(--p-line)}
.vc-set-lang-row select{flex:1;max-width:220px}
.vc-notif-pref-group{padding:10px 0 2px}
.vc-notif-pref-group>small{display:block;font-size:9px;letter-spacing:1.2px;font-weight:700;color:var(--text3);text-transform:uppercase;margin-bottom:4px}
.vc-notif-pref-group label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--p-line)}
.vc-notif-pref-group label:last-child{border-bottom:0}
.vc-notif-pref-group label span{font-size:13px;color:var(--text)}
.vc-notif-pref-group input[type=checkbox]{accent-color:var(--coral);width:17px;height:17px}
.vc-notif-details summary{padding:8px 0;font-size:12px;font-weight:700;color:var(--c-accent);cursor:pointer}
.vc-quiet-times{display:flex;gap:8px;margin:8px 0}
.vc-quiet-times label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text3)}
.vc-quiet-times input{max-width:110px}
.vc-account-zone,.vc-appearance-section{background:var(--surface);border:1px solid var(--p-line);border-radius:16px}
/* profile-edit + support page (shared form) */
.profile-edit{max-width:560px;margin:0 auto}
.pe-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pe-h{font-size:clamp(24px,2.4vw,32px);font-weight:800;letter-spacing:-1.2px;color:var(--text)}
.profile-edit label{display:grid;gap:6px;margin-bottom:14px;font-size:12px;font-weight:700;color:var(--text3)}
.profile-edit input,.profile-edit select,.profile-edit textarea{width:100%;padding:11px 13px;border:1px solid var(--p-line);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;box-shadow:none}
.profile-edit input:focus,.profile-edit select:focus,.profile-edit textarea:focus{outline:none;border-color:var(--coral)}
.pe-count{font-size:10px;color:var(--text3)}
.pe-interests{border:1px solid var(--p-line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.pe-interests>span{display:block;font-size:12px;font-weight:700;color:var(--text)}
.pe-interests input{margin-top:8px}
.vc-int-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pe-save{width:100%;min-height:48px;border:0;border-radius:10px;background:var(--accent-btn);color:#fff;font-size:14px;font-weight:800}
.pe-save:hover{background:var(--accent-btn-hover)}
.vc-support-page .vc-support-tech{display:flex;align-items:center;gap:8px}
.vc-support-page .vc-support-tech input{width:17px;height:17px;accent-color:var(--coral)}
.vc-support-preview{padding:12px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--soft);margin:14px 0}
.vc-support-preview small{display:block;font-size:9px;letter-spacing:1.2px;font-weight:700;color:var(--text3);text-transform:uppercase;margin-bottom:6px}
.vc-support-preview pre{margin:0;font-size:11px;line-height:1.5;color:var(--text2);white-space:pre-wrap;word-break:break-word}
.vc-support-h{margin:16px 0 8px}
.vc-support-ticket{display:block;width:100%;padding:12px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--surface);text-align:left;margin-bottom:8px}
.vc-support-ticket:hover{background:var(--p-soft)}
.vc-support-ticket strong{display:block;font-size:12px;font-weight:800;color:var(--text)}
.vc-support-ticket>div{margin-top:4px;font-size:12px;line-height:1.5;color:var(--text2)}
.vc-support-status{font-weight:800}
.vc-support-status.is-open,.vc-support-status.is-new{color:var(--c-gold)}
.vc-support-status.is-answered,.vc-support-status.is-resolved,.vc-support-status.is-closed{color:var(--c-green)}
.vc-support-answer{margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--p-green-soft);color:var(--c-green);font-size:12px}

/* ===== Store / wallet ===== */
.store-view{max-width:760px;margin:0 auto;padding-bottom:30px}
.store-hero{display:grid;gap:2px;padding:18px;border:1px solid var(--p-line);border-radius:19px;background:var(--surface);box-shadow:var(--p-shadow);margin-bottom:12px}
.sh-bal{display:flex;align-items:center;gap:9px;font-size:26px;font-weight:800;letter-spacing:-.8px;color:var(--text)}
.sh-star{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.sh-label{font-size:10px;letter-spacing:1.2px;font-weight:700;color:var(--text3);text-transform:uppercase}
.store-anchor{justify-self:start;margin-top:10px;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--p-line);border-radius:999px;background:var(--p-accent-soft);color:#a8543f;font-size:11px;font-weight:700}
.store-anchor span{font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:800}
.store-anchor strong{font-size:12px;font-weight:800}
.store-live-promo{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-hint);margin-bottom:12px}
.store-live-promo-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--surface);border:1px solid var(--p-line);color:var(--c-accent)}
.store-live-promo-copy span{display:block;font-size:9px;letter-spacing:1.2px;font-weight:800;color:var(--text3);text-transform:uppercase}
.store-live-promo-copy strong{display:block;margin-top:2px;font-size:14px;font-weight:800;color:var(--text)}
.store-live-promo-copy small{display:block;margin-top:2px;font-size:11px;color:var(--text3)}
.store-live-promo.is-rescue{background:var(--p-accent-soft);border-color:transparent}
.store-live-promo.is-rescue .store-live-promo-icon{background:var(--surface);border-color:transparent}
.store-live-promo-clock{text-align:right}
.store-live-promo-clock span{display:block;font-size:9px;letter-spacing:1px;font-weight:700;color:var(--text3);text-transform:uppercase}
.store-live-promo-clock strong{font-size:13px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.store-section{margin-bottom:14px}
.ss-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:16px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.ss-sub{font-size:12px;font-weight:500;color:var(--text3)}
.store-method{background:var(--surface);border:1px solid var(--p-line);border-radius:19px;padding:16px 18px;margin-bottom:12px}
.store-method-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.store-method-head>span{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:12px;background:var(--p-accent-soft);color:var(--c-accent)}
.store-method-head strong{display:block;font-size:14px;font-weight:800;color:var(--text)}
.store-method-head small{display:block;margin-top:3px;font-size:11px;line-height:1.5;color:var(--text3)}
.store-method-head em{margin-left:auto;flex-shrink:0;padding:5px 11px;border-radius:999px;background:var(--soft);color:var(--text3);font-style:normal;font-size:10px;font-weight:800}
.store-method.is-primary .store-method-head em{background:var(--p-green-soft);color:var(--c-green)}
.crypto-network-title{margin:0 0 8px;font-size:11px;font-weight:700;color:var(--text3)}
.crypto-network-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:14px}
.crypto-network{padding:10px 13px;border:1px solid var(--p-line);border-radius:12px;background:var(--surface);text-align:left}
.crypto-network strong{display:block;font-size:12px;font-weight:800;color:var(--text)}
.crypto-network small{display:block;margin-top:2px;font-size:10px;color:var(--text3)}
.crypto-network:hover{background:var(--p-soft)}
.crypto-network.is-selected{background:var(--p-accent-soft);border-color:var(--coral)}
.crypto-network.is-selected strong{color:#a8543f}
.store-pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.store-pay-pack{display:grid;place-items:center;padding:12px;border:1px solid var(--p-line);border-radius:12px;background:var(--surface)}
.store-pay-pack span{display:grid;gap:2px;text-align:center}
.store-pay-pack strong{font-size:13px;font-weight:800;color:var(--text)}
.store-pay-pack small{font-size:11px;color:var(--text3)}
.store-pay-pack.is-featured{background:var(--p-accent-soft);border-color:transparent}
.store-pack-why{margin-top:12px;font-size:12px;line-height:1.5;color:var(--text3)}
.store-pack-group{margin-top:14px}
.store-pack-group-title{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.store-pack-group-title strong{font-size:12px;letter-spacing:.5px;font-weight:800;color:var(--text3);text-transform:uppercase}
.store-pack-group-title small{font-size:11px;color:var(--text3)}
.packs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.pack{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--p-line);border-radius:19px;background:var(--surface);cursor:pointer}
.pack:hover{background:var(--p-soft)}
.pack.best{border-color:var(--coral)}
.pack.has-promo{border-color:var(--coral)}
.pack-ico{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:13px;background:var(--p-accent-soft);color:var(--c-accent)}
.pack-info{min-width:0}
.pack-nm{font-size:13px;font-weight:800;color:var(--text)}
.pack-info small{display:block;margin-top:2px;font-size:10px;color:var(--text3)}
.pack-tag{position:absolute;top:-8px;right:12px;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--text3);font-size:9px;font-weight:800;letter-spacing:.8px}
.pack-tag.promo{background:var(--p-accent-soft);color:#a8543f;letter-spacing:0}
.pack-price{margin-left:auto;flex-shrink:0;font-size:14px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.pack-price.is-offer s{margin-right:6px;font-size:11px;font-weight:600;color:var(--text3)}
.vc-perk-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.vc-perk-list li{font-size:12px;color:var(--text2)}
/* crypto checkout modal */
.vc-crypto-hosted-modal{background:rgba(24,27,22,.62)}
.vc-crypto-hosted-card{width:min(100%,420px);padding:20px;border:1px solid var(--p-line);border-radius:19px;background:var(--surface);box-shadow:var(--p-shadow)}
.vc-crypto-hosted-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.vc-crypto-hosted-head strong{display:block;margin-top:3px;font-size:17px;font-weight:800;letter-spacing:-.4px;color:var(--text)}
.crypto-hosted-network{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border:1px solid var(--p-line);border-radius:12px;background:var(--soft);font-size:12px;color:var(--text3);margin:12px 0}
.crypto-hosted-network strong{font-size:12px;font-weight:800;color:var(--text)}
.vc-primary-cta{width:100%;min-height:48px;border:0;border-radius:10px;background:var(--accent-btn);color:#fff;font-size:14px;font-weight:800}
.vc-primary-cta:hover{background:var(--accent-btn-hover)}
.vc-crypto-trust{display:block;margin-top:10px;text-align:center;font-size:11px;color:var(--text3)}
.vc-promo-modal-note{margin:10px 0 0;padding:10px 13px;border:1px solid var(--p-line);border-radius:10px;background:var(--p-hint);color:#a8543f;font-size:12px;font-weight:600}

/* ===== Responsive ===== */
@media(max-width:768px){
  .public-profile-page{padding:0 0 calc(96px + var(--safe-bottom))}
  .pp-head{margin:0;padding:9px 12px;background:var(--surface)}
  .pp-grid{display:block;margin-top:8px}
  .pp-media{position:static}
  .pp-hero{border:0;border-radius:0 0 28px 28px;box-shadow:none}
  .pp-hero-info{left:16px;right:16px;bottom:16px}
  .pp-thumbs{padding:10px 12px 0}
  .pp-actions{position:fixed;z-index:20;top:auto;left:0;right:0;bottom:0;grid-template-columns:1.3fr repeat(3,minmax(0,1fr));padding:9px 12px calc(9px + var(--safe-bottom));border:0;border-top:1px solid var(--p-line);border-radius:0;background:var(--surface)}
  .pp-content{padding:12px 12px 0}
  .own-profile-layout{grid-template-columns:1fr}
  .own-profile-page-head{align-items:center}
  .own-profile-page-head h1{font-size:27px}
  .own-profile-page-head p{display:none}
  .own-profile-edit span{display:none}
  .own-profile-edit{width:44px;min-height:44px;padding:0;justify-content:center}
  .own-profile-cover{height:200px}
  .own-profile-avatar{left:16px;width:84px;height:84px;border-radius:22px}
  .own-profile-copy{padding:50px 16px 0}
  .own-profile-account{grid-template-columns:40px minmax(0,1fr)}
  .own-profile-account p{display:none}
  .own-profile-account>button{grid-column:1/-1;width:100%}
  .own-profile-facts{grid-template-columns:1fr}
  .own-profile-facts>div+div{border-left:0;border-top:1px solid var(--p-line)}
  .own-profile-gallery .pgrid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
  .vc-activity-grid{grid-template-columns:1fr}
  .vc-activity-insights{order:2}
  .vc-activity-row{grid-template-columns:auto minmax(0,1fr) auto}
  .vc-activity-row .vc-activity-kind{display:none}
  .settings-view{padding:0 4px}
  .set-section{padding:14px 15px}
  .vc-theme-switch{grid-template-columns:1fr}
  .vc-theme-switch button{grid-template-columns:auto 1fr;place-items:center start;min-height:52px}
  .store-hero{padding:15px}
  .packs-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .store-live-promo{grid-template-columns:auto minmax(0,1fr)}
  .store-live-promo-clock{grid-column:2;text-align:left;margin-top:2px}
  .store-method-head em{display:none}
}
@media(max-width:430px){
  .own-profile-page-head h1{font-size:24px;letter-spacing:-1px}
  .own-profile-cover{height:185px}
  .own-profile-stats{grid-template-columns:1fr;padding:14px 16px 16px}
  .own-profile-actions{grid-template-columns:1fr}
  .pp-hero-info h1{font-size:23px}
  .pp-thumbs{grid-template-columns:repeat(auto-fill,minmax(56px,1fr))}
  .pp-actions{gap:6px}
  .pp-actions button{min-height:44px;padding:6px;font-size:10px}
  .pp-actions button.primary{font-size:11px}
  .pp-card{padding:15px;border-radius:16px}
  .pp-safety{grid-template-columns:1fr}
  .pp-gift-empty-main{align-items:flex-start}
  .set-section{padding:13px}
  .set-row{padding:12px 0}
  .vc-notif-pref-group label span{font-size:12px}
  .packs-list{grid-template-columns:1fr 1fr;gap:8px}
  .pack{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}
  .pack-price{margin-left:0}
  .store-pay-grid{grid-template-columns:1fr 1fr}
  .store-hero .sh-bal{font-size:22px}
  .vc-crypto-hosted-card{padding:16px}
  .badge-card{grid-template-columns:36px minmax(0,1fr);padding:10px 12px}
  .vc-context-actions{flex-direction:column}
  .vc-context-actions .vc-context-primary,.vc-context-actions .vc-context-secondary{width:100%}
}

/* ===== Dark theme (tokens cover most; only fixed-on-photo values need care) ===== */
html[data-theme=dark] .own-profile-progress-pill,
html[data-theme=dark] .pp-presence,
html[data-theme=dark] .pp-photo-like-btn{background:var(--surface);color:var(--text);border-color:var(--p-line)}
html[data-theme=dark] .pp-presence.online{color:var(--green)}

/* ============================================================================
 * LAYOUT SYSTEM v3 (2026-10-03)
 * One frame for every route, theme-aware overlay surfaces, a mobile-first
 * discover card and a flat docked chat. Appended last so it wins the cascade
 * over the older skin layers.
 * ============================================================================ */

/* ---------- 0. Frame: every page shares one left-aligned column ---------- */
:root{--page-px:34px;--page-pt:34px;--page-max:1240px;--nav-h:62px}
@media(max-width:1250px){:root{--page-px:26px;--page-pt:28px}}
@media(max-width:768px){:root{--page-px:16px;--page-pt:12px}}

.main-body{padding:var(--page-pt) var(--page-px) 28px!important;scroll-padding-block:16px 24px}
@media(max-width:768px){
  .main-body{padding:calc(var(--page-pt) + var(--safe-top)) var(--page-px) calc(var(--nav-h) + var(--safe-bottom) + 20px)!important}
}
body.vc-chat-route .main-body{padding:0!important}

/* route roots: same width, same left edge, no inner gutters of their own */
.main-body>.stage,.main-body>.settings-view,.main-body>.store-view,.main-body>.own-profile-view,
.main-body>.chat-list-page,.main-body>.vc-activity-v6{
  flex:0 0 auto!important;width:100%;max-width:var(--page-max);margin:0;padding:0;height:auto!important;max-height:none!important;
  min-height:0;overflow:visible;background:none;box-shadow:none;border:0}
.main-body>.vc-context-stage{margin:auto;min-height:0;width:100%}

/* ---------- 1. Page head: eyebrow, title, subtitle (prototype .page-header) ---------- */
.vc-page-head,.own-profile-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 22px;padding:0;border:0}
.vc-page-head::after{display:none}
.vc-page-copy{display:block;min-width:0}
.vc-page-copy>small,.own-profile-eyebrow{display:block;margin:0 0 8px;font-size:9px;font-weight:700;letter-spacing:1.35px;text-transform:uppercase;color:var(--text3)}
.vc-page-copy h1,.own-profile-page-head h1{margin:0;font-size:clamp(26px,2.4vw,36px);line-height:1.2;letter-spacing:-1.2px;font-weight:800;color:var(--text);white-space:normal}
.vc-page-copy p,.own-profile-page-head p{display:block;max-width:620px;margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--text3)}
@media(max-width:768px){
  .vc-page-head,.own-profile-page-head{margin-bottom:14px;align-items:center}
  .vc-page-copy>small,.own-profile-eyebrow,.vc-page-copy p,.own-profile-page-head p{display:none}
  .vc-page-copy h1,.own-profile-page-head h1{font-size:26px;letter-spacing:-.9px}
  .vc-activity-summary{display:none}
}

/* ---------- 2. Fixed overlays: install nudge never parks on top of content ---------- */
#install-btn{position:fixed;right:24px;bottom:24px;left:auto;z-index:60;display:inline-flex;align-items:center;gap:8px;min-height:42px;max-width:calc(100vw - 32px);padding:0 18px;border:0;border-radius:999px;background:var(--accent-btn);color:#fff;font-size:13px;font-weight:700;box-shadow:0 10px 28px rgba(54,53,35,.2);animation:vcInstallNudge 16s ease both}
#install-btn[hidden]{display:none!important}
#install-btn .vc-glass-icon{width:18px;height:18px}
@keyframes vcInstallNudge{0%{opacity:0;transform:translateY(12px)}5%,88%{opacity:1;transform:none}100%{opacity:0;transform:translateY(10px);visibility:hidden}}
@media(max-width:768px){
  /* never floats over phone content; the install action lives in Settings */
  #install-btn{display:none!important}
}
@media(prefers-reduced-motion:reduce){#install-btn{animation:none}}

/* ---------- 3. Overlay surfaces follow the theme (were black slabs on light) ---------- */
.lightbox>div,.vc-gift-picker,.vc-crypto-hosted-card,.vc-rescue-offer,.vc-message-toast,.chat-sticker-draft,.city-suggest,
.vc-filter-sheet,.vc-coach-card{
  background:var(--surface)!important;color:var(--text);border:1px solid var(--line)!important;border-radius:20px!important;
  box-shadow:0 24px 80px rgba(23,28,40,.26)!important}
.lightbox>div h2,.lightbox>div h3,.lightbox>div strong{color:var(--text)}
.lightbox>div p,.lightbox>div label{color:var(--text2)}
.vc-gift-picker #vc-gift-msg{background:var(--bg);color:var(--text)}
.lightbox [data-close]{background:var(--soft);color:var(--text2)}

/* the close button used a multicolour PNG (glass era) with transparent text */
.vc-overlay-close,.lightbox button[data-close]{background-image:none!important;color:var(--text2)!important;font-size:inherit!important}
.vc-overlay-close>.vc-glass-icon,.lightbox button[data-close]>.vc-glass-icon{width:20px;height:20px}

/* swipe coach */
.vc-coach-card{max-width:360px;width:100%;padding:26px 22px 20px;text-align:center}
.vc-coach-emoji{font-size:34px;line-height:1;margin-bottom:12px}
.vc-coach-card h3{margin:0 0 8px;font-size:19px;font-weight:800;letter-spacing:-.3px}
.vc-coach-card p{margin:0 0 18px;font-size:14px;line-height:1.55}
.vc-coach-card .set-btn{width:100%;min-height:48px;background:var(--accent-btn);border-color:transparent;color:#fff}

/* discover filter sheet */
.vc-filter-sheet{max-width:520px;width:100%;max-height:min(90dvh,740px);overflow:auto;padding:20px}
.vc-filter-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.vc-filter-head strong{font-size:19px;font-weight:800;letter-spacing:-.3px}
.vc-filter-field{display:block;margin-top:14px;font-size:12px;font-weight:700;color:var(--text2)}
.vc-filter-field select,.vc-filter-field input{display:block;width:100%;margin-top:6px;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font-size:15px;font-weight:500}
.vc-filter-field select:focus,.vc-filter-field input:focus{border-color:var(--coral);outline:none}
.vc-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vc-filter-checks{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:16px}
.vc-filter-check{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--text);cursor:pointer}
.vc-filter-check input{width:20px;height:20px;accent-color:var(--coral)}
.vc-filter-label{margin-top:18px;font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text3)}
.vc-filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vc-filter-chip{position:relative;display:inline-flex;align-items:center;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.vc-filter-chip input{position:absolute;opacity:0;pointer-events:none}
.vc-filter-chip:hover{border-color:var(--coral)}
.vc-filter-chip:has(input:checked){background:var(--accent-soft);border-color:var(--coral);color:var(--c-accent)}
.vc-filter-chip:focus-within{outline:2px solid var(--coral);outline-offset:2px}
.vc-filter-actions{display:flex;gap:10px;margin-top:20px}
.vc-filter-actions .set-btn{min-height:50px}
.vc-filter-actions #vc-filter-apply{flex:1}
.vc-filter-count-line{margin-top:10px;text-align:center;font-size:12px;color:var(--text3)}
@media(max-width:560px){
  .lightbox:has(.vc-filter-sheet){align-items:flex-end;padding:0!important}
  .vc-filter-sheet{max-width:none;border-radius:22px 22px 0 0!important;max-height:88dvh;padding:18px 16px calc(16px + var(--safe-bottom))}
}

/* ---------- 4. Discover ---------- */
body.vc-discover-route .stage{display:block;padding:0}
.page-header{margin:0 0 24px}
.page-header h1,.page-title{margin:0}

/* legacy layers pinned center alignment and !important flex rows; undo them */
body.vc-discover-route .discover-primary{align-items:stretch}
body.vc-discover-route .discover-primary>*{max-width:100%}
.filter-button{position:relative}
.filter-button .vc-filter-count{position:static;margin-left:2px}
.discover-filter-dock{border:0!important;border-bottom:1px solid var(--p-line)!important;padding:0 0 22px!important;margin:0 0 24px!important;gap:10px!important;background:none!important;box-shadow:none!important}
@media(min-width:769px){.discover-filter-dock{width:100%;justify-content:space-between!important}}

/* desktop: card and rail form one block that starts at the page's left edge */
body.vc-discover-route .discover-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;width:100%;max-width:none;align-items:start;justify-content:stretch}
body.vc-discover-route .discover-primary{min-width:0}
body.vc-discover-route .card-back-wrap{display:block;width:100%;max-width:none;margin:0}
body.vc-discover-route .profile-card{width:100%;grid-template-columns:44% 56%;min-height:clamp(440px,54vh,520px)}
body.vc-discover-route .profile-photo{min-height:0}
.section-heading{display:flex;align-items:center;justify-content:space-between!important;gap:10px;margin:0 2px 12px;text-align:left}
body.vc-discover-route .actions.profile-actions{display:flex!important;gap:12px!important;justify-content:flex-start!important;margin:16px 0 0!important;padding:0!important;border:0!important;box-shadow:none!important;max-width:none;width:100%;position:static;background:none!important}
body.vc-discover-route .no-rush{justify-content:flex-start;margin:12px 2px 0}
@media(max-width:1120px){
  body.vc-discover-route .discover-workspace{grid-template-columns:minmax(0,1fr)}
  body.vc-discover-route .discover-more{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
}

/* phones: the whole card and its action row fit above the bottom nav */
@media(max-width:768px){
  .page-header{margin-bottom:12px}
  .page-header .eyebrow,.page-header .page-subtitle{display:none}
  .page-title{font-size:26px;letter-spacing:-.9px}

  /* filter strip: one tidy row, no scrolling, no clipped chips */
  .filter-bar{display:flex;align-items:center;gap:8px;padding:0 0 14px;margin:0;border:0;overflow:visible}
  .filter-buttons{display:flex;flex:1;gap:8px;min-width:0;flex-wrap:nowrap;width:auto}
  .filter-button{min-height:42px;padding:0 13px;flex:0 1 auto;min-width:0;gap:7px}
  .filter-button>span:not(.vc-filter-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .filter-button.all-filters{margin-left:auto;flex:0 0 auto}
  .filter-button.all-filters>span:not(.vc-filter-count){display:none}
  .filter-button.all-filters .vc-filter-count{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:18px;height:18px;margin:0;padding:0 5px;border-radius:999px;background:var(--accent-btn);color:#fff;font-size:10px;font-weight:700}
  .discover-filter-dock{border-bottom:0!important;padding:0 0 14px!important;margin:0!important}
  .online-filter{display:none}
  .section-heading{display:none}

  /* card: photo with name overlay, then bio, interests and two buttons */
  body.vc-discover-route .profile-card{display:block;min-height:0;border-radius:20px}
  body.vc-discover-route .profile-photo{width:100%;height:auto;aspect-ratio:4/5;max-height:clamp(300px,56dvh,480px);min-height:0}
  .profile-details{display:block;padding:14px 16px 16px}
  .shared-label{margin-bottom:8px}
  .profile-details .bio{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0;max-width:none;font-size:14px;line-height:1.55}
  .interests-section{margin-top:12px}
  .interests-section .details-label{display:none}
  .interest-tags{flex-wrap:wrap;max-height:30px;overflow:hidden}
  .profile-links{display:flex;gap:8px;margin:14px 0 0;padding:0}
  .profile-links .full-profile,.profile-links .message-button{flex:1 1 0;min-width:0;min-height:46px;padding:10px 8px;justify-content:center}

  /* actions: back / skip / like in one row, always in normal flow */
  body.vc-discover-route .actions.profile-actions{display:grid!important;grid-template-columns:56px minmax(0,1fr) minmax(0,1.5fr)!important;gap:10px!important;margin:14px 0 0!important}
  .profile-actions .profile-open-btn{display:none}
  .profile-actions .back-button,.profile-actions .skip-button,.profile-actions .like-button{min-width:0;min-height:52px;padding:0 10px;border-radius:14px;flex:none}
  .profile-actions .back-button{border:1px solid var(--p-line);background:var(--p-surface);padding:0}
  .profile-actions .back-button span{display:none}
  .profile-actions .like-button{box-shadow:none}
  body.vc-discover-route .no-rush{display:none}
  body.vc-discover-route .discover-more{display:flex;flex-direction:column;margin-top:20px}
}
@media(max-width:768px) and (max-height:700px){
  body.vc-discover-route .profile-photo{max-height:46dvh}
  .profile-details{padding:12px 14px 14px}
}

/* tablets / narrow windows: same single portrait card instead of photo-on-the-side */
@media(min-width:769px) and (max-width:1120px){
  body.vc-discover-route .profile-card{display:block;min-height:0;max-width:520px;margin-inline:auto}
  body.vc-discover-route .profile-photo{width:100%;height:auto;aspect-ratio:4/5;max-height:70dvh;min-height:0}
  .photo-caption{display:none}
  .mobile-photo-identity{display:block;position:absolute;z-index:1;bottom:21px;left:22px;color:#fff}
  .mobile-photo-identity h2{margin:0;font-size:27px;letter-spacing:-.7px;display:flex;align-items:center;gap:7px;line-height:1.3;font-weight:800}
  .mobile-photo-identity h2>span{font-weight:400}
  .mobile-photo-identity h2 .p-icon{width:19px;height:19px}
  .mobile-photo-identity p{display:flex;align-items:center;gap:4px;margin:6px 0 0;font-size:12px}
  .mobile-photo-identity .p-icon{width:13px;height:13px}
  .profile-details>.profile-name,.profile-details>.location{display:none}
  .profile-details{display:block;padding:18px 20px}
  .profile-details .bio{max-width:none;margin:0}
  .interests-section{margin-top:14px}
  .profile-links{margin-top:16px}
  .profile-links .full-profile,.profile-links .message-button{flex:1}
  body.vc-discover-route .actions.profile-actions{max-width:520px;margin:16px auto 0!important}
}

/* ---------- 5. Chat: flat header, docked composer, readable on both themes ---------- */
.chat-compact-view{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)!important}
.chat-compact-view .chat-header,.chat-view .chat-header{flex:0 0 auto;display:flex;align-items:center;gap:10px;min-height:calc(58px + var(--safe-top));padding:calc(8px + var(--safe-top)) 14px 8px;background:var(--surface)!important;border:0;border-bottom:1px solid var(--line);box-shadow:none!important;color:var(--text)}
.chat-view.flirt-warm .chat-header,.chat-view.flirt-hot .chat-header{background:var(--surface)!important}
.chat-compact-view .chat-header .av{width:38px;height:38px;flex:0 0 38px;border-radius:50%;overflow:hidden;border:1px solid var(--line)}
.chat-compact-view .chat-header .av img{width:100%;height:100%;object-fit:cover}
.chat-compact-view .ch-nm{font-size:15px;font-weight:700;color:var(--text)}
.chat-compact-view .chat-back,.chat-compact-view .chat-header .icon-btn{width:40px;height:40px;min-width:40px;border:0;border-radius:50%;background:transparent;color:var(--text2);display:grid;place-items:center}
.chat-compact-view .chat-back:hover,.chat-compact-view .chat-header .icon-btn:hover{background:var(--soft);color:var(--text)}
.chat-compact-view .chat-thread{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 14px 20px;background:transparent!important;-webkit-mask-image:none;mask-image:none}
.chat-compact-view .chat-thread::before,.chat-compact-view .chat-thread::after{display:none}
.chat-compact-view .chat-composer{flex:0 0 auto;display:flex!important;align-items:center;gap:8px;padding:10px 12px calc(10px + var(--safe-bottom));background:var(--surface)!important;border:0;border-top:1px solid var(--line);box-shadow:none!important}
.chat-compact-view .chat-compose-field{flex:1 1 auto;min-width:0;display:flex;align-items:center;min-height:44px;padding:0 6px;background:var(--bg)!important;border:1px solid var(--line);border-radius:22px}
.chat-compact-view .chat-compose-field:focus-within{border-color:var(--coral)}
.chat-compact-view .chat-compose-field textarea{width:100%;padding:11px 8px;border:0;background:transparent;color:var(--text);font-size:15px;line-height:1.35;resize:none;max-height:120px}
.chat-compact-view .chat-compose-field textarea::placeholder{color:var(--text3)}
.chat-compact-view .chat-composer .c-add,.chat-compact-view .chat-composer .c-express{flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--text2)}
.chat-compact-view .chat-composer .c-add .vc-glass-icon,.chat-compact-view .chat-composer .c-express .vc-glass-icon{width:20px;height:20px;color:inherit}
/* glass-era rule hid the svg inside add/send; the line icons need to show */
.chat-compact-view .chat-composer .c-add svg,.chat-compact-view .chat-composer .c-send svg{display:block!important}
.chat-compact-view .chat-composer .vc-glass-icon,.chat-compact-view .chat-composer .c-send .vc-glass-icon{width:20px;height:20px}
.chat-floating-gift{background:var(--surface);border:1px solid var(--line);box-shadow:0 6px 20px rgba(54,53,35,.12)}
/* bubbles: my messages are terracotta with white text in BOTH themes (light had
   terracotta-on-terracotta); no glow shadows around any bubble */
.chat-compact-view .bub.me,.chat-compact-view .msg-wrap.me .bub{background:var(--accent-btn)!important;color:#fff!important;border:0}
.chat-compact-view .bub.me a,.chat-compact-view .bub.me .bub-ts{color:rgba(255,255,255,.82)}
.chat-compact-view .bub.them{background:var(--soft)!important;color:var(--text)!important}
.chat-compact-view .bub{box-shadow:none!important}
@media(min-width:900px){
  .chat-compact-view .chat-thread{padding-left:max(18px,calc((100% - 860px)/2));padding-right:max(18px,calc((100% - 860px)/2))}
  .chat-compact-view .chat-composer{padding-left:max(14px,calc((100% - 860px)/2));padding-right:max(14px,calc((100% - 860px)/2))}
}

/* ---------- 6. Content pages fill the width instead of floating in a narrow column ---------- */
.settings-view{display:flex;flex-direction:column;gap:18px}
.set-section{margin-bottom:0}
@media(min-width:1000px){
  .main-body>.settings-view:not(.activity-view){display:block;column-count:2;column-gap:18px}
  .settings-view:not(.activity-view)>.vc-page-head{column-span:all}
  .settings-view:not(.activity-view)>.set-section{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 18px}
}

.vc-activity-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px;margin-top:0}
.vc-activity-feed .vc-context-stage,.vc-activity-feed .vc-context-cta{border:0!important;box-shadow:none!important;background:none!important}
.vc-activity-feed .vc-context-cta::before,.vc-activity-feed .vc-context-cta::after{display:none}
.vc-context-cta.is-centered .vc-context-copy>small{display:none}
.vc-activity-soft-icon{margin-bottom:14px}
.vc-activity-insight{padding:18px}
@media(max-width:768px){
  .vc-activity-grid{grid-template-columns:minmax(0,1fr)}
  .vc-activity-head-actions{gap:8px}
}

.store-hero,.store-live-promo{margin-bottom:0}
.store-view{display:flex;flex-direction:column;gap:18px}
.store-view>*{margin-top:0;margin-bottom:0}
@media(min-width:1000px){
  .main-body>.store-view{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start}
  .store-view>.store-hero,.store-view>.store-live-promo{grid-column:1/-1}
}
.store-anchor strong{color:var(--c-accent)}

.own-profile-layout{max-width:none;margin:0}
.own-profile-page-head{max-width:none}
.own-profile-copy{padding:54px 18px 0}
.own-profile-panels{grid-template-columns:minmax(0,1fr)}
.own-profile-panels>*{min-width:0;max-width:100%}
@media(max-width:768px){
  .own-profile-layout{grid-template-columns:minmax(0,1fr);gap:12px}
  .own-profile-layout>*{min-width:0;max-width:100%}
  .own-profile-account{max-width:100%}
  .own-profile-account>div{min-width:0;overflow-wrap:anywhere}
  .own-profile-account>button{white-space:normal;min-width:0}
}
@media(max-width:900px) and (min-width:769px){
  .own-profile-layout{grid-template-columns:minmax(0,340px) minmax(0,1fr)}
}

/* centered empty states: icon, copy and the button all share one axis */
.vc-context-cta.is-centered{text-align:center}
.vc-context-cta.is-centered .vc-context-main{flex-direction:column;align-items:center;text-align:center}
.vc-context-cta.is-centered .vc-context-actions{justify-content:center;width:100%}
.vc-context-cta.is-centered .vc-context-actions>*{min-width:180px;justify-content:center}
@media(max-width:768px){.vc-context-cta.is-centered .vc-context-actions>*{width:100%}}

/* ---------- 7. Dark / light readability (tokens only) ---------- */
.bio{color:var(--text2)!important}
.info-name .age{color:var(--text3)}
.info-chip,.info-tag{color:var(--text2)}
.interest-tag.shared{border-color:var(--p-green-soft)}
.online-badge{color:var(--text2)}
.vc-int-chip.is-on,
.own-profile-completion em,.own-profile-photo-empty:hover,.pp-gift b,
.vc-activity-tabs [role=tab].is-active,.vc-activity-kind.is-like,
.vc-theme-switch button.is-active,.store-anchor,.crypto-network.is-selected strong,
.pack-tag.promo,.vc-promo-modal-note,.message-button,.message-button:hover{color:var(--c-accent)}
.vc-page-eyebrow,.eyebrow{color:var(--text3)}
.toast{background:var(--p-surface);border:1px solid var(--p-line);color:var(--text)}
.toast.success{border-color:var(--green);color:var(--c-green)}
.toast.error{border-color:var(--red);color:var(--c-red)}
.pp-card,.pp-actions{background:var(--p-surface)}
.user-mini .av{background:var(--p-soft)!important;color:var(--text)!important}

/* ============================================================================
 * v3.1 refinements (2026-10-03) — fixes found by measured audit, see REDESIGN_WORKLOG.md
 * ============================================================================ */

/* 1. Public profile on phones: the action bar owns the bottom edge.
      It was position:fixed;bottom:0 underneath the z-index:50 tab bar, so
      Написать / Нравится / Подарок were invisible and untappable. */
@media(max-width:768px){
  .app:has(.public-profile-page)>.bottom-nav{display:none}
  .main-body:has(>.public-profile-page){padding-bottom:0!important}
  .public-profile-page{padding-bottom:calc(92px + var(--safe-bottom))}
}

/* 2. Public profile on desktop: join the shared left edge instead of a centred 1100px column. */
.pp-head,.pp-grid{max-width:none;margin-left:0;margin-right:0}

/* 2b. Action bar: three buttons used to sit in a four-track grid, leaving a dead
       column on the right and truncating «Подарок» to «По…». Buttons now share the width. */
.pp-actions{display:flex;gap:8px}
.pp-actions>button{flex:1 1 0;min-width:0;justify-content:center}
.pp-actions>button.primary{flex:1.5 1 0}
@media(max-width:768px){
  .pp-actions #pp-like{flex:0 0 auto;min-width:84px}
  .pp-actions>button{font-size:12px!important;padding-inline:8px;gap:6px!important}
}

/* 3. «Заполнить профиль»: a legacy .profile-missing rule set flex-direction:column,
      which stacked the icon above the text. */
.own-profile-completion,.profile-missing.own-profile-completion{flex-direction:row!important;flex-wrap:nowrap!important}
.own-profile-completion>span{min-width:0;flex:1 1 auto;text-align:left}
.own-profile-completion>.vc-glass-icon{flex:0 0 28px;width:28px;height:28px}
.own-profile-completion em{flex:0 0 auto;align-self:center}

/* 4. Discover photo caption: a long bio sentence at 25px covered the photo. */
.photo-caption{left:22px;right:18px;bottom:24px}
.photo-caption>p{max-width:min(92%,320px);font-size:clamp(17px,1.45vw,22px);line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* 5. Emoji / sticker pickers: leftovers of the old violet-blue palette. */
.vc-emoji-panel .vc-expression-switch{border:1px solid var(--p-line)!important;background:var(--p-soft)!important;box-shadow:none!important}
.vc-sticker-tabs>button.is-active,.vc-sticker-tabs>button.is-flirt.is-active{background:var(--accent-soft);border-color:var(--coral);color:var(--c-accent);box-shadow:none}
.chat-quick-action.gif{background:var(--soft)}

/* 6. Wide screens: one content width for every route (discover used 1580, the profile page had none). */
:root{--page-max:1360px}
body.vc-discover-route .stage,.main-body>.public-profile-page{max-width:var(--page-max)}

/* 7. Activity on tablets / small laptops: the feed takes the full width and the
      two insight cards sit below it side by side (a 300px column split in two was cramped). */
@media(min-width:769px) and (max-width:1100px){
  .vc-activity-grid{grid-template-columns:minmax(0,1fr)}
}

/* 8. Public-profile like button is icon + count on phones, so «Подарок» keeps its label. */
@media(max-width:768px){
  .pp-actions #pp-like>span:not(.pp-profile-like-count){display:none}
}

/* ============================================================================
 * v3.2 — light-theme legibility (owner 2026-10-03: «пересвет, не видно часть текста»)
 * Source-level fixes (text2/text3, ink tokens, hairlines, shadows, literal colours) were made by
 * tools/fix_light.py; this layer holds what tokens cannot express.  Evidence: qa/shots.js contrast audit.
 * ============================================================================ */

/* white text that stayed pinned on light hover / selected surfaces */
.look-btn.selected,.vc-stepper span.active i,.vc-theme-quick:hover{color:var(--c-accent)}
.chat-reference-view .chat-back:hover,.chat-reference-view #vc-chat-block:hover,
.chat-compact-view .chat-back:hover,.chat-compact-view #vc-chat-block:hover,
button.chat-compact-chip:hover,.chat-quick-action:hover,
.filter-cap:hover,.filter-cog:hover,.tool-btn:hover,.tool-av:hover{color:var(--text)}
.own-profile-action:hover{color:var(--text)!important}
.chat-ref-stat strong,.vc-progress-copy strong,.store-live-promo-copy strong{color:var(--text)}

/* navigation: coral was 2.6–2.9:1 as text; active item reads in the ink accent */
.nav-item.active,.left .nav-item.active,.bn-item.active{color:var(--c-accent)!important}
.nav-count,.nav-item .badge{color:var(--c-accent)}

/* activity rhythm: leftover violet gradient + pastel text */
.vc-hub-week>span.is-today{background:var(--accent-btn);color:#fff;box-shadow:none}
.vc-hub-week>span.is-active{color:var(--c-accent)}
.vc-hub-week>span.is-future:not(.is-today){opacity:1;color:var(--text3);background:transparent;border-color:var(--line)}

/* unavailable states are shown by tone (soft surface + muted ink), not by 40-58% opacity */
.vc-payment-method-row.is-disabled{opacity:1;background:var(--soft)}
.vc-payment-method-row.is-disabled strong,.vc-payment-method-row.is-disabled small{color:var(--text3)}
.pp-photo-like-btn:disabled{opacity:1;color:var(--text3)}

/* fullscreen photo viewer: its buttons were light squares with white glyphs */
.pp-lightbox button{background:rgba(255,255,255,.18);color:#fff}
.pp-lightbox button:hover{background:rgba(255,255,255,.3)}

/* the floating install nudge sat on top of content on every desktop screen; install lives in Settings */
#install-btn{display:none!important}

/* micro caps labels: 8–9px was the other half of "can't read it" */
.p-brand-copy small{font-size:9px}
.nav-label,.eyebrow,.vc-page-copy>small,.own-profile-eyebrow,.vc-notif-pref-group>small,.vc-activity-insight small,
.vc-hub-card-title small,.vc-progress-copy small,.mini-tag,.today-label,.vc-deck-counter,.store-anchor span,.sh-label{font-size:10px}

/* native placeholder grey (#757575) was 4.38:1 on light and 3.2–3.5:1 on dark */
::placeholder{color:var(--text3);opacity:1}
/* the emoji picker injects its own stylesheet with a violet placeholder (4.32:1) */
.vc-emoji-panel .vc-emoji-search::placeholder{color:var(--text3)!important;opacity:1}

/* the bottom-nav rule pinned the coral token with !important at a higher specificity */
.bottom-nav .bn-item.active{color:var(--c-accent)!important}

/* counters and unavailable packs keep full strength; "unavailable" = tone + dashed edge, not 40-72% opacity */
.pp-actions .pp-profile-like-count{opacity:1}
.store-pay-pack:disabled{opacity:1;background:var(--soft);border-style:dashed}
.store-pay-pack:disabled strong{color:var(--text2)}
.store-method.is-last{opacity:1}
.store-hero .sh-label{color:var(--text2)}

/* The emoji picker also ships a violet LIGHT palette as custom properties on its panel (--text3:#77738d, --line:#786aa3,
   --card:#f4f2fb). Equal specificity loses to its runtime-injected <style>, hence the extra `body` in the selector. */
html[data-theme="light"] body .vc-emoji-panel{--text:#2e302f;--text3:rgba(46,48,47,.70);--panel:#fff;--card:#f1f1ea;--line:#cfd0c5}

/* Public-profile primary action («Написать»): a ≤390px legacy rule `.pp-actions .primary{font-size:8.5px!important}`
   (specificity 0,2,0) out-ranked the shared button rule, so the main CTA was ~9px on 390px phones (iPhone 12–14). */
.pp-actions>button.primary{font-size:13px!important;gap:6px!important}

/* ============================================================================
 * v3.3 (2026-10-03) — owner requests, see REDESIGN_WORKLOG.md:
 * photos back in the chat strip, light-theme legibility (text over photos, gift
 * prices, tiny labels, count badges); discover/profile changes live in app.js
 * ============================================================================ */

/* 1. Light tokens: a little more ink for secondary text and accent labels.
      (`:root` loses to the dark block, so dark is untouched.) */
:root{--text3:rgba(46,48,47,.76)}

/* 2. Text on photos: taller, darker scrims + a soft shadow, so bright photos
      (sky, sand, light clothes) never wash the caption, name or age out. */
.profile-photo:after{inset:26% 0 0;background:linear-gradient(to top,rgba(18,20,16,.86) 0%,rgba(18,20,16,.62) 36%,rgba(18,20,16,.24) 68%,transparent 100%)}
.photo-caption>span{font-size:10px;letter-spacing:1.6px;font-weight:700;opacity:1;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.55)}
.photo-caption>p{text-shadow:0 1px 12px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.4)}
.mobile-photo-identity{text-shadow:0 1px 10px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.4)}
.mobile-photo-identity h2>span{font-weight:600}
.pp-hero-shade{background:linear-gradient(180deg,rgba(18,20,16,0) 32%,rgba(18,20,16,.5) 62%,rgba(18,20,16,.9))}
.pp-hero-info{text-shadow:0 1px 10px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.4)}
.pp-hero-info h1 span{opacity:1;font-weight:600}
.pp-thumb span{background:rgba(18,20,16,.8)}

/* 3. Gift price chip: dark text sat on a dark translucent pill in the light theme. */
.vc-gift-item>div{background:var(--soft);border-color:var(--line);color:var(--text)}

/* 4. Tiny labels: nothing below 10px; secondary captions 11-12px. */
.nav-label,.p-brand-copy small,.vc-icebreaker-tag,.vc-page-copy>small,.own-profile-eyebrow,.pp-head small,
.discover-more>header span,.today-label,.vc-deck-counter,.vc-activity-insight small,.vc-notif-pref-group>small,.mini-tag{font-size:10px}
.pp-head small{font-weight:700;letter-spacing:.14em}
.recommendation small,.vc-safety-note small{font-size:11px}
.vc-safety-note strong{font-size:12px}
.no-rush{font-size:12px}

/* 5. Count badges: white text needs the deeper coral (4.6:1); the light accent gave 2.9:1. */
html[data-theme="light"] .chat-match-unread,html[data-theme="light"] .cmeta .unread,
html[data-theme="light"] .vc-activity-bell>span,html[data-theme="light"] .vc-hub-continue-row b{background:var(--accent-btn);color:#fff}
.chat-match-unread,.vc-activity-bell>span,.vc-hub-continue-row b{font-size:10px}
/* Dark theme: the badge fill is light salmon and the photo-count chip is light, so white digits vanished. */
html[data-theme="dark"] .chat-match-unread,html[data-theme="dark"] .cmeta .unread,html[data-theme="dark"] .vc-activity-bell>span,
html[data-theme="dark"] .vc-hub-continue-row b,html[data-theme="dark"] .chat-match-photo-count{color:#1d1f1c}
.chat-match-photo-count{font-size:10px}

/* v3.4 (2026-10-03): the city / age / "edit filters" buttons are gone from discover. Only the desktop
   "online" switch is left in the dock: keep it on the right where it was, without the underline that
   framed the old button row, and drop the bar on phones, where that switch was already hidden. */
@media(min-width:769px){.discover-filter-dock{justify-content:flex-end!important;border-bottom:0!important;padding:0 0 10px!important;margin:0!important}}
@media(max-width:768px){.discover-filter-dock{display:none}}
:root{--vcn-message:#b04a35;--vcn-message-soft:#fdf0eb;--vcn-message-line:#f0cdc2;--vcn-message-solid:#c1523f;--vcn-like:#c02f4b;--vcn-like-soft:#fdecef;--vcn-like-line:#f3c3cc;--vcn-like-solid:#c8344f;--vcn-guest:#2f7684;--vcn-guest-soft:#e8f3f5;--vcn-guest-line:#bddde3;--vcn-guest-solid:#2f7684;--vcn-online:#2c7a4b;--vcn-online-soft:#e7f4ec;--vcn-online-line:#b9dcc6;--vcn-online-solid:#2c7a4b;--vcn-topup:#8a5d0a;--vcn-topup-soft:#fbf1d9;--vcn-topup-line:#ebd59a;--vcn-topup-solid:#9a6a10;--vcn-promo:#a8501f;--vcn-promo-soft:#fdeee3;--vcn-promo-line:#f1cfb6;--vcn-promo-solid:#b25a28;--vcn-gift:#7a4a8f;--vcn-gift-soft:#f3eaf7;--vcn-gift-line:#dcc6e6;--vcn-gift-solid:#7a4a8f;--vcn-offer:#3f5fa8;--vcn-offer-soft:#e9eefa;--vcn-offer-line:#c4d0ee;--vcn-offer-solid:#3f5fa8;--vcn-support:#566057;--vcn-support-soft:#eef0ea;--vcn-support-line:#d7dacf;--vcn-support-solid:#566057}
html[data-theme="dark"]{--vcn-message:#ed967f;--vcn-message-soft:#42342d;--vcn-message-line:#5a463d;--vcn-message-solid:#c1523f;--vcn-like:#ff8d94;--vcn-like-soft:#44292f;--vcn-like-line:#6a3c46;--vcn-like-solid:#c8344f;--vcn-guest:#74b7c5;--vcn-guest-soft:#25373a;--vcn-guest-line:#38585e;--vcn-guest-solid:#2f7684;--vcn-online:#8fd1a6;--vcn-online-soft:#27382d;--vcn-online-line:#3c5a47;--vcn-online-solid:#2c7a4b;--vcn-topup:#f2c15b;--vcn-topup-soft:#41361f;--vcn-topup-line:#625030;--vcn-topup-solid:#9a6a10;--vcn-promo:#ffb27a;--vcn-promo-soft:#45301f;--vcn-promo-line:#684a31;--vcn-promo-solid:#b25a28;--vcn-gift:#cba3de;--vcn-gift-soft:#38293f;--vcn-gift-line:#56405f;--vcn-gift-solid:#7a4a8f;--vcn-offer:#9db6ee;--vcn-offer-soft:#27304a;--vcn-offer-line:#3d4a72;--vcn-offer-solid:#3f5fa8;--vcn-support:#b8beb1;--vcn-support-soft:#30362e;--vcn-support-line:#4a5046;--vcn-support-solid:#566057}
.vcn[data-kind="message"],.vcn-dot[data-kind="message"]{--k:var(--vcn-message);--k-soft:var(--vcn-message-soft);--k-line:var(--vcn-message-line);--k-solid:var(--vcn-message-solid)}
.vcn[data-kind="photo"],.vcn-dot[data-kind="photo"]{--k:var(--vcn-gift);--k-soft:var(--vcn-gift-soft);--k-line:var(--vcn-gift-line);--k-solid:var(--vcn-gift-solid)}
.vcn[data-kind="gift"],.vcn-dot[data-kind="gift"]{--k:var(--vcn-gift);--k-soft:var(--vcn-gift-soft);--k-line:var(--vcn-gift-line);--k-solid:var(--vcn-gift-solid)}
.vcn[data-kind="offer"],.vcn-dot[data-kind="offer"]{--k:var(--vcn-offer);--k-soft:var(--vcn-offer-soft);--k-line:var(--vcn-offer-line);--k-solid:var(--vcn-offer-solid)}
.vcn[data-kind="like"],.vcn-dot[data-kind="like"]{--k:var(--vcn-like);--k-soft:var(--vcn-like-soft);--k-line:var(--vcn-like-line);--k-solid:var(--vcn-like-solid)}
.vcn[data-kind="match"],.vcn-dot[data-kind="match"]{--k:var(--vcn-like);--k-soft:var(--vcn-like-soft);--k-line:var(--vcn-like-line);--k-solid:var(--vcn-like-solid)}
.vcn[data-kind="guest"],.vcn-dot[data-kind="guest"]{--k:var(--vcn-guest);--k-soft:var(--vcn-guest-soft);--k-line:var(--vcn-guest-line);--k-solid:var(--vcn-guest-solid)}
.vcn[data-kind="online"],.vcn-dot[data-kind="online"]{--k:var(--vcn-online);--k-soft:var(--vcn-online-soft);--k-line:var(--vcn-online-line);--k-solid:var(--vcn-online-solid)}
.vcn[data-kind="topup"],.vcn-dot[data-kind="topup"]{--k:var(--vcn-topup);--k-soft:var(--vcn-topup-soft);--k-line:var(--vcn-topup-line);--k-solid:var(--vcn-topup-solid)}
.vcn[data-kind="promo"],.vcn-dot[data-kind="promo"]{--k:var(--vcn-promo);--k-soft:var(--vcn-promo-soft);--k-line:var(--vcn-promo-line);--k-solid:var(--vcn-promo-solid)}
.vcn[data-kind="support"],.vcn-dot[data-kind="support"]{--k:var(--vcn-support);--k-soft:var(--vcn-support-soft);--k-line:var(--vcn-support-line);--k-solid:var(--vcn-support-solid)}
.vcn[data-kind="system"],.vcn-dot[data-kind="system"]{--k:var(--vcn-support);--k-soft:var(--vcn-support-soft);--k-line:var(--vcn-support-line);--k-solid:var(--vcn-support-solid)}
.vcn[data-kind="hint"],.vcn-dot[data-kind="hint"]{--k:var(--vcn-offer);--k-soft:var(--vcn-offer-soft);--k-line:var(--vcn-offer-line);--k-solid:var(--vcn-offer-solid)}
/* ===== Notifications v7 (2026-10-05) =====
   One card for pop-ups and the notification centre. Colour = type: message, like, view, online,
   top-up, offer, photo/gift, promo, support. Tokens live in :root / dark theme above. */
.vcn{--k:var(--vcn-support);--k-soft:var(--vcn-support-soft);--k-line:var(--vcn-support-line);--k-solid:var(--vcn-support-solid);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:13px 14px 13px 18px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-surface);color:var(--text);box-shadow:var(--p-shadow);overflow:hidden;font-family:var(--font);text-align:left}
.vcn-rail{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k)}
.vcn-avatar{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--k-soft);color:var(--k);font-size:14px;font-weight:800;line-height:1}
.vcn-avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.vcn-avatar b{font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.vcn-avatar.is-icon{border:1px solid var(--k-line)}
.vcn-avatar.is-icon svg{width:22px;height:22px}
.vcn-row.is-unread .vcn-avatar.is-icon{background:var(--p-surface)}
.vcn-badge{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--k-solid);color:#fff;border:2px solid var(--p-surface)}
.vcn-badge svg{width:11px;height:11px;stroke-width:2.3}
.vcn[data-kind=online] .vcn-badge,.vcn-watch .vcn-badge{width:14px;height:14px;right:-1px;bottom:-1px}
.vcn[data-kind=online] .vcn-badge:after,.vcn-watch .vcn-badge:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--k-solid);opacity:0;animation:vcnPulse 1.9s ease-out infinite}
.vcn-copy{display:grid;gap:3px;min-width:0}
.vcn-meta{display:flex;align-items:center;gap:8px;min-width:0;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--k)}
.vcn-label{white-space:nowrap}
.vcn-live{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--k-soft);color:var(--k);font-size:10px;letter-spacing:.04em}
.vcn-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--k-solid)}
.vcn-time{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text3);white-space:nowrap}
.vcn-titleline{display:flex;align-items:baseline;gap:10px;min-width:0}
.vcn-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:800;color:var(--text)}
.vcn-amount{margin-left:auto;flex:none;font-size:16px;font-weight:800;color:var(--k)}
.vcn-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;font-size:13px;line-height:1.42;color:var(--text2);word-break:break-word}
.vcn-text.is-quote{width:fit-content;max-width:100%;padding:8px 12px;border-radius:4px 14px 14px 14px;background:var(--k-soft);color:var(--text)}
.vcn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.vcn-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 15px;border:1px solid var(--k-line);border-radius:999px;background:var(--k-soft);color:var(--k);font-size:12.5px;font-weight:800;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.vcn-btn:hover{border-color:var(--k)}
.vcn-btn:active{transform:scale(.97)}
.vcn-btn.is-primary{background:var(--k-solid);border-color:var(--k-solid);color:#fff}
.vcn-btn.is-primary:hover{filter:brightness(1.08)}
.vcn-btn:focus-visible,.vcn-close:focus-visible,.vcn-x:focus-visible,.vcn-chip:focus-visible,.vcn-linkbtn:focus-visible,.vcn-reply-send:focus-visible{outline:3px solid var(--k-line);outline-offset:2px}
.vcn-sent{display:inline-flex;align-items:center;gap:6px;min-height:34px;font-size:13px;font-weight:800;color:var(--vcn-online)}
.vcn-sent svg{width:16px;height:16px;stroke-width:2.4}
.vcn-reply{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.vcn-reply[hidden]{display:none!important}
.vcn-reply-input{flex:1;min-width:0;height:38px;padding:0 14px;border:1px solid var(--k-line);border-radius:999px;background:var(--bg);color:var(--text);font-size:14px}
.vcn-reply-input:focus{border-color:var(--k);box-shadow:0 0 0 3px var(--k-soft)}
.vcn-reply-send{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--k-solid);color:#fff}
.vcn-reply-send:disabled,.vcn-reply-input:disabled{opacity:.55}
.vcn-reply-send svg{width:17px;height:17px}
.vcn-reply-error{flex-basis:100%;margin:0;font-size:12px;font-weight:700;color:var(--c-red)}
.vcn.is-replying .vcn-actions{display:none}
/* pop-up stack */
/* pop-up stack: bottom-right corner, newest card at the bottom; JS sets --vcn-inset to lift it above a docked tab bar or chat composer */
:root{--vcn-inset:0px;--vcn-stack-h:0px;--vcn-base:max(calc(20px + var(--safe-bottom)),calc(var(--vcn-inset) + 20px))}
.vcn-stack{position:fixed;z-index:9990;right:20px;bottom:var(--vcn-base);display:flex;flex-direction:column-reverse;gap:10px;width:min(392px,calc(100vw - 32px));transition:bottom .25s ease;pointer-events:none}
.vcn-stack>*{pointer-events:auto}
.vcn-toast{padding-right:42px;cursor:pointer;touch-action:pan-y;animation:vcnIn .28s cubic-bezier(.2,.8,.2,1) both;transition:transform .2s,opacity .2s}
.vcn-toast.is-leaving{animation:vcnOut .2s ease both;pointer-events:none}
.vcn-toast:focus-visible{outline:3px solid var(--k-line);outline-offset:2px}
.vcn-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--text3)}
.vcn-close:hover{background:var(--p-soft);color:var(--text)}
.vcn-close svg{width:15px;height:15px}
.vcn-timer{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--k);opacity:.45;transform-origin:left center;animation:vcnTimer linear forwards}
.vcn-toast.is-paused .vcn-timer{animation-play-state:paused}
.vcn-toast.is-sent .vcn-timer,.vcn-toast.is-replying .vcn-timer{opacity:.2}
@keyframes vcnIn{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}
@keyframes vcnOut{to{opacity:0;transform:translateX(28px) scale(.97)}}
@keyframes vcnTimer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes vcnPulse{0%{opacity:.7;transform:scale(.7)}100%{opacity:0;transform:scale(1.5)}}
/* notification centre */
body.vcn-lock{overflow:hidden}
.vcn-overlay{position:fixed;inset:0;z-index:10010;background:rgba(24,27,22,.4);opacity:0;transition:opacity .2s ease}
.vcn-overlay.is-in{opacity:1}
.vcn-drawer{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:min(440px,100%);background:var(--bg);border-left:1px solid var(--p-line);box-shadow:-18px 0 50px rgba(24,27,22,.18);transform:translateX(28px);transition:transform .26s cubic-bezier(.2,.8,.2,1);outline:none;color:var(--text);font-family:var(--font)}
.vcn-overlay.is-in .vcn-drawer{transform:none}
.vcn-drawer-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:calc(20px + var(--safe-top)) 18px 10px 22px}
.vcn-drawer-head small{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--text3)}
.vcn-drawer-head h2{margin:2px 0 0;font-size:26px;font-weight:800;line-height:1.1;letter-spacing:-.01em;color:var(--text)}
.vcn-drawer-tools{display:flex;align-items:center;gap:6px}
.vcn-linkbtn{min-height:36px;padding:0 12px;border-radius:999px;font-size:12.5px;font-weight:800;color:var(--c-accent)}
.vcn-linkbtn:hover{background:var(--p-accent-soft)}
.vcn-linkbtn[hidden]{display:none}
.vcn-x{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--p-line);border-radius:50%;background:var(--p-surface);color:var(--text2)}
.vcn-x:hover{background:var(--p-soft);color:var(--text)}
.vcn-x svg{width:18px;height:18px}
.vcn-chips{display:flex;flex-wrap:wrap;gap:6px 8px;padding:6px 20px 12px}
.vcn-chip{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:34px;padding:0 13px;border:1px solid var(--p-line);border-radius:999px;background:var(--p-surface);color:var(--text2);font-size:12.5px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.vcn-chip:hover{background:var(--p-soft)}
.vcn-chip.is-active{background:var(--text);border-color:var(--text);color:var(--bg)}
.vcn-chip b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent-btn);color:#fff;font-size:10.5px;font-weight:800}
.vcn-scroll{flex:1;min-height:0;padding:2px 16px 18px;overflow-y:auto;overscroll-behavior:contain}
.vcn-group{margin-top:12px}
.vcn-group>h3{display:flex;align-items:center;gap:8px;margin:0 4px 8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text3)}
.vcn-group>h3 span{padding:1px 7px;border-radius:999px;background:var(--p-soft);font-size:10.5px;letter-spacing:0}
.vcn-list{display:grid;gap:8px}
.vcn-row{padding:12px 12px 12px 17px;border-radius:14px;box-shadow:none;cursor:pointer;transition:border-color .15s,background .15s}
.vcn-row:hover{border-color:var(--k-line)}
.vcn-row:focus-visible{outline:3px solid var(--k-line);outline-offset:2px}
.vcn-row.is-unread{background:var(--k-soft);border-color:var(--k-line)}
.vcn-row.is-unread .vcn-text.is-quote{background:var(--p-surface)}
.vcn-row.is-unread .vcn-label:after{content:"";display:inline-block;width:7px;height:7px;margin-left:7px;border-radius:50%;background:var(--k-solid);vertical-align:middle}
.vcn-row .vcn-avatar{width:42px;height:42px}
.vcn-row .vcn-badge{border-color:var(--p-surface)}
.vcn-row.is-unread .vcn-badge{border-color:var(--k-soft)}
.vcn-empty{display:grid;justify-items:center;gap:8px;padding:56px 24px;text-align:center;color:var(--text2)}
.vcn-empty strong{font-size:16px;color:var(--text)}
.vcn-empty p{margin:0;max-width:300px;font-size:13px;line-height:1.5}
.vcn-empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--p-accent-soft);color:var(--c-accent)}
.vcn-empty-icon svg{width:26px;height:26px}
.vcn-hint{margin:0;padding:12px 14px;border:1px dashed var(--vcn-online-line);border-radius:14px;background:var(--vcn-online-soft);color:var(--text2);font-size:12.5px;line-height:1.5}
.vcn-watchlist{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.vcn-watch{--k:var(--vcn-online);--k-soft:var(--vcn-online-soft);--k-line:var(--vcn-online-line);--k-solid:var(--vcn-online-solid);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-surface)}
.vcn-watch-copy{display:grid;gap:1px;min-width:0}
.vcn-watch-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;color:var(--text)}
.vcn-watch-copy small{font-size:12px;color:var(--text3)}
.vcn-watch-copy small.is-on{font-weight:800;color:var(--vcn-online)}
.vcn-drawer-foot{display:flex;gap:8px;padding:12px 16px calc(12px + var(--safe-bottom));border-top:1px solid var(--p-line);background:var(--bg)}
.vcn-drawer-foot button{display:inline-flex;align-items:center;justify-content:center;flex:1;gap:8px;min-height:42px;padding:0 10px;border:1px solid var(--p-line);border-radius:12px;background:var(--p-surface);color:var(--text);font-size:12.5px;font-weight:800;cursor:pointer}
.vcn-drawer-foot button:hover{background:var(--p-soft)}
.vcn-drawer-foot svg{width:16px;height:16px}
/* notifications as a regular page (route /notifications) */
.vcn-page-wrap{width:100%;max-width:760px;margin:0 auto}
.vcn-drawer.is-page{position:static;width:100%;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;transition:none}
.vcn-drawer.is-page .vcn-drawer-head{padding:0 0 12px}
.vcn-drawer.is-page .vcn-chips{padding:4px 0 12px}
.vcn-drawer.is-page .vcn-scroll{overflow:visible;padding:2px 0 18px}
.vcn-drawer.is-page .vcn-drawer-foot{padding:12px 0 0;background:transparent}
/* settings legend */
.vcn-dot{display:inline-block;width:9px;height:9px;margin-right:9px;border-radius:50%;background:var(--k,var(--vcn-support))}
/* generic feedback toast, same language */
.toast{display:flex;align-items:center;gap:10px;max-width:min(92vw,420px);padding:11px 16px 11px 13px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-surface);color:var(--text);box-shadow:var(--p-shadow);font-size:13px;font-weight:700;line-height:1.35;text-align:left}
.toast:before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--vcn-support-solid)}
.toast.success{border-color:var(--vcn-online-line);color:var(--text)}
.toast.success:before{background:var(--vcn-online-solid)}
.toast.error{border-color:var(--vcn-like-line);color:var(--text)}
.toast.error:before{background:var(--vcn-like-solid)}
/* feedback toasts share the corner and sit above the pop-up stack */
.toast{left:auto;right:20px;bottom:calc(var(--vcn-base) + var(--vcn-stack-h));transform:translateY(16px)}
.toast.show{transform:none}
.vcn-more{align-self:flex-end;min-height:30px;padding:0 14px;border:1px solid var(--p-line);border-radius:999px;background:var(--p-surface);color:var(--text2);box-shadow:var(--p-shadow);font:800 12px/1 var(--font);cursor:pointer}
.vcn-more:hover{background:var(--p-soft);color:var(--text)}
.vcn-more:focus-visible{outline:3px solid var(--vcn-support-line);outline-offset:2px}
/* activity page pills share the palette */
.vc-activity-kind.is-like{background:var(--vcn-like-soft);color:var(--vcn-like)}
.vc-activity-kind.is-guest{background:var(--vcn-guest-soft);color:var(--vcn-guest)}
@media(max-width:768px){
  .vcn-stack{left:8px;right:8px;width:auto}
  :root{--vcn-inset:calc(62px + var(--safe-bottom));--vcn-base:max(calc(10px + var(--safe-bottom)),calc(var(--vcn-inset) + 10px))}
  .toast{right:8px;max-width:calc(100vw - 16px)}
  .vcn-toast{padding-top:12px;padding-bottom:12px}
  .vcn-btn{min-height:38px}
  .vcn-reply-input{font-size:16px}
  .vcn-overlay{background:rgba(24,27,22,.5)}
  .vcn-drawer{top:calc(28px + var(--safe-top));left:0;width:100%;border-left:0;border-radius:22px 22px 0 0;box-shadow:0 -14px 40px rgba(24,27,22,.28);transform:translateY(34px)}
  .vcn-drawer-head{padding-top:18px}
  .vcn-drawer-head h2{font-size:23px}
  .vcn-scroll{padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){
  .vcn-toast,.vcn-toast.is-leaving,.vcn-overlay,.vcn-drawer{animation:none!important;transition:none!important}
  .vcn-timer,.vcn[data-kind=online] .vcn-badge:after,.vcn-watch .vcn-badge:after{animation:none!important}
  .vcn-timer{display:none}
}

/* Contextual registration shares one profile and one pending action. */
.lightbox.vc-signup-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:26px;overflow-y:auto;overscroll-behavior:contain}
.lightbox.guest-profile-gate>div.vc-signup-card{width:min(100%,970px);max-width:970px;max-height:calc(100dvh - 52px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.98fr);gap:48px;position:relative;padding:42px!important;overflow-y:auto;overscroll-behavior:contain}
.vc-signup-card [hidden]{display:none!important}
.vc-signup-card,.vc-signup-form,.vc-signup-form [data-signup-step]{transition:none!important}
.vc-signup-copy{align-self:center;min-width:0}
.vc-signup-copy h2{font-size:38px!important;line-height:1.15;letter-spacing:-1.4px;margin:17px 0 22px}
.vc-signup-copy h2 em{color:var(--c-accent);font-family:Georgia,serif;font-weight:400}
.vc-signup-copy>p{font-size:13px;line-height:1.85;color:var(--text3);margin-bottom:23px}
.vc-signup-copy .guest-gate-context{grid-template-columns:70px minmax(0,1fr);padding:12px;gap:14px}
.vc-signup-copy .guest-gate-context>img,.vc-signup-copy .guest-gate-context>span{width:70px;height:88px;object-fit:cover}
.vc-signup-copy .guest-gate-context strong{font-size:19px;margin-top:8px}
.vc-signup-benefits{padding-left:17px;font-size:11px;line-height:2;color:var(--text3);margin:23px 0 13px}
.vc-signup-cancel{border:0;background:transparent;color:var(--text3);font-size:12px;text-decoration:underline;text-underline-offset:4px;min-height:42px;padding:11px 0;cursor:pointer}
.vc-signup-form{min-width:0;border:1px solid var(--line);border-radius:15px;background:var(--bg);padding:26px}
.vc-signup-form h3{font-size:23px;line-height:1.35;letter-spacing:-.5px;margin:22px 0 10px}
.vc-signup-form>p{font-size:11px;line-height:1.8;color:var(--text3);margin:0 0 22px}
.vc-signup-progress{display:flex;list-style:none;padding:0;margin:0;gap:15px;border-bottom:1px solid var(--line);padding-bottom:18px}
.vc-signup-progress li{display:flex;align-items:center;gap:7px;color:var(--text3);font-size:11px;white-space:nowrap}
.vc-signup-progress b{display:grid;place-items:center;background:var(--soft);border:1px solid var(--line);border-radius:50%;width:25px;height:25px;font-size:11px;font-weight:600}
.vc-signup-progress li.active{color:var(--c-accent);font-weight:700}
.vc-signup-progress li.active b{background:var(--accent-soft);border-color:var(--c-accent)}
.vc-signup-form [data-signup-step]{display:flex;flex-direction:column;gap:14px}
.vc-signup-form label{display:block;font-size:12px;color:var(--text2);line-height:1.6}
.vc-signup-form label>input{display:block;width:100%;margin-top:7px;min-height:46px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:16px}
.vc-signup-form small{font-size:10px;line-height:1.75;color:var(--text3)}
.vc-signup-password{display:block;position:relative;margin-top:7px}
.vc-signup-password>input{width:100%;min-height:46px;padding:11px 48px 11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:16px}
.vc-signup-password>button{position:absolute;right:2px;top:1px;display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--text3);border-radius:8px;cursor:pointer}
.vc-signup-form .vc-signup-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:8px;font-size:10px;line-height:1.8;color:var(--text3)}
.vc-signup-card .vc-signup-consent[hidden]{display:none!important}
.vc-signup-consent>input{display:inline!important;width:16px!important;min-height:16px!important;height:16px!important;padding:0!important;margin:3px 0 0!important;flex-shrink:0;accent-color:var(--c-accent)}
.vc-signup-form .guest-gate-submit{width:100%;min-height:47px;font-size:13px;border-radius:10px;background:var(--c-accent);box-shadow:none}
.vc-signup-form input[aria-invalid=true]{border-color:var(--c-accent)}
.vc-signup-form .guest-photo-picker{display:flex!important;align-items:center;padding:13px;min-height:81px}
.vc-signup-form .guest-photo-hint{margin-top:-4px}
.vc-signup-form .guest-gate-grid{gap:12px}
.vc-signup-form .guest-city-row{align-items:flex-start}
.vc-signup-form .city-suggest{position:static!important;margin-top:7px;width:100%;max-height:150px;inset:auto!important;transform:none!important}
.vc-signup-form #vc-gate-status{min-height:0}
.vc-signup-form .vc-signup-cancel{align-self:center;text-align:center;font-size:11px}
.vc-signup-form input:focus-visible,.vc-signup-card button:focus-visible,.vc-signup-card a:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}
@media(max-width:900px){.lightbox.guest-profile-gate>div.vc-signup-card{gap:26px;padding:32px!important}.vc-signup-copy h2{font-size:32px!important}.vc-signup-form{padding:23px}.vc-signup-form h3{font-size:21px}}
@media(max-width:680px){.lightbox.vc-signup-overlay{align-items:flex-start;padding:12px}.lightbox.guest-profile-gate>div.vc-signup-card{display:block;max-height:calc(100dvh - 24px);padding:25px 20px!important;border-radius:17px!important}.vc-signup-copy h2{font-size:31px!important;margin:14px 34px 16px 0}.vc-signup-copy>p{font-size:11px;margin-bottom:17px}.vc-signup-copy .guest-gate-context{grid-template-columns:45px minmax(0,1fr);gap:10px;padding:9px}.vc-signup-copy .guest-gate-context>img,.vc-signup-copy .guest-gate-context>span{width:45px;height:56px}.vc-signup-copy .guest-gate-context strong{font-size:15px;margin-top:4px}.vc-signup-benefits{display:none}.vc-signup-copy>.vc-signup-cancel{font-size:10px;margin-top:4px}.vc-signup-form{padding:20px;margin-top:12px}.vc-signup-progress{padding-bottom:15px}.vc-signup-form h3{font-size:22px;margin-top:17px}.vc-signup-form>p{font-size:10px;margin-bottom:17px}.vc-signup-form .guest-gate-grid{grid-template-columns:minmax(0,1fr) minmax(0,.72fr)}.vc-signup-form .guest-photo-picker span{width:54px;height:64px;flex-basis:54px}.vc-signup-form .guest-gate-submit{font-size:12px}.vc-signup-form .guest-city-row input{font-size:16px}.vc-signup-card .guest-gate-close{right:10px;top:10px}}
@media(max-width:360px){.lightbox.guest-profile-gate>div.vc-signup-card{padding:23px 16px!important}.vc-signup-copy h2{font-size:28px!important}.vc-signup-form{padding:17px}.vc-signup-form h3{font-size:20px}.vc-signup-progress{gap:11px}}
/* ===== v3.5 (2026-10-06): design review fixes, stage 1 ===== */
/* Dark theme: the white label on the filled signup button was 2.3:1 */
html[data-theme="dark"] .vc-signup-form .guest-gate-submit{background:var(--action-coral)}
html[data-theme="dark"] .vc-signup-form .guest-gate-submit:hover{background:var(--action-coral2)}
/* iOS Safari zooms the page when a focused field is under 16px */
@media(max-width:768px){.chat-compact-view .chat-compose-field textarea,#vc-c-input,.chat-list-tools input,#vc-chat-search{font-size:16px}}
/* Chat: the paywall banner reads as one button */
button.chat-compact-access.is-empty{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 8px 8px 12px;border-color:transparent;background:var(--accent-soft)}
button.chat-compact-access.is-empty>div{display:contents}
button.chat-compact-access.is-empty strong{font-size:13px;line-height:1.3}
button.chat-compact-access.is-empty small{display:inline-flex;align-items:center;min-height:40px;margin:0;padding:0 14px;border-radius:12px;background:var(--action-coral);color:#fff;font-size:13px;font-weight:800;white-space:nowrap}
/* 44px tap targets: the visible control is unchanged, only its hit area grows */
.vc-icebreaker-start,.vc-icebreaker-next,.vc-hub-card-title>button,.vc-hub-continue-empty button,#vc-chat-back,#vc-chat-block,#vc-c-add,#vc-c-express,#pp-back,#pp-share,.vc-activity-bell{position:relative}
.vc-icebreaker-start::after,.vc-hub-card-title>button::after,.vc-hub-continue-empty button::after{content:"";position:absolute;top:-15px;bottom:-15px;left:-6px;right:-6px}
.vc-icebreaker-next::after{content:"";position:absolute;top:-9px;bottom:-9px;left:-9px;right:-9px}
#vc-chat-back::after,#vc-chat-block::after,#vc-c-add::after,#vc-c-express::after{content:"";position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}
#pp-back::after,#pp-share::after,.vc-activity-bell::after{content:"";position:absolute;top:-5px;bottom:-5px;left:-5px;right:-5px}
.pp-hero-like-btn::after{content:"";position:absolute;top:-5px;bottom:-5px;left:-5px;right:-5px}
@media(max-width:768px){
  .discover-more-toggle.browse-all,.vc-context-primary,.vc-activity-tabs>button,.vc-activity-profile-insight button{min-height:44px}
  .vc-settings-legal a{display:inline-flex;align-items:center;min-height:44px}
}
/* ===== v3.5 (2026-10-06): design review fixes, stage 2 ===== */
/* First-visit hint: a dismissible banner instead of a full-screen dialog; on phones it floats over the top of the card */
.vc-coach-banner{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:4px 4px 4px 14px;border:1px solid var(--line);border-radius:16px;background:var(--accent-soft)}
.vc-coach-banner .vc-coach-ico{display:grid;place-items:center;flex:none;width:20px;height:20px;color:var(--c-accent)}
.vc-coach-banner .vc-coach-ico svg,.vc-coach-banner .vc-coach-ico img{width:20px;height:20px}
.vc-coach-banner p{margin:0;flex:1;font-size:13px;line-height:1.35;font-weight:600;color:var(--text)}
.vc-coach-banner button{min-height:44px;padding:0 14px;border:0;border-radius:12px;background:transparent;color:var(--c-accent);font-size:14px;font-weight:800;cursor:pointer}
@media(max-width:768px){.vc-coach-banner{position:fixed;top:calc(var(--safe-top,0px) + 10px);left:12px;right:12px;z-index:30;margin:0;box-shadow:var(--shadow)}}
/* Chats: dialogs first, the progress cards below them */
.chat-list-page>.chat-insight-stack{margin-top:14px}
/* Signup after a like: shorter intro on phones, the primary button stays visible */
@media(max-width:680px){
  .lightbox.guest-profile-gate>div.vc-signup-card{padding-bottom:0!important}
  .vc-signup-copy h2{font-size:25px!important;line-height:1.2;margin:8px 34px 8px 0}
  .vc-signup-copy>p{display:none}
  .vc-signup-form{margin-top:8px;padding:16px}
  .vc-signup-form h3{font-size:19px;margin:12px 0 6px}
  .vc-signup-form>p{margin-bottom:12px}
  .vc-signup-cta{position:sticky;bottom:0;z-index:3;margin:0 -16px;padding:10px 16px 12px;background:var(--bg);box-shadow:0 -10px 14px -10px rgba(0,0,0,.18)}
}
/* ===== UX improvements 2026-10-09 (Project improvements.md: U-01, U-03, U-04, U-05, U-07, U-09, A-01) ===== */
.own-profile-empty-note{margin:0;font-size:12px;line-height:1.45;color:var(--text3)}
#vc-profile-progress [data-progress-route="/profile"]{display:none}
.vc-modal-pass{position:relative}
.vc-modal-pass>input{padding-right:52px}
.vc-modal-eye{position:absolute;right:2px;top:1px;display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--text3);border-radius:8px;cursor:pointer}
.vc-modal-eye[aria-pressed="true"]{color:var(--c-accent)}
.vc-modal-eye svg{width:20px;height:20px}
.vc-modal-note{display:block;font-size:12px;line-height:1.35;color:var(--text3)}
.vc-modal-note:empty{display:none}
.vc-modal-note.is-bad{color:var(--bad,#d1495b)}
.vc-modal-note.is-ok{color:var(--c-green)}
.vc-modal-note.is-warn{color:var(--c-gold)}
.vc-modal-form-error{margin-top:12px;padding:10px 12px;border:1px solid var(--bad,#d1495b);border-radius:12px;color:var(--bad,#d1495b);font-size:13px;line-height:1.4}
.vc-modal-form-error[hidden]{display:none}
.vc-modal-field input[aria-invalid="true"],.vc-modal-field textarea[aria-invalid="true"]{border-color:var(--bad,#d1495b)}
.vc-quiet-times.is-off{opacity:.45}
.vc-quiet-summary{margin:6px 0 2px;font-size:12px;color:var(--text2)}
.vc-coach-banner .vc-coach-short{display:none}
.chat-kbd-hint{display:none}
.vc-support-draft{display:block;min-height:15px;margin:-4px 0 2px;font-size:11px;color:var(--text3)}
@media(max-width:768px){
  .vc-coach-banner{gap:8px;padding:2px 2px 2px 12px;border-radius:14px}
  .vc-coach-banner .vc-coach-long{display:none}
  .vc-coach-banner .vc-coach-short{display:block;flex:1;min-width:0;font-size:12.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vc-coach-banner .vc-coach-ico,.vc-coach-banner .vc-coach-ico svg,.vc-coach-banner .vc-coach-ico img{width:18px;height:18px}
  .vc-coach-banner button{position:relative;min-height:36px;padding:0 10px;font-size:13px}
  .vc-coach-banner button::after{content:"";position:absolute;inset:-4px -2px}
  .vc-activity-tabs [role=tab]{min-height:44px}
  .vc-context-actions button.vc-context-primary,.vc-context-actions button.vc-context-secondary{min-height:44px}
  .vc-activity-insight>[data-activity-profile]{min-height:44px}
}
@media(hover:hover) and (pointer:fine) and (min-width:769px){
  .chat-compact-view .chat-compose-field .chat-kbd-hint{display:block;flex:none;align-self:center;padding:0 12px 0 6px;font-size:11px;line-height:1.2;color:var(--text3);white-space:nowrap}
}

/* ===== otkrovenno.online brand lockup (rebrand 2026-10-10): the wordmark is longer than the old name ===== */
.p-brand-copy h1{font-size:22px;letter-spacing:-1px;line-height:1.05;white-space:nowrap}
.p-brand-copy h1 .brand-tld{display:block;margin-top:1px;font-size:14px;font-weight:700;letter-spacing:.2px;color:var(--c-accent)}
.vc-brand-lockup .vt{font-size:clamp(17px,5.4vw,24px);white-space:nowrap}
.vc-brand-lockup .vt .brand-tld{color:var(--c-accent)}
