/* Página de un link compartido: solo lectura */
.vh-name { gap: 8px; padding: 0 14px 0 10px; height: 48px; font-weight: 600; max-width: 70vw; }
.vh-name #name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vh-name .ic { color: var(--dim); }
.insp .info .dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; vertical-align: -1px; border: .5px solid rgba(255,255,255,.3); }
.gate { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: var(--bg); padding: 24px; }
.gate .card { width: min(320px, 100%); display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.gate .card > .ic { width: 40px; height: 40px; color: var(--dim); }
.gate h1 { margin: 0; font-size: 19px; }
.gate p { margin: 0; color: var(--dim); }
.gate input { width: 100%; height: 50px; border-radius: 12px; border: 0; background: #1c1c20; text-align: center; letter-spacing: .4em; font-size: 22px; outline: none; }
.gate button.go { width: 100%; height: 48px; border-radius: 12px; background: var(--accent); color: #fff; font-weight: 600; }
.gate .bad { color: #ff9f0a; }
.gate.shake .card { animation: shake .3s; }
@keyframes shake { 25% { transform: translateX(-8px); } 75% { transform: translateX(8px); } }
