/* Force Data Web — ajustes v11: inicio de sesión con Google, riel de módulos, utilidades */
[hidden]{display:none !important}

.google-signin-wrap{margin-top:18px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:6px 0 14px;color:var(--text3);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,55,.35),transparent)}
.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-radius:var(--radius-sm);background:#0b0b0b;color:var(--text);border:1px solid rgba(212,175,55,.3);cursor:pointer;font-weight:600;font-size:.9rem;transition:var(--transition)}
.btn-google:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}

.home-planets{margin-bottom:8px}
.home-planets .planet-rail{padding-top:10px}

@media (max-width:768px){
  .planet-tile{width:82px}
  .planet-ring{width:72px;height:72px}
  .profile-hero{flex-direction:column;text-align:center}
  .profile-tags{justify-content:center}
}

.stats-error{grid-column:1/-1;color:var(--text2);border:1px solid var(--glass-border);border-radius:12px;padding:18px;background:rgba(10,9,7,.9);font-size:.85rem}
.method-details{font-size:.74rem;color:var(--text2);margin-top:6px;word-break:break-word}

/* Inicio: bienvenida */
.home-hero{position:relative;display:flex;align-items:center;gap:28px;padding:32px;margin-bottom:26px;border-radius:20px;border:1px solid var(--glass-border);background:radial-gradient(circle at 0% 0%,rgba(212,175,55,.18),transparent 55%),radial-gradient(circle at 100% 100%,rgba(246,220,131,.08),transparent 50%),linear-gradient(160deg,#0b0a08,#000);overflow:hidden;animation:fadeInUp .6s ease}
.home-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 40%,rgba(246,220,131,.06) 50%,transparent 60%);transform:translateX(-100%);animation:heroSheen 6s ease-in-out infinite;pointer-events:none}
@keyframes heroSheen{0%,55%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.home-hero-logo{position:relative;flex-shrink:0;width:132px;height:132px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#000;box-shadow:0 0 0 1px rgba(212,175,55,.45),0 0 48px rgba(212,175,55,.3)}
.home-hero-logo::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px dashed rgba(212,175,55,.35);animation:spin 30s linear infinite}
.home-hero-logo img{width:120px;height:120px;border-radius:50%;object-fit:cover}
.home-kicker{display:inline-block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);margin-bottom:8px}
.home-hero h2{font-size:1.9rem;color:var(--text);margin-bottom:8px}
.home-hero p{color:var(--text2);max-width:520px;font-size:.92rem;margin-bottom:18px}
.home-cta{width:auto;padding:12px 26px;display:inline-flex}
@media (max-width:768px){.home-hero{flex-direction:column;text-align:center;padding:24px}.home-hero p{margin-left:auto;margin-right:auto}}


