/* VirtGold Toolkit — front-end. Uses the theme's design tokens, works in light/dark and RTL. */
.vgtk-heart { position:absolute; top:10px; inset-inline-end:10px; z-index:4; display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid color-mix(in srgb, var(--vg-border) 70%, transparent); border-radius:999px; background:color-mix(in srgb, var(--vg-surface) 88%, transparent); color:var(--vg-text); cursor:pointer; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); box-shadow:0 2px 10px rgba(0,0,0,.08); transition:transform .2s var(--vg-ease), color .2s, background .2s; }
.vgtk-heart:hover { transform:scale(1.08); color:var(--vg-danger); }
.vgtk-heart svg, .vgtk-wl-btn svg { transition:fill .2s, transform .3s var(--vg-ease); }
.vgtk-heart[aria-pressed="true"], .vgtk-wl-btn[aria-pressed="true"] { color:var(--vg-danger); }
.vgtk-heart[aria-pressed="true"] svg, .vgtk-wl-btn[aria-pressed="true"] svg { fill:currentColor; }
.vgtk-heart.is-pop svg, .vgtk-wl-btn.is-pop svg { animation:vgtk-pop .45s var(--vg-ease); }
@keyframes vgtk-pop { 0% { transform:scale(1); } 40% { transform:scale(1.35); } 100% { transform:scale(1); } }
.vgtk-wl-btn { display:inline-flex; align-items:center; gap:8px; margin:12px 0 4px; padding:6px 2px; border:0; background:none; color:var(--vg-muted); font:600 14px/1.2 var(--vg-font-ui); cursor:pointer; }
.vgtk-wl-btn:hover { color:var(--vg-text); }
.vgtk-wl__hint { display:flex; align-items:center; gap:8px; margin:0 0 18px; padding:10px 14px; border-radius:12px; background:var(--vg-surface-2); color:var(--vg-muted); font-size:14px; }
.vgtk-wl__loading { height:220px; border-radius:var(--vg-radius); background:linear-gradient(90deg, var(--vg-surface-2), var(--vg-surface), var(--vg-surface-2)); background-size:200% 100%; animation:vgtk-shine 1.2s linear infinite; }
@keyframes vgtk-shine { to { background-position:-200% 0; } }
.vgtk-wl__empty { display:grid; justify-items:center; gap:10px; padding:48px 20px; border:1.5px dashed var(--vg-border); border-radius:var(--vg-radius); text-align:center; color:var(--vg-muted); }
.vgtk-wl__empty svg { color:var(--vg-danger); }
.vgtk-wl__empty p { max-width:420px; margin:0 0 6px; }
.vgtk-wl .vg-card a.vg-btn { color:var(--vg-btn-fg); text-decoration:none; }
.vgtk-wl .vg-card.is-removing { opacity:0; transform:scale(.96); transition:opacity .25s, transform .25s; }

.vgtk-pwyw { display:grid; gap:8px; width:100%; margin:0 0 16px; padding:14px; border:1px solid var(--vg-border); border-radius:var(--vg-radius); background:var(--vg-surface-2); }
.vgtk-pwyw label { font:700 14px/1.2 var(--vg-font-ui); }
.vgtk-pwyw__field { display:flex; align-items:center; height:var(--vg-field-h, 48px); border:1.5px solid var(--vg-input-border, var(--vg-border)); border-radius:var(--vg-field-radius, 12px); background:var(--vg-input-bg, var(--vg-surface)); overflow:hidden; }
.vgtk-pwyw__field:focus-within { border-color:var(--vg-primary); box-shadow:0 0 0 3px var(--vg-primary-soft); }
.vgtk-pwyw__field span { padding:0 4px 0 14px; color:var(--vg-muted); font-weight:700; }
.vgtk-pwyw__field input { flex:1; min-width:0; height:100%; border:0 !important; background:transparent !important; box-shadow:none !important; color:var(--vg-input-text, var(--vg-text)); font-size:18px; font-weight:800; outline:0; }
.vgtk-pwyw__chips { display:flex; flex-wrap:wrap; gap:6px; }
.vgtk-pwyw__chips button { padding:6px 12px; border:1.5px solid var(--vg-border); border-radius:999px; background:var(--vg-surface); color:var(--vg-text); font:700 13px/1 var(--vg-font-ui); cursor:pointer; }
.vgtk-pwyw__chips button.is-on, .vgtk-pwyw__chips button:hover { border-color:var(--vg-primary); color:var(--vg-primary); }
.vgtk-pwyw small { color:var(--vg-muted); font-size:12.5px; }
.vgtk-pwyw-price { font-weight:700; }

