/* ---------- empty state, search, money ---------- */

.rv-empty { display: grid; justify-items: center; gap: 8px; padding: 34px 18px; text-align: center; color: var(--rv-muted); }
.rv-empty .rv-icon { width: 28px; height: 28px; opacity: .8; }
.rv-empty h3 { color: var(--rv-text); font-size: 16px; }

.rv-member-search { position: relative; }
.rv-search-box { position: relative; display: flex; align-items: center; }
.rv-search-box .rv-icon { position: absolute; left: 13px; color: var(--rv-faint); pointer-events: none; }
.rv-search-box input { padding-left: 40px; }
.rv-search-results {
    position: absolute;
    z-index: 50;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    display: grid;
    max-height: 280px;
    overflow-y: auto;
    border-radius: var(--rv-radius);
    border: 1px solid var(--rv-line);
    background: #10233f;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .4);
}
.rv-search-result { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 0; border-bottom: 1px solid var(--rv-line-soft); background: transparent; text-align: left; cursor: pointer; }
.rv-search-result:active { background: rgba(190, 217, 233, .1); }
@media (hover: hover) { .rv-search-result:hover { background: rgba(190, 217, 233, .1); } }
.rv-search-result-text { display: grid; gap: 2px; min-width: 0; }
.rv-search-none { margin-top: 8px; }

.rv-money-input { position: relative; display: flex; align-items: center; }
.rv-money-symbol { position: absolute; left: 14px; color: var(--rv-faint); font-weight: 700; }
.rv-money-input input { padding-left: 30px; }

/* Phone: the country sits inside the field, left of the number; an invisible native select over it opens the list. */
.rv-phone-input { position: relative; display: flex; align-items: center; }
.rv-phone-input .rv-phone-number { padding-left: calc(var(--rv-phone-prefix) + 46px); }
.rv-phone-country {
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 1px;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 0 11px 0 14px;
    border-right: 1px solid rgba(215, 234, 247, .17);
    color: #f0f5f9;
    font-weight: 700;
    white-space: nowrap;
}
.rv-phone-country::after { content: ""; width: 6px; height: 6px; margin: 0 0 3px 3px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); opacity: .55; }
.rv-phone-code { color: var(--rv-faint); font-size: 12px; font-weight: 600; }
/* the system list, not the styled one of .rv-field select: this select is invisible and only opens the list */
.rv-phone-input .rv-phone-country select { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; opacity: 0; cursor: pointer; -webkit-appearance: menulist; appearance: auto; }
.rv-phone-country select option { background: #203858; color: #f0f5f9; }
.rv-phone-country:has(select:focus-visible) { border-radius: var(--rv-radius) 0 0 var(--rv-radius); outline: 2px solid var(--rv-accent); outline-offset: -1px; }

.rv-kv { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 0; font-size: 13px; }
.rv-kv dt { color: var(--rv-faint); }
.rv-kv dd { margin: 0; }

@keyframes rv-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- QR scanner (RvScanner) ---------- */

.rv-scanner { display: grid; gap: 8px; }
.rv-scanner-view { position: relative; overflow: hidden; border-radius: var(--rv-radius-lg); background: #000; }
.rv-scanner-view video { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-scanner-frame {
    position: absolute;
    inset: 18% 22%;
    border-radius: 18px;
    border: 3px solid rgba(255, 255, 255, .85);
    box-shadow: 0 0 0 999px rgba(0, 0, 0, .28);
}
.rv-scanner-error { color: var(--rv-warning); }

/* Passkeys of the account (PasskeyList) */
.passkey-row { flex-wrap: wrap; }
.passkey-text { display: grid; gap: 2px; flex: 1; min-width: min(180px, 100%); }
.passkey-name { flex: 1; min-width: min(160px, 100%); }
.passkey-actions { gap: 4px; margin-left: auto; }
.passkey-password { padding-top: 14px; border-top: 1px solid var(--rv-line-soft); }