/* Anuncio a pantalla completa */
.ann-overlay{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:annIn .35s ease}
.ann-overlay.ann-out{opacity:0;transition:opacity .3s}
@keyframes annIn{from{opacity:0}to{opacity:1}}
.ann-card{position:relative;overflow:hidden;width:min(480px,100%);padding:36px 30px 26px;border-radius:22px;text-align:center;border:1px solid rgba(212,175,55,.45);background:radial-gradient(circle at 50% 0%,rgba(246,220,131,.2),transparent 60%),linear-gradient(170deg,#0d0b07,#000);box-shadow:0 0 0 1px rgba(0,0,0,.6),0 0 60px rgba(212,175,55,.28);animation:annUp .5s cubic-bezier(.2,.8,.2,1)}
@keyframes annUp{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.ann-sheen{position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(246,220,131,.12) 50%,transparent 60%);transform:translateX(-100%);animation:annSheen 3.2s ease-in-out infinite;pointer-events:none}
@keyframes annSheen{0%,60%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.ann-mark{display:flex;justify-content:center;margin-bottom:14px}
.ann-kicker{display:inline-block;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light)}
.ann-card h2{font-size:1.45rem;margin:8px 0 10px;color:var(--text)}
.ann-card p{color:var(--text2);font-size:.95rem;line-height:1.6;white-space:pre-line;margin-bottom:22px}
.ann-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ann-count{font-size:.75rem;color:var(--text3);letter-spacing:.1em}
.ann-next{width:auto;padding:11px 26px}

/* Adaptable: desde telefonos pequenos hasta pantallas grandes */
img,svg,video{max-width:100%}
.fx-mono{display:block;height:auto}
html,body{overflow-x:hidden}
@media (max-width:1100px){.lobby-layout{flex-direction:column;align-items:center;min-height:auto;gap:24px}.lobby-right{display:none}.lobby-left{padding:16px 0}}
@media (max-width:768px){#main-content{margin-left:0}#sidebar{transform:translateX(-100%)}#sidebar.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.8)}.view{padding:18px 14px}#topbar{padding:10px 14px}#topbar-clock{display:none}}
@media (max-width:480px){.lobby-card{padding:26px 20px}.lobby-logo h1{font-size:1.35rem;letter-spacing:.08em}.home-hero{padding:20px}.home-hero h2{font-size:1.3rem}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px}.stat-value{font-size:1.3rem}.chart-card{padding:14px}.ann-card{padding:28px 20px 20px}.plan-card{padding:18px}.profile-hero{padding:18px}.profile-avatar{width:76px;height:76px;font-size:1.5rem}}
@media (max-width:340px){.stats-grid{grid-template-columns:1fr}.home-hero-logo{width:96px;height:96px}.home-hero-logo img,.home-hero-logo .fx-mono{width:88px;height:88px}.view-header h2{font-size:1.1rem}}

/* Campana de notificaciones */
#notif-wrap{position:relative}
.notif-badge{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#d4af37;color:#050505;font-size:.62rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #000}
.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(340px,86vw);max-height:420px;overflow-y:auto;z-index:200;border:1px solid var(--glass-border);border-radius:14px;background:linear-gradient(160deg,#0d0c09,#000);box-shadow:0 18px 50px rgba(0,0,0,.75);animation:fadeInUp .2s ease}
.notif-head{padding:14px 16px;font-family:var(--font-display);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light);border-bottom:1px solid var(--glass-border)}
.notif-item{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid rgba(212,175,55,.08)}
.notif-item.unread{background:rgba(212,175,55,.06)}
.notif-dot{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.72rem;background:rgba(212,175,55,.15);color:var(--gold)}
.notif-dot.success{background:rgba(31,157,85,.2);color:#3ddc84}
.notif-dot.warning{background:rgba(245,158,11,.18);color:#f59e0b}
.notif-dot.error{background:rgba(220,60,60,.2);color:#ff6b6b}
.notif-title{font-size:.85rem;color:var(--text);font-weight:600}
.notif-msg{font-size:.78rem;color:var(--text2);line-height:1.45;margin-top:2px}
.notif-time{font-size:.68rem;color:var(--text3);margin-top:4px}
.notif-empty{padding:28px 16px;text-align:center;color:var(--text3);font-size:.82rem}
.link-btn{background:none;border:none;color:var(--gold-light);cursor:pointer;font-size:.78rem;text-decoration:underline;padding:0;font-family:inherit}
.link-btn:hover{color:var(--gold)}

/* Seccion de contacto / redes */
.contact-section{margin-top:26px;margin-bottom:10px}
.contact-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.contact-card{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:16px;border:1px solid var(--glass-border);background:linear-gradient(160deg,#0d0c09,#000);color:var(--text);transition:var(--transition);position:relative;overflow:hidden}
.contact-card:hover{transform:translateY(-3px);border-color:rgba(212,175,55,.55);box-shadow:var(--shadow-gold)}
.contact-ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.contact-card.whatsapp .contact-ic{background:linear-gradient(135deg,#25d366,#128c7e)}
.contact-card.telegram .contact-ic{background:linear-gradient(135deg,#2aabee,#229ed9)}
.contact-card.tiktok .contact-ic{background:linear-gradient(135deg,#25f4ee,#000 55%,#fe2c55)}
.contact-name{font-family:var(--font-display);font-size:1rem;flex:1}
.contact-go{font-size:.72rem;color:var(--gold-light);letter-spacing:.06em}
.ann-image{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:14px;margin-bottom:14px;border:1px solid var(--glass-border)}

/* Pantalla de consulta */
.workspace-hint{font-size:.82rem;color:var(--gold-light);margin-top:10px;min-height:1.2em}
.workspace-hint:empty{display:none}
#workspace-module-info{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:16px;border:1px solid var(--glass-border);border-radius:14px;background:linear-gradient(160deg,#0d0c09,#000)}
#workspace-module-info:empty{display:none}
.module-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.25);flex-shrink:0}
.module-name{font-family:var(--font-display);font-size:1.05rem;color:var(--text)}
.module-desc{font-size:.78rem;color:var(--text3);margin-top:2px}
.module-desc code{color:var(--gold-light)}

/* Resultados: imagenes y partes extra */
.result-media{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.result-media img{max-width:100%;max-height:360px;border-radius:12px;border:1px solid var(--glass-border);display:block}
.result-media video,.result-media audio{max-width:100%}
.result-extra{margin-top:12px;border-top:1px dashed rgba(212,175,55,.25);padding-top:12px}
.result-extra-part{margin-bottom:12px}
.result-extra-status{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text3)}

/* Resultado de consulta: campos estilo web (reemplaza el texto crudo del bot) */
.result-fields{margin-bottom:4px}
.result-heading{font-family:var(--font-display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin:18px 0 10px;padding-top:12px;border-top:1px solid rgba(212,175,55,.14)}
.result-heading:first-child{margin-top:0;padding-top:0;border-top:none}
.result-divider{border:none;border-top:1px dashed rgba(212,175,55,.25);margin:12px 0}
.result-para{font-size:.9rem;color:var(--text2);line-height:1.6;margin-bottom:8px}
/* Tarjetas de resultado plegables (workspace + historial) */
.result-head{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:10px;cursor:pointer;padding:2px 0 14px;margin-bottom:14px;border-bottom:1px solid var(--glass-border)}
.result-head-title{font-family:var(--font-display);font-size:.86rem;color:var(--gold-light);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-head-arg{font-family:'JetBrains Mono',monospace;font-size:.76rem;color:var(--text2);background:rgba(212,175,55,.07);border:1px solid var(--glass-border);padding:2px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.result-head-time{margin-left:auto;font-size:.72rem;color:var(--text3);white-space:nowrap}
.result-head-chev{color:var(--text3);flex-shrink:0;transition:transform .25s}
.result-card.collapsed .result-head{padding-bottom:2px;margin-bottom:0;border-bottom-color:transparent}
.result-card.collapsed .result-head-chev{transform:rotate(-90deg)}
.result-card.collapsed .result-body{display:none}
.result-card.collapsed{padding-top:14px;padding-bottom:14px}
.result-head:hover .result-head-title{color:var(--gold)}
.history-note{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--text2);padding:12px 16px;border-radius:12px;border:1px solid var(--glass-border);background:rgba(212,175,55,.05);margin-bottom:16px}
.history-note svg{color:var(--gold);flex-shrink:0}
.history-note b{color:var(--gold-light);font-weight:600}
.history-list{display:flex;flex-direction:column;gap:10px}
.history-expired{font-size:.78rem;color:var(--text3);padding:10px 12px;border-radius:10px;border:1px dashed var(--glass-border);margin:12px 0}
.history-actions{display:flex;justify-content:flex-end;margin-top:14px}
.history-redo{display:inline-flex;align-items:center;gap:8px;width:auto;padding:9px 18px}
@media (max-width:600px){.result-head-arg{max-width:34%}.result-head-time{font-size:.66rem}}
.doc-gallery{margin-bottom:18px}
.doc-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,280px));gap:14px;justify-content:center;margin-bottom:18px}
.doc-gallery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text3)}
.doc-dl-all{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,rgba(212,175,55,.18),rgba(212,175,55,.06));border:1px solid rgba(212,175,55,.4);color:var(--gold-light);padding:7px 14px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:none;cursor:pointer;transition:var(--transition)}
.doc-dl-all:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,280px));gap:14px;justify-content:center}
.doc-tile{display:flex;flex-direction:column;gap:8px}
.doc-frame{aspect-ratio:1/1;border-radius:14px;overflow:hidden;cursor:zoom-in;border:1px solid var(--glass-border);background:radial-gradient(circle at 50% 35%,rgba(212,175,55,.07),transparent 70%),#070707;display:flex;align-items:center;justify-content:center;padding:10px;transition:var(--transition)}
.doc-frame img{width:100%;height:100%;object-fit:contain;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.doc-frame:hover{border-color:rgba(212,175,55,.55);box-shadow:var(--shadow-gold)}
.doc-frame:hover img{transform:scale(1.04)}
.doc-tile-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.doc-tile-actions button,.doc-tile-actions a{all:unset;cursor:pointer;text-align:center;font-size:.74rem;font-weight:600;padding:7px 0;border-radius:8px;border:1px solid var(--glass-border);color:var(--text2);transition:var(--transition)}
.doc-tile-actions button:hover,.doc-tile-actions a:hover{border-color:var(--gold);color:var(--gold-light)}
@media (max-width:480px){.doc-grid{grid-template-columns:1fr 1fr;gap:10px}.doc-frame{padding:6px}}
.result-pending{margin:0;border:none;background:none;box-shadow:none;padding:26px 0}
.result-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:34px 20px 22px;color:var(--text3)}
.result-empty svg{color:var(--text3);opacity:.6}
.result-empty-title{font-family:var(--font-display);font-size:1rem;color:var(--text2);letter-spacing:.02em}
.result-empty-sub{font-size:.82rem;color:var(--text3);max-width:360px;line-height:1.5}
.field-grid{display:flex;flex-direction:column;gap:13px;margin-bottom:6px}
.field-row{display:flex;flex-direction:column;gap:2px}
.field-label{font-size:.66rem;color:var(--text3);letter-spacing:.09em;text-transform:uppercase;font-weight:600}
.field-value{all:unset;cursor:pointer;font-size:.95rem;color:var(--text);display:inline-flex;align-items:center;gap:7px;word-break:break-word;border-radius:6px;padding:2px 5px;margin:-2px -5px;transition:var(--transition)}
.field-value:hover{background:rgba(212,175,55,.08)}
.field-value.copied{color:#3ddc84}
.field-copy-ic{opacity:0;flex-shrink:0;transition:opacity .15s}
.field-value:hover .field-copy-ic{opacity:.55}
.result-text{font-size:.9rem;color:var(--text2);line-height:1.6;white-space:pre-line}

/* Vista previa de imagenes de resultado: miniatura en la tarjeta + visor ampliado */
.result-img{cursor:zoom-in;transition:var(--transition)}
.result-img:hover{opacity:.88;transform:scale(1.015)}
.lightbox-overlay{position:fixed;inset:0;z-index:6000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:rgba(0,0,0,.88);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s ease}
.lightbox-overlay.open{opacity:1;pointer-events:auto}
.lightbox-img{max-width:92vw;max-height:80vh;border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 0 60px rgba(212,175,55,.2)}
.lightbox-close{position:absolute;top:18px;right:22px;width:40px;height:40px;border-radius:50%;background:rgba(212,175,55,.12);border:1px solid var(--glass-border);color:var(--gold-light);font-size:1.4rem;line-height:1;cursor:pointer;transition:var(--transition)}
.lightbox-close:hover{background:rgba(212,175,55,.25)}
.lightbox-download{color:var(--gold-light);font-size:.85rem;text-decoration:underline}

/* Ficha de resultado: archivos (foto, firma, huella, PDF...) en tarjetas a la izquierda, datos
   agrupados por seccion a la derecha — inspirado en el patron de fichas de identidad tipo web. */
.result-id-card{display:flex;gap:20px;align-items:flex-start;margin-bottom:10px}
.result-id-media{flex:0 0 150px;width:150px;display:flex;flex-direction:column;gap:12px}
.result-id-media.single{flex:0 0 230px;width:230px}
@media (max-width:620px){.result-id-media.single{flex:0 0 100%;width:100%;max-width:280px;margin:0 auto}}
.media-rail-card{border:1px solid var(--glass-border);border-radius:12px;padding:9px;background:rgba(212,175,55,.03);text-align:center}
.media-rail-card .result-img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;display:block}
.media-rail-card video{width:100%;border-radius:8px}
.media-rail-icon{width:100%;aspect-ratio:3/4;border-radius:8px;background:rgba(212,175,55,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--gold-light);font-family:var(--font-display);font-size:.72rem;letter-spacing:.08em}
.media-rail-name{margin-top:6px;font-size:.68rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-rail-action{display:block;margin-top:8px;font-size:.72rem;color:var(--gold-light);text-decoration:underline}
.result-id-fields{flex:1;min-width:0}
@media (max-width:560px){.result-id-card{flex-direction:row;flex-wrap:wrap}.result-id-media{flex-direction:row;flex-wrap:wrap;width:100%}.media-rail-card{flex:0 0 120px}.result-id-fields{flex:1 1 220px;min-width:220px}}

/* Inicio: ranking de usuarios + novedades */
.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}
@media (max-width:768px){.community-grid{grid-template-columns:1fr}}
.leaderboard-list{display:flex;flex-direction:column;gap:2px}
.lb-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-radius:8px}
.lb-row.me{background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.25)}
.lb-rank{flex:0 0 26px;text-align:center;font-family:var(--font-display);font-size:.85rem;color:var(--text3)}
.lb-row:nth-child(1) .lb-rank{color:#f6dc83}
.lb-row:nth-child(2) .lb-rank{color:#d7d7d7}
.lb-row:nth-child(3) .lb-rank{color:#c98a4b}
.lb-name{flex:1;font-size:.86rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-tag{font-size:.62rem;background:var(--gold);color:#050505;font-weight:800;padding:1px 6px;border-radius:8px;margin-left:6px;letter-spacing:.04em}
.lb-count{font-size:.78rem;color:var(--gold-light);flex-shrink:0}
.novedades-list{display:flex;flex-direction:column;gap:14px;max-height:220px;overflow-y:auto}
.nov-item{border-left:2px solid rgba(212,175,55,.35);padding-left:12px}
.nov-title{font-size:.86rem;color:var(--text);font-weight:600;margin-bottom:2px}
.nov-msg{font-size:.78rem;color:var(--text2);line-height:1.5}
.nov-date{font-size:.68rem;color:var(--text3);margin-top:4px}

/* ═══ Purchases view: resumen stats (inspirado en AverigualoPE) ═══ */
#purchases-content .stats-grid{margin-bottom:22px}

/* RENIEC 2026 va primero en el menu y se destaca del resto: corona dorada con brillo pulsante
   propio y una franja de fondo sutil, para que sea lo primero que el ojo capta al abrir el menu. */
/* Textura sutil de rombos dorados (estilo "hero pattern") solo en la categoria destacada, para que
   se note que es distinta del resto sin recargar visualmente el menu entero. */
.cat-group-featured .cat-header{
  background:
    linear-gradient(90deg,rgba(212,175,55,.1),transparent),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M13 2 L24 13 L13 24 L2 13 Z' fill='none' stroke='%23d4af37' stroke-opacity='0.16' stroke-width='1'/%3E%3C/svg%3E");
  background-size:auto,26px 26px;
}
.cat-icon-glow{animation:crownGlow 2.4s ease-in-out infinite}
@keyframes crownGlow{
  0%,100%{filter:drop-shadow(0 0 2px rgba(212,175,55,.55))}
  50%{filter:drop-shadow(0 0 7px rgba(212,175,55,.95)) drop-shadow(0 0 14px rgba(212,175,55,.5))}
}
@media (prefers-reduced-motion: reduce){.cat-icon-glow{animation:none;filter:drop-shadow(0 0 5px rgba(212,175,55,.7))}}

/* Evita que los digitos "bailen" de ancho mientras el contador anima de 0 al valor real. */
.stat-card .stat-value{font-variant-numeric:tabular-nums}

/* Cada foto/PDF ahora trae dos acciones separadas: "Vista previa" (abre el visor o el PDF en una
   pestana) y "Descargar" (fuerza la descarga), en vez de una sola accion combinada. */
.media-rail-actions{display:flex;gap:10px;justify-content:center;margin-top:8px}
.media-rail-actions .media-rail-action{margin-top:0}
button.media-rail-action{background:none;border:none;padding:0;font-family:inherit;cursor:pointer}

/* Estado de carga premium para "Consultando...": antes era el bot el que mandaba una foto propia
   de marca mientras procesaba, ahora el buscando lo hace la web con su propia animacion de marca
   (anillo dorado + FX), asi nunca se ve nada del bot mientras se espera. */
.premium-loader{display:flex;align-items:center;gap:18px;padding:26px 22px;border:1px solid rgba(212,175,55,.18);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(212,175,55,.05),transparent)}
.pl-ring{position:relative;width:46px;height:46px;flex-shrink:0}
.pl-ring::before,.pl-ring::after{content:"";position:absolute;inset:0;border-radius:50%}
.pl-ring::before{border:2px solid rgba(212,175,55,.15)}
.pl-ring::after{border:2px solid transparent;border-top-color:var(--gold);border-right-color:var(--gold-light);animation:plSpin 1.1s linear infinite}
.pl-core{position:absolute;inset:7px;border-radius:50%;background:radial-gradient(circle at 30% 25%,var(--gold-light),var(--gold-dim) 75%);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.72rem;font-weight:700;color:#050505;letter-spacing:.03em;animation:plPulse 1.6s ease-in-out infinite}
@keyframes plSpin{to{transform:rotate(360deg)}}
@keyframes plPulse{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.45)}50%{box-shadow:0 0 0 7px rgba(212,175,55,0)}}
.pl-status{display:flex;align-items:baseline;gap:2px}
.pl-label{font-family:var(--font-display);font-size:.92rem;letter-spacing:.05em;color:var(--gold-light)}
.pl-dots{display:inline-flex;gap:3px;margin-left:2px}
.pl-dots i{width:4px;height:4px;border-radius:50%;background:var(--gold);display:inline-block;animation:plDot 1.1s ease-in-out infinite}
.pl-dots i:nth-child(2){animation-delay:.15s}
.pl-dots i:nth-child(3){animation-delay:.3s}
@keyframes plDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion: reduce){.pl-ring::after,.pl-core,.pl-dots i{animation:none}}

/* Categorias del menu: acordeon con deslizado suave (en vez del salto instantaneo de antes). */
/* Bug real: sin "overflow:hidden" en el contenedor de la fila del grid, el primer comando se
   asomaba un poco incluso con la categoria cerrada (0fr no recorta el contenido por si solo). */
.cat-items{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1);padding-left:0;overflow:hidden}
.cat-group.open .cat-items{grid-template-rows:1fr}
/* Categorias con hasta 16 comandos (Antecedentes y Denuncias, Vehiculos y SUNARP...) seguian
   empujando el resto del menu fuera de vista al abrirse, aunque cada fila ya era chica: el problema
   real es que una lista larga NO debe crecer sin limite dentro del sidebar. Ahora cada categoria
   abierta tiene su propio techo de alto con scroll interno (como una mini-lista independiente),
   asi el resto de categorias de abajo nunca se mueve ni se esconde. */
/* El padding vertical de este contenedor (aunque sea de solo 2-4px) sigue ocupando espacio real
   incluso con min-height:0 y el contenido colapsado a 0 - por eso se veia un hilito del primer
   comando asomando bajo cada categoria cerrada. Al ponerlo solo cuando .open, cerrado mide 0 posta. */
.cat-items-inner{overflow-y:auto;max-height:272px;min-height:0;padding-left:10px;display:flex;flex-direction:column;gap:1px}
.cat-group.open .cat-items-inner{padding-top:2px;padding-bottom:4px}
.cat-items-inner::-webkit-scrollbar{width:4px}
.cat-items-inner::-webkit-scrollbar-thumb{background:rgba(212,175,55,.25);border-radius:4px}

.cat-item{position:relative;padding:5px 10px;font-size:.78rem;border-radius:6px;border:1px solid transparent;overflow:hidden;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.cat-item .item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.cat-item:hover{border-color:rgba(212,175,55,.22);background:rgba(212,175,55,.07);transform:translateX(2px)}
.cat-item:active{transform:translateX(2px) scale(.98)}
.cat-item.active{background:linear-gradient(90deg,rgba(212,175,55,.18),rgba(212,175,55,.05));border-color:rgba(212,175,55,.4);color:var(--gold-light);box-shadow:inset 0 0 0 1px rgba(212,175,55,.12),0 0 16px -4px rgba(212,175,55,.55)}
.cat-item.active .item-dot{background:var(--gold);box-shadow:0 0 6px var(--gold)}
.cat-item.active .item-cost{background:rgba(212,175,55,.14);color:var(--gold-light);border-color:rgba(212,175,55,.3)}
/* Barrido de brillo de una sola pasada al seleccionar (la animacion se reinicia sola cada vez que
   la clase .active se vuelve a aplicar, asi que "destella" en cada seleccion nueva). */
.cat-item.active::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.22) 48%,transparent 62%);background-size:220% 100%;animation:catItemShine .7s ease-out}
@keyframes catItemShine{from{background-position:160% 0}to{background-position:-60% 0}}
@media (prefers-reduced-motion: reduce){.cat-item.active::after{animation:none}.cat-item{transition:none}}
.cat-item .item-dot{transition:background .18s ease,box-shadow .18s ease}
.cat-item .item-cost{transition:background .18s ease,color .18s ease,border-color .18s ease;border:1px solid transparent}
.cat-header:hover{background:rgba(212,175,55,.05)}
.cat-group.open .cat-header{color:var(--gold-light)}
.cat-group.open .cat-header .cat-icon{filter:drop-shadow(0 0 4px currentColor)}

/* Iconos de linea premium por categoria (reemplaza el punto de color generico) */
.cat-header .cat-icon{width:17px;height:17px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.92;transition:var(--transition)}
.cat-header .cat-icon svg{width:100%;height:100%}
.cat-header:hover .cat-icon{opacity:1}

/* Retos de Creditos gratis que aun no entregan nada automatico (no hay sistema de referidos,
   rachas ni verificacion de email todavia): se marcan "Proximamente" en vez de prometer un numero
   de creditos que nadie va a recibir. */
.challenge-card.soon{opacity:.6}
.challenge-reward.soon{background:rgba(255,255,255,.04);color:var(--text3);border-color:rgba(255,255,255,.08)}

/* "Mi cuenta" desplegable en el menu (agrupa Perfil/Compras/Consultas, como en la referencia) */
.sidebar-account-group{margin-bottom:1px}
.sidebar-account-toggle{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 14px;background:none;border:none;color:var(--text2);cursor:pointer;font-size:.82rem;border-radius:var(--radius-xs);transition:var(--transition)}
.sidebar-account-toggle svg:first-child{flex-shrink:0;opacity:.6;transition:var(--transition)}
.sidebar-account-toggle:hover{background:var(--bg3);color:var(--text)}
.sidebar-account-toggle span{flex:1}
.account-chevron{margin-left:auto;transition:transform .2s;opacity:.5;flex-shrink:0}
.sidebar-account-group.open .account-chevron{transform:rotate(90deg)}
.sidebar-account-group.has-active .sidebar-account-toggle{color:var(--gold-light)}
.sidebar-account-group.has-active .sidebar-account-toggle svg:first-child{opacity:1;stroke:var(--gold)}
.account-submenu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1)}
.sidebar-account-group.open .account-submenu{grid-template-rows:1fr}
.account-submenu-inner{overflow:hidden;display:flex;flex-direction:column;gap:1px;padding-left:10px}
.sidebar-sub-btn{padding:7px 12px;font-size:.78rem;border-left:2px solid transparent}
.sidebar-sub-btn:hover{border-left-color:var(--gold);padding-left:14px;background:rgba(212,175,55,.06)}
.sidebar-sub-btn .item-dot{width:5px;height:5px;border-radius:50%;background:var(--text3);flex-shrink:0}
.sidebar-sub-btn.active .item-dot{background:var(--gold)}

/* ═══ LOGIN v2: panel derecho (IP, estado, headline, planeta) ═══ */
.lobby-right-top{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:420px;font-size:.74rem;color:var(--text3)}
.lobby-ip{font-family:'JetBrains Mono',monospace;letter-spacing:.02em}
.lobby-status{display:flex;align-items:center;gap:6px;color:var(--green)}
.lobby-status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:statusPulse 2s infinite}
@keyframes statusPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.lobby-headline{max-width:420px;text-align:center;font-size:1.3rem;line-height:1.35;color:var(--text);margin:4px 0 2px;letter-spacing:0}
.lobby-date{font-size:.74rem;color:var(--text3);text-transform:capitalize}
.globe-wrap{position:relative;width:100%;max-width:460px;aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.globe-glow{position:absolute;inset:4%;border-radius:50%;background:radial-gradient(circle,rgba(212,175,55,.2),transparent 70%);filter:blur(6px);pointer-events:none}
.globe-ring{position:absolute;border-radius:50%;border:1px dashed rgba(212,175,55,.22);pointer-events:none}
.globe-ring-1{inset:-6%;animation:spin 40s linear infinite}
.globe-ring-2{inset:4%;border-style:dotted;border-color:rgba(59,130,246,.22);animation:spin 55s linear infinite reverse}
#globe-canvas{width:100%;height:100%;position:relative;z-index:1}

/* Marquesina de entidades consultables (texto propio, sin logos de terceros) */
.lobby-ents{position:relative;z-index:1;width:100%;overflow:hidden;padding:18px 0 28px;margin-top:8px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.lobby-ents-title{text-align:center;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:14px}
.lobby-legal-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;font-size:.7rem;color:var(--text3)}
.lobby-legal-links a{color:var(--text3)}
.lobby-legal-links a:hover{color:var(--gold-light)}
.lobby-ents-track{display:flex;gap:12px;width:max-content;animation:entsMarquee 36s linear infinite}
.lobby-ents-track:hover{animation-play-state:paused}
@keyframes entsMarquee{to{transform:translateX(-50%)}}
.ent-card{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:9px;width:92px}
.ent-badge{position:relative;width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(40,34,20,.95),rgba(4,4,4,.96) 70%);box-shadow:0 2px 14px rgba(0,0,0,.5),inset 0 0 0 1px rgba(212,175,55,.18);transition:var(--transition);overflow:hidden}
.ent-badge::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(212,175,55,.22),transparent 72%);opacity:.55;animation:entGlowPulse 4.5s ease-in-out infinite}
.ent-badge::after{content:'';position:absolute;top:-60%;left:-20%;width:40%;height:220%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:rotate(18deg);animation:entShine 6s ease-in-out infinite;animation-delay:calc(var(--ent-i,0) * .4s)}
.ent-ring{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);color:var(--gold-dim);opacity:.65;animation:entRingSpin 14s linear infinite}
.ent-ring-solid{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;border:1px solid rgba(212,175,55,.25)}
.ent-icon{width:24px;height:24px;color:var(--text2);position:relative;z-index:1;transition:var(--transition)}
.ent-label{font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);text-align:center;white-space:nowrap;transition:var(--transition)}
.ent-card:hover .ent-badge{box-shadow:0 0 0 1px rgba(212,175,55,.55),0 6px 22px rgba(212,175,55,.3);transform:translateY(-3px) scale(1.04)}
.ent-card:hover .ent-ring{color:var(--gold-light);opacity:1}
.ent-card:hover .ent-icon{color:var(--gold-light)}
.ent-card:hover .ent-label{color:var(--gold-light)}
@keyframes entRingSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes entGlowPulse{0%,100%{opacity:.35;transform:scale(.92)}50%{opacity:.7;transform:scale(1.06)}}
@keyframes entShine{0%,92%,100%{top:-60%;left:-20%}46%{top:-60%;left:-20%}58%{top:120%;left:120%}91%{top:120%;left:120%}}