.vgtk-cu { display:inline-flex; vertical-align:middle; font-size:13px; }
.vgtk-cu__btn { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 8px 0 6px; border:1px solid var(--vg-border); border-radius:8px; background:var(--vg-surface, transparent); color:var(--vg-text, inherit); font:600 13px/1 var(--vg-font-ui); letter-spacing:0; cursor:pointer; transition:border-color .15s, background .15s; }
.vgtk-cu__btn:hover, .vgtk-cu__btn[aria-expanded="true"] { border-color:color-mix(in srgb, var(--vg-primary) 55%, var(--vg-border)); }
.vgtk-cu__btn:focus-visible { outline:2px solid var(--vg-primary); outline-offset:2px; }
.vgtk-cu__flag { flex:none; display:inline-grid; place-items:center; width:18px; height:18px; border-radius:4px; object-fit:cover; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.vgtk-cu__flag.is-globe { box-shadow:none; color:var(--vg-muted); }
.vgtk-cu__chev { flex:none; opacity:.6; transition:transform .15s; }
.vgtk-cu__btn[aria-expanded="true"] .vgtk-cu__chev { transform:rotate(180deg); }
.price .vgtk-cu--price { order:99; margin-inline-start:10px; font-size:13px; }
.price .vgtk-cu--price .vgtk-cu__btn { height:28px; }
.vgtk-cu--header .vgtk-cu__btn { height:38px; border-radius:var(--vg-btn-radius, 10px); background:transparent; color:var(--vg-header-text, inherit); }
.vgtk-cu--footer .vgtk-cu__btn { background:transparent; color:inherit; }
.vgtk-cu-pop { position:fixed; z-index:100000; width:260px; max-width:calc(100vw - 16px); padding:6px; border:1px solid var(--vg-border, #e5e7eb); border-radius:12px; background:var(--vg-surface, #fff); color:var(--vg-text, #111); box-shadow:0 12px 32px rgba(0,0,0,.16); font:500 14px/1.2 var(--vg-font-ui, system-ui); }
.vgtk-cu-pop[hidden] { display:none; }
.vgtk-cu-pop__find { display:block; width:100%; height:36px; margin:0 0 6px; padding:0 10px; border:1px solid var(--vg-border, #e5e7eb); border-radius:8px; background:var(--vg-surface-2, #f6f7f9); color:inherit; font:inherit; }
.vgtk-cu-pop__find:focus { outline:none; border-color:var(--vg-primary); }
.vgtk-cu-pop__list { max-height:300px; margin:0; padding:0; overflow-y:auto; list-style:none; outline:none; overscroll-behavior:contain; }
.vgtk-cu-pop__list li { display:flex; align-items:center; gap:10px; min-height:38px; padding:6px 8px; border-radius:8px; cursor:pointer; }
.vgtk-cu-pop__list li[hidden] { display:none; }
.vgtk-cu-pop__list li.is-focus { background:var(--vg-surface-2, #f3f4f6); }
.vgtk-cu-pop__list li[aria-selected="true"] { background:var(--vg-primary-soft, #eef2ff); }
.vgtk-cu-pop__list li[aria-selected="true"] b { color:var(--vg-primary); }
.vgtk-cu-pop__list b { flex:none; width:38px; font-weight:700; }
.vgtk-cu-pop__list span:not(.vgtk-cu__flag) { overflow:hidden; color:var(--vg-muted, #6b7280); font-size:13px; white-space:nowrap; text-overflow:ellipsis; }
.vgtk-cu-pop.is-sheet { inset:auto 0 0 0; width:auto; max-width:none; padding:10px 10px calc(10px + env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; box-shadow:0 0 0 100vmax rgba(0,0,0,.4); }
.vgtk-cu-pop.is-sheet .vgtk-cu-pop__list { max-height:55vh; }
.vgtk-cu-pop.is-sheet .vgtk-cu-pop__list li { min-height:46px; }
.vgtk-cu-note, .vgtk-credit { display:flex; align-items:center; gap:10px; margin:0 0 16px; padding:12px 14px; border-radius:12px; background:var(--vg-surface-2); color:var(--vg-text); font-size:14px; }
.vgtk-cu-note[hidden] { display:none; }
.vgtk-cu-note svg { flex:none; color:var(--vg-muted); }
.vgtk-credit { border:1px solid var(--vg-border); }
.vgtk-credit.is-on { border-color:color-mix(in srgb, var(--vg-success) 45%, transparent); background:var(--vg-success-soft, var(--vg-surface-2)); }
.vgtk-credit > svg { flex:none; color:var(--vg-primary); }
.vgtk-credit span { flex:1; }
.vgtk-credit a { flex:none; font-weight:700; color:var(--vg-primary); text-decoration:underline; text-underline-offset:3px; }

.vgtk-wallet { margin:0 0 22px; padding:18px; border:1px solid var(--vg-border); border-radius:var(--vg-radius); background:linear-gradient(135deg, var(--vg-primary-soft), transparent 70%), var(--vg-surface); }
.vgtk-wallet__head { display:flex; align-items:center; gap:12px; }
.vgtk-wallet__head > svg { color:var(--vg-primary); }
.vgtk-wallet__head small { display:block; color:var(--vg-muted); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.vgtk-wallet__head strong { font-size:26px; letter-spacing:-.02em; }
.vgtk-wallet__log { margin:14px 0 0; padding:0; list-style:none; border-top:1px solid var(--vg-border); }
.vgtk-wallet__log li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--vg-border); font-size:13.5px; color:var(--vg-muted); }
.vgtk-wallet__log b.is-pos { color:var(--vg-success); } .vgtk-wallet__log b.is-neg { color:var(--vg-text); }

.vgtk-lookup { max-width:460px; margin:10px auto 40px; padding:30px; border:1px solid var(--vg-border); border-radius:calc(var(--vg-radius) + 4px); background:var(--vg-surface); box-shadow:var(--vg-shadow-sm); text-align:center; }
.vgtk-lookup__icon { display:inline-grid; place-items:center; width:56px; height:56px; margin-bottom:10px; border-radius:16px; background:var(--vg-primary-soft); color:var(--vg-primary); }
.vgtk-lookup h2 { margin:0 0 6px; font-size:24px; }
.vgtk-lookup > p { margin:0 0 18px; color:var(--vg-muted); font-size:14.5px; }
.vgtk-lookup__form { display:grid; gap:12px; text-align:start; }
.vgtk-lookup__form p { display:grid; gap:6px; margin:0; }
.vgtk-lookup__form label { font-weight:700; font-size:13.5px; }
.vgtk-lookup__msg { display:flex; gap:10px; align-items:flex-start; margin:0 0 16px; padding:12px 14px; border-radius:12px; text-align:start; font-size:14px; background:var(--vg-surface-2); }
.vgtk-lookup__msg.is-ok { background:var(--vg-success-soft, var(--vg-surface-2)); }
.vgtk-lookup__msg.is-ok svg { color:var(--vg-success); flex:none; } .vgtk-lookup__msg.is-err svg { color:var(--vg-danger); flex:none; }
.vgtk-lookup-link { margin:14px 0 0; text-align:center; font-size:13.5px; }
.vgtk-lookup-link a { display:inline-flex; align-items:center; gap:6px; color:var(--vg-muted); }
.vgtk-inv-link { margin:18px 0; }
.vgtk-survey { margin-top:8px; }
@media (max-width:720px) { .vgtk-heart { top:8px; inset-inline-end:8px; width:32px; height:32px; } .vgtk-heart svg { width:16px; height:16px; } .vgtk-lookup { padding:22px 18px; } }
@media (prefers-reduced-motion:reduce) { .vgtk-heart, .vgtk-heart svg, .vgtk-wl-btn svg { transition:none; animation:none !important; } .vgtk-wl__loading { animation:none; } }
