/* STAR<GATE>BC 2027 — Portal de cuentas por perfil */
.pt-hero{position:relative;overflow:hidden;border-radius:1.25rem;padding:1.25rem;background:
  radial-gradient(120% 140% at 0% 0%,rgba(59,130,246,.28),transparent 55%),
  radial-gradient(120% 140% at 100% 100%,rgba(139,92,246,.25),transparent 55%),#0d1424;border:1px solid rgba(255,255,255,.08)}
.pt-hero:after{content:"";position:absolute;inset:auto -40px -60px auto;width:220px;height:220px;border-radius:50%;background:rgba(212,175,55,.08);filter:blur(10px)}
.pt-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;background:#fff;box-shadow:0 0 0 3px rgba(212,175,55,.6),0 8px 24px rgba(0,0,0,.45);flex-shrink:0}
.pt-avatar-sm{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.15);flex-shrink:0}
.pt-avatar-xs{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#fff;flex-shrink:0}
.pt-type{display:inline-flex;align-items:center;gap:.35rem;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;background:rgba(212,175,55,.14);color:#e7c55a;border:1px solid rgba(212,175,55,.35)}
.pt-goals{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pt-goal{padding:1rem;border-radius:1rem;background:#111827;border:1px solid rgba(255,255,255,.07);display:flex;gap:.9rem;align-items:center}
.pt-ring{--p:0;--c:#3b82f6;width:68px;height:68px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  background:conic-gradient(var(--c) calc(var(--p)*1%),rgba(255,255,255,.07) 0)}
.pt-ring>span{width:54px;height:54px;border-radius:50%;background:#111827;display:grid;place-items:center;font:700 .85rem Sora,system-ui;color:#fff}
.pt-goal-lbl{font-size:.68rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.pt-goal-val{font:800 1.35rem Sora,system-ui;color:#fff;line-height:1.1}
.pt-goal-val small{font-size:.75rem;color:#64748b;font-weight:600}
.pt-tiles{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.pt-tile{display:flex;flex-direction:column;gap:.35rem;padding:.9rem;border-radius:1rem;background:#0f1729;border:1px solid rgba(255,255,255,.07);cursor:pointer;text-align:left;transition:.15s}
.pt-tile:hover{border-color:rgba(59,130,246,.5);transform:translateY(-2px);background:#111c33}
.pt-tile i{font-size:1.1rem;color:#60a5fa}
.pt-tile b{color:#fff;font-size:.85rem}
.pt-tile span{font-size:.68rem;color:#64748b}
.pt-avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}
@media(max-width:520px){.pt-avatar-grid{grid-template-columns:repeat(3,1fr)}}
.pt-av-opt{position:relative;border-radius:1rem;padding:.35rem;background:#0d1424;border:2px solid transparent;cursor:pointer;text-align:center;transition:.15s}
.pt-av-opt img{width:100%;aspect-ratio:1;border-radius:.8rem;object-fit:cover;background:#fff}
.pt-av-opt span{display:block;font-size:.6rem;color:#94a3b8;margin-top:.2rem}
.pt-av-opt:hover{border-color:rgba(59,130,246,.45)}
.pt-av-opt.is-on{border-color:#d4af37;box-shadow:0 0 0 3px rgba(212,175,55,.25)}
.pt-av-opt.is-on:after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:.2rem;right:.2rem;width:20px;height:20px;border-radius:50%;background:#d4af37;color:#111;font-size:.6rem;display:grid;place-items:center}
.pt-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem}
.pt-type-opt{padding:.75rem;border-radius:.9rem;background:#0d1424;border:2px solid rgba(255,255,255,.06);cursor:pointer;text-align:left}
.pt-type-opt i{color:#60a5fa}
.pt-type-opt b{display:block;color:#fff;font-size:.8rem;margin-top:.3rem}
.pt-type-opt small{display:block;color:#64748b;font-size:.64rem;line-height:1.3;margin-top:.15rem}
.pt-type-opt.is-on{border-color:#3b82f6;background:rgba(59,130,246,.1)}
.pt-dt{width:100%;border-collapse:separate;border-spacing:0;font-size:.76rem}
.pt-dt th{position:sticky;top:0;background:#0d1424;color:#94a3b8;font-weight:600;text-align:left;padding:.55rem .6rem;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap;z-index:1;cursor:pointer}
.pt-dt td{padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.05);color:#d1d5db;vertical-align:top;max-width:260px}
.pt-dt tr:hover td{background:rgba(59,130,246,.05)}
.pt-dt-wrap{overflow:auto;max-height:65vh;border:1px solid rgba(255,255,255,.07);border-radius:.9rem}
.pt-link{color:#60a5fa;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem}
.pt-link:hover{text-decoration:underline}
.pt-st{font-size:.62rem;font-weight:700;padding:.15rem .45rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;border:1px solid transparent;white-space:nowrap}
.pt-st-pendiente{background:rgba(148,163,184,.12);color:#94a3b8}
.pt-st-contactado{background:rgba(59,130,246,.14);color:#60a5fa}
.pt-st-no_contesta{background:rgba(245,158,11,.14);color:#fbbf24}
.pt-st-simpatizante{background:rgba(16,185,129,.15);color:#34d399}
.pt-st-indeciso{background:rgba(139,92,246,.15);color:#a78bfa}
.pt-st-rechazo,.pt-st-numero_erroneo{background:rgba(239,68,68,.14);color:#f87171}
.pt-bar{height:6px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.pt-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#8b5cf6)}
.pt-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}
.pt-toolbar .sgm-input{max-width:320px}
.pt-extra{border:1px dashed rgba(212,175,55,.45);border-radius:1rem;padding:1rem;background:rgba(212,175,55,.04)}
.pt-switch{display:flex;align-items:center;gap:.6rem;cursor:pointer;user-select:none}
.pt-switch input{display:none}
.pt-switch i.knob{width:40px;height:22px;border-radius:999px;background:#374151;position:relative;transition:.2s}
.pt-switch i.knob:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}
.pt-switch input:checked+i.knob{background:#d4af37}
.pt-switch input:checked+i.knob:after{left:21px}
.pt-chipset{display:flex;flex-wrap:wrap;gap:.35rem}
.pt-chip{font-size:.7rem;padding:.3rem .65rem;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#0d1424;color:#cbd5e1;cursor:pointer}
.pt-chip.is-on{background:rgba(59,130,246,.18);border-color:#3b82f6;color:#fff}
.pt-event{display:flex;gap:.8rem;padding:.9rem;border-radius:1rem;background:#111827;border:1px solid rgba(255,255,255,.07)}
.pt-event-ico{width:44px;height:44px;border-radius:.8rem;display:grid;place-items:center;background:rgba(59,130,246,.14);color:#60a5fa;flex-shrink:0}
.pt-member-row{display:grid;grid-template-columns:1.4fr 1fr .9fr .9fr auto;gap:.4rem;align-items:center}
@media(max-width:700px){.pt-member-row{grid-template-columns:1fr 1fr}}
.pt-counter{font:800 .8rem Sora,system-ui;padding:.25rem .6rem;border-radius:999px}
.pt-counter.ok{background:rgba(16,185,129,.15);color:#34d399}
.pt-counter.bad{background:rgba(239,68,68,.15);color:#f87171}
.pt-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:
  radial-gradient(80% 60% at 10% 0%,rgba(59,130,246,.18),transparent 60%),radial-gradient(80% 60% at 90% 100%,rgba(139,92,246,.18),transparent 60%),#0a0e1a}
.pt-auth-card{width:100%;max-width:760px}
.pt-steps{display:flex;gap:.4rem;margin-bottom:1rem}
.pt-steps i{flex:1;height:4px;border-radius:999px;background:rgba(255,255,255,.08)}
.pt-steps i.on{background:linear-gradient(90deg,#3b82f6,#d4af37)}
.pt-acc-card{display:flex;gap:.75rem;align-items:center;padding:.8rem;border-radius:1rem;background:#111827;border:1px solid rgba(255,255,255,.07)}
[data-theme=light] .pt-goal,[data-theme=light] .pt-event,[data-theme=light] .pt-acc-card,[data-theme=light] .pt-tile{background:#fff;border-color:#e5e7eb}
[data-theme=light] .pt-ring>span{background:#fff;color:#111}
[data-theme=light] .pt-goal-val,[data-theme=light] .pt-tile b{color:#111}
[data-theme=light] .pt-dt th{background:#f1f5f9;color:#475569}
[data-theme=light] .pt-dt td{color:#1f2937}

/* ---------- Captura inteligente: foto / voz / imágenes ---------- */
.cap-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem;border-radius:1rem;background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(139,92,246,.10));border:1px solid rgba(59,130,246,.25)}
.cap-bar-t{font-size:.7rem;font-weight:700;color:#cbd5e1;text-transform:uppercase;letter-spacing:.05em;margin-right:.25rem}
.cap-btn{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border-radius:.8rem;background:#0d1424;border:1px solid rgba(255,255,255,.1);color:#e2e8f0;cursor:pointer;transition:.15s;text-align:left}
.cap-btn i{font-size:1.05rem;color:#60a5fa}
.cap-btn b{display:block;font-size:.76rem}
.cap-btn small{display:block;font-size:.58rem;color:#64748b;line-height:1}
.cap-btn:hover{border-color:#3b82f6;transform:translateY(-1px)}
.cap-btn[data-cap^=ine] i{color:#d4af37}
.cap-btn[data-cap=voice] i{color:#f472b6}
@media(max-width:520px){.cap-btn{flex:1 1 30%;flex-direction:column;text-align:center;gap:.2rem}}
.cap-filled{box-shadow:0 0 0 2px rgba(16,185,129,.55)!important;background:rgba(16,185,129,.06)!important}
.cap-prog{padding:.7rem;border-radius:.8rem;background:#0d1424;border:1px solid rgba(255,255,255,.08);color:#cbd5e1}
.cap-mic{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;font-size:2rem;color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);box-shadow:0 10px 30px rgba(59,130,246,.35);transition:.2s}
.cap-mic.is-on{background:linear-gradient(135deg,#ef4444,#f472b6);animation:cap-pulse 1.2s infinite}
@keyframes cap-pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}70%{box-shadow:0 0 0 22px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.cap-wave{display:flex;justify-content:center;align-items:center;gap:3px;height:28px}
.cap-wave i{width:3px;height:4px;border-radius:2px;background:#475569;transition:.2s}
.cap-wave.is-on i{background:#f472b6;animation:cap-w .9s ease-in-out infinite}
.cap-wave.is-on i:nth-child(3n){animation-delay:.15s}.cap-wave.is-on i:nth-child(3n+1){animation-delay:.3s}.cap-wave.is-on i:nth-child(4n){animation-delay:.45s}
@keyframes cap-w{0%,100%{height:4px}50%{height:24px}}
.cap-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.4rem}
.cap-thumb{position:relative;aspect-ratio:1;border-radius:.6rem;overflow:hidden;background:#0d1424;border:1px solid rgba(255,255,255,.08)}
.cap-thumb img{width:100%;height:100%;object-fit:cover}
.cap-thumb button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:.6rem;display:grid;place-items:center}
[data-theme=light] .cap-btn,[data-theme=light] .cap-prog{background:#fff;color:#1f2937;border-color:#e5e7eb}

/* ═══════════ Cámara pantalla completa (estilo verificación de ID) ═══════════ */
html.capx-lock, html.capx-lock body { overflow: hidden !important; }
.capx { position: fixed; inset: 0; z-index: 9999; background: #000; color: #fff; font-family: inherit; touch-action: manipulation; }
.capx-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.capx-scrim-soft { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.45), transparent 22%, transparent 75%, rgba(0,0,0,.55)); pointer-events: none; }
.capx-frame { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%); border: 5px solid rgba(255,255,255,.88); border-radius: 18px;
  box-shadow: 0 0 0 200vmax rgba(0,0,0,.42); transition: width .35s ease, height .35s ease; pointer-events: none; }
.capx-frame[data-o="h"] { width: min(92vw, 128vh); aspect-ratio: 1.586 / 1; }
.capx-frame[data-o="v"] { height: min(58vh, 150vw); aspect-ratio: 1 / 1.586; }
@media (orientation: landscape) { .capx-frame[data-o="h"] { width: auto; height: min(62vh, 58vw); } .capx-frame[data-o="v"] { height: 72vh; } }
.capx-frame i { position: absolute; width: 26px; height: 26px; border: 0 solid #fff; }
.capx-frame i:nth-child(1) { top: -5px; left: -5px; border-top-width: 5px; border-left-width: 5px; border-top-left-radius: 18px; }
.capx-frame i:nth-child(2) { top: -5px; right: -5px; border-top-width: 5px; border-right-width: 5px; border-top-right-radius: 18px; }
.capx-frame i:nth-child(3) { bottom: -5px; left: -5px; border-bottom-width: 5px; border-left-width: 5px; border-bottom-left-radius: 18px; }
.capx-frame i:nth-child(4) { bottom: -5px; right: -5px; border-bottom-width: 5px; border-right-width: 5px; border-bottom-right-radius: 18px; }
.capx-pill { position: absolute; left: 50%; transform: translateX(-50%); top: max(14vh, 84px); background: #fff; color: #1f2544; font-weight: 700; font-size: 1.12rem;
  padding: .62rem 1.35rem; border-radius: 6px; white-space: nowrap; box-shadow: 0 4px 18px rgba(0,0,0,.25); max-width: 92vw; overflow: hidden; text-overflow: ellipsis; }
.capx-x { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 18px); right: 18px; background: transparent; border: 0; padding: 10px; cursor: pointer; filter: drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
.capx-rot, .capx-torch { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 22px); left: 16px; background: rgba(0,0,0,.45); color: #fff; border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px; padding: .45rem .85rem; font-size: .8rem; font-weight: 600; display: flex; gap: .4rem; align-items: center; cursor: pointer; backdrop-filter: blur(4px); }
.capx-torch { left: auto; right: 78px; padding: .5rem .7rem; }
.capx-torch.on { background: #facc15; color: #111; }
.capx-bar { position: absolute; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom, 0px) + 92px); display: flex; justify-content: center; align-items: center; gap: 2.4rem; }
.capx-shot { width: 76px; height: 76px; border-radius: 50%; border: 5px solid #fff; background: transparent; padding: 5px; cursor: pointer; }
.capx-shot span { display: block; width: 100%; height: 100%; border-radius: 50%; background: #fff; transition: transform .12s; }
.capx-shot:active span { transform: scale(.86); }
.capx-sm { width: 50px; height: 50px; border-radius: 50%; border: 0; background: rgba(0,0,0,.5); color: #fff; font-size: 1.2rem; cursor: pointer; backdrop-filter: blur(4px); }
.capx-help { position: absolute; right: 22px; bottom: calc(env(safe-area-inset-bottom, 0px) + 22px); background: #fff; color: #1f2544; border: 0; border-radius: 999px;
  padding: .7rem 1rem .7rem 1.6rem; font-weight: 800; font-size: 1.05rem; letter-spacing: .04em; display: flex; align-items: center; gap: .6rem; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.3); }
.capx-help b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #1f2544; color: #fff; font-size: 1rem; }
.capx-err { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 2rem; background: rgba(0,0,0,.8); font-size: 1rem; }
.capx-tips { position: absolute; inset: 0; background: rgba(0,0,0,.6); display: grid; place-items: end center; padding: 1rem; }
.capx-tips-card { background: #fff; color: #1f2544; border-radius: 20px; padding: 1.4rem 1.3rem; width: min(460px, 100%); margin-bottom: env(safe-area-inset-bottom, 0px); }
.capx-tips-card h3 { font-weight: 800; font-size: 1.15rem; margin-bottom: .7rem; }
.capx-tips-card ul { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .55rem; font-size: .92rem; }
.capx-tips-card li { padding-left: 1.3rem; position: relative; }
.capx-tips-card li::before { content: '•'; position: absolute; left: .3rem; color: #6366f1; font-weight: 900; }
.capx-ok { background: #1f2544; color: #fff; border: 0; border-radius: 999px; padding: .75rem 1.4rem; font-weight: 700; width: 100%; cursor: pointer; }
.capx-err .capx-ok { width: auto; background: #fff; color: #1f2544; }
.capx-flash::after { content: ''; position: absolute; inset: 0; background: #fff; animation: capxf .25s ease-out forwards; pointer-events: none; }
@keyframes capxf { from { opacity: .85 } to { opacity: 0 } }

/* ═══════════ PIN "Código de acceso" ═══════════ */
.pin-screen { position: fixed; inset: 0; z-index: 60; background: #fff; color: #111; display: flex; flex-direction: column; align-items: center; overflow-y: auto;
  padding: calc(env(safe-area-inset-top, 0px) + 2.2rem) 1.5rem calc(env(safe-area-inset-bottom, 0px) + 1.5rem); font-family: 'Roboto', 'Inter', system-ui, sans-serif; }
.pin-who { display: flex; flex-direction: column; align-items: center; gap: .35rem; margin-bottom: .6rem; }
.pin-who img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.pin-who span { font-size: .85rem; color: #555; }
.pin-title { font-size: 2.35rem; font-weight: 700; line-height: 1.12; text-align: center; margin: .2rem 0 1.9rem; letter-spacing: -.01em; }
.pin-dots { display: flex; gap: 3.1rem; margin-bottom: 2.4rem; }
.pin-dots i { width: 26px; height: 26px; border-radius: 50%; background: #b0b0b0; transition: background .15s, transform .15s; }
.pin-dots i.on { background: #1f2544; transform: scale(1.08); }
.pin-dots.err { animation: pinshake .4s; }
.pin-dots.err i { background: #dc2626; }
@keyframes pinshake { 0%,100% { transform: translateX(0) } 20%,60% { transform: translateX(-10px) } 40%,80% { transform: translateX(10px) } }
.pin-link { color: #1f2544; text-decoration: underline; font-size: 1.15rem; background: none; border: 0; cursor: pointer; margin-bottom: 2.4rem; }
.pin-msg { min-height: 1.3rem; font-size: .9rem; color: #dc2626; margin: -1.6rem 0 1rem; text-align: center; }
.pin-msg.ok { color: #15803d; }
.pin-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem 2.4rem; }
.pin-key { width: 94px; height: 94px; border-radius: 50%; border: 0; background: #f4f5fa; font-size: 2.5rem; font-weight: 500; color: #111; cursor: pointer;
  display: grid; place-items: center; transition: background .12s, transform .08s; -webkit-tap-highlight-color: transparent; }
.pin-key:active { background: #e3e5ef; transform: scale(.95); }
.pin-key:disabled { opacity: .45; }
.pin-key.blank { visibility: hidden; }
.pin-alt { margin-top: 1.8rem; display: flex; gap: 1.2rem; flex-wrap: wrap; justify-content: center; font-size: .88rem; }
.pin-alt button { background: none; border: 0; color: #555; text-decoration: underline; cursor: pointer; }
@media (max-height: 700px) { .pin-key { width: 76px; height: 76px; font-size: 2rem; } .pin-pad { gap: 1.1rem 2rem; } .pin-title { font-size: 1.9rem; margin-bottom: 1.2rem; } .pin-dots { margin-bottom: 1.6rem; } .pin-link { margin-bottom: 1.6rem; } }