/* Soporte rapido (WhatsApp/Telegram) en el login */
.lobby-support{display:flex;align-items:center;justify-content:center;gap:10px;font-size:.78rem;color:var(--text3);margin-bottom:18px}
.lobby-support-btn{background:none;border:1px solid var(--glass-border);color:var(--gold-light);padding:4px 12px;border-radius:999px;cursor:pointer;font-size:.76rem;transition:var(--transition)}
.lobby-support-btn:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.fx-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:999;padding:20px}
.fx-modal{position:relative;width:100%;max-width:360px;background:linear-gradient(160deg,rgba(18,16,12,.97),rgba(4,4,4,.98));border:1px solid var(--glass-border);border-radius:16px;padding:28px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.fx-modal h3{margin-bottom:8px}
.fx-modal-note{color:var(--text2);font-size:.85rem;margin-bottom:18px}
.fx-modal-x{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text3);font-size:1.3rem;cursor:pointer;line-height:1}
.fx-modal-actions{display:flex;flex-direction:column;gap:10px}
.fx-ch{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px;border-radius:var(--radius-sm);font-weight:600;font-size:.88rem;color:#fff}
.fx-ch--tg{background:linear-gradient(135deg,#2AABEE,#229ED9)}
.fx-ch--wa{background:linear-gradient(135deg,#25D366,#128C7E)}

/* ═══ GIFT REVEAL (otorgamiento de plan) ═══ */
.gift-backdrop{z-index:1200}
.gift-modal{max-width:380px;overflow:hidden}
.gift-stage{display:flex;flex-direction:column;align-items:center}
.gift-box{cursor:pointer;display:inline-flex;padding:10px;filter:drop-shadow(0 0 18px rgba(218,165,32,.35));animation:giftIdle 2.4s ease-in-out infinite;transition:transform .15s}
.gift-box:hover{transform:scale(1.06)}
.gift-box.opening{animation:giftShake .5s ease}
@keyframes giftIdle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-2deg)}}
@keyframes giftShake{0%,100%{transform:rotate(0) scale(1)}20%{transform:rotate(-8deg) scale(1.04)}40%{transform:rotate(7deg) scale(1.04)}60%{transform:rotate(-5deg) scale(1.08)}80%{transform:rotate(4deg) scale(1.1)}}
.gift-stage.fading{animation:giftFadeOut .35s ease forwards}
@keyframes giftFadeOut{to{opacity:0;transform:scale(.85)}}
.gift-reveal{animation:giftPopIn .5s cubic-bezier(.2,1.4,.4,1) both}
@keyframes giftPopIn{0%{opacity:0;transform:scale(.7) translateY(10px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.gift-reveal h3{color:var(--gold);margin-bottom:4px}
.gift-plan-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:20px;background:linear-gradient(135deg,rgba(218,165,32,.18),rgba(218,165,32,.05));border:1px solid rgba(218,165,32,.4);color:var(--gold2);font-weight:700;font-size:1rem;margin:10px 0}
.gift-detail-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0;text-align:left;background:rgba(255,255,255,.03);border:1px solid var(--glass-border);border-radius:12px;padding:14px 16px}
.gift-detail-row{display:flex;justify-content:space-between;font-size:.85rem}
.gift-detail-row span:first-child{color:var(--text3)}
.gift-detail-row span:last-child{color:var(--text);font-weight:600}
.gift-close-btn{width:100%;margin-top:4px}

/* Google / Telegram login */
.social-signin-wrap{margin-top:16px}
.social-signin-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.social-btn{flex:1;min-width:120px;display:flex;align-items:center;justify-content:center;gap:9px;padding:11px;border-radius:var(--radius-sm);background:#0b0b0b;color:var(--text);border:1px solid rgba(212,175,55,.3);cursor:pointer;font-weight:600;font-size:.86rem;transition:var(--transition);text-decoration:none}
.social-btn:hover{border-color:var(--gold);box-shadow:var(--shadow-gold);color:var(--text)}
.social-btn--telegram{color:#8fd2f5}
.social-btn--telegram svg{color:#2AABEE}
.fx-turnstile{display:flex;justify-content:center;margin:16px 0 4px;min-height:0}
.fx-turnstile:not(:empty){min-height:66px}

/* ═══ BANNER DE ANUNCIO (admin) ═══ */
.top-banner{position:relative;display:flex;align-items:center;gap:10px;padding:10px 40px;text-align:center;justify-content:center;background:linear-gradient(90deg,#8a6a16,#f6dc83,#3b82f6,#f6dc83,#8a6a16);background-size:300% 100%;animation:bannerShift 8s linear infinite;z-index:1000}
.top-banner::after{content:'';position:absolute;inset:0;background:rgba(5,5,5,.72)}
@keyframes bannerShift{to{background-position:300% 0}}
.top-banner-text{position:relative;z-index:1;color:#fff;font-size:.84rem;font-weight:600;letter-spacing:.01em;text-decoration:none;flex:1;display:flex;align-items:center;justify-content:center;gap:8px}
.top-banner-text:hover{color:var(--gold-light)}
.top-banner-img{height:22px;max-width:120px;border-radius:4px;object-fit:cover}

.devtools-guard{position:fixed;inset:0;z-index:999999;background:rgba(5,5,5,.97);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;animation:fadeIn .2s ease}
.devtools-guard-box{max-width:360px;padding:20px}
.devtools-guard h2{color:#ef4444;margin:14px 0 6px;font-family:var(--font-heading)}
.devtools-guard p{color:var(--text2);font-size:.9rem}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.top-banner-close{position:relative;z-index:1;background:none;border:none;color:#fff;opacity:.7;font-size:1.2rem;cursor:pointer;line-height:1;padding:0 6px}
.top-banner-close:hover{opacity:1}

/* ═══ FICHA DE ACTIVIDAD (social proof, nombres parcialmente ocultos) ═══ */
.activity-toast{position:fixed;left:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:12px;background:linear-gradient(160deg,rgba(18,16,12,.96),rgba(4,4,4,.98));border:1px solid var(--glass-border);box-shadow:0 10px 30px rgba(0,0,0,.5);font-size:.78rem;color:var(--text2);max-width:300px;transform:translateY(12px);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}
.activity-toast.show{transform:translateY(0);opacity:1}
.activity-toast .act-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 8px rgba(34,197,94,.6)}
.activity-toast b{color:var(--gold-light)}
@media (max-width:600px){.activity-toast{left:10px;bottom:10px;max-width:calc(100vw - 20px)}.top-banner{padding:9px 36px;font-size:.78rem}}
