/* ===== Guías y tutoriales (portal y vista previa del admin) =====
   Usa las variables del portal; en el admin, admin_guide_form.html define las mismas con sus colores. */
.app-page .g-back, .g-back { display:inline-flex; margin-bottom:24px; }
.g-article { max-width:820px; }
.g-head { display:flex; gap:18px; align-items:flex-start; margin-bottom:22px; }
.g-badge { flex:0 0 auto; display:grid; place-items:center; width:64px; height:64px; border-radius:18px;
  background:linear-gradient(145deg, rgba(255,215,106,.22), rgba(185,125,16,.12)); box-shadow:inset 0 0 0 1px rgba(240,180,41,.45), 0 10px 30px rgba(240,180,41,.12); color:var(--gold-hi, #ffd76a); }
.g-badge .app-icon { width:30px; height:30px; }
.g-kicker { margin:0 0 4px; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold, #f0b429); }
.g-head .app-title { margin:0; }
.g-head .app-sub { margin:.45rem 0 0; }

.g-body { font-size:1.02rem; line-height:1.7; color:var(--text, #e9eef8); }
.g-body > * + * { margin-top:14px; }
.g-body h2 { font-size:1.3rem; margin:30px 0 10px; padding-top:18px; border-top:1px solid var(--line, #1a2234); }
.g-body h2:first-child { border-top:0; padding-top:0; margin-top:0; }
.g-body h3 { font-size:1.08rem; margin:22px 0 8px; }
.g-body p { margin:0; }
.g-body strong { color:#fff; }
.g-body a:not(.a-btn) { color:var(--gold-hi, #ffd76a); text-decoration:underline; text-underline-offset:2px; word-break:break-word; }
.g-body ul { margin:0; padding-left:1.25rem; }
.g-body ul li { margin:.3rem 0; }
.g-body ul li::marker { color:var(--gold, #f0b429); }

/* pasos numerados */
.g-steps { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.g-steps li { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border-radius:14px; background:var(--surface, #080e1c); box-shadow:inset 0 0 0 1px var(--line, #1a2234); }
.g-step-n { flex:0 0 auto; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-weight:800; font-size:.9rem;
  background:var(--gold-grad, linear-gradient(180deg,#ffe28f 0%,#f5bd33 46%,#c98a14 100%)); color:#1c1300; }
.g-steps li > div { padding-top:3px; }

/* avisos */
.g-note { display:flex; gap:12px; align-items:flex-start; padding:12px 16px; border-radius:14px; background:rgba(255,255,255,.03); box-shadow:inset 0 0 0 1px var(--line, #1a2234); }
.g-note-ic { flex:0 0 auto; display:grid; place-items:center; width:24px; height:24px; border-radius:50%; font-size:.8rem; font-weight:800; background:#1f2b46; color:#fff; margin-top:2px; }
.g-note--warn { background:rgba(255,142,72,.08); box-shadow:inset 0 0 0 1px rgba(255,142,72,.35); }
.g-note--warn .g-note-ic { background:#ff8e48; color:#2a1300; }
.g-note--ok { background:rgba(53,212,137,.08); box-shadow:inset 0 0 0 1px rgba(53,212,137,.35); }
.g-note--ok .g-note-ic { background:var(--ok); color:#04170d; }

/* códigos que se copian */
.g-body .g-code, .g-code { display:inline-flex; align-items:center; gap:.35em; padding:.08em .5em; border:0; border-radius:8px; cursor:pointer;
  font:700 .95em 'JetBrains Mono', ui-monospace, monospace; letter-spacing:.04em; color:var(--gold-hi, #ffd76a);
  background:rgba(240,180,41,.12); box-shadow:inset 0 0 0 1px rgba(240,180,41,.4); transform:none; min-height:0; line-height:1.5; }
.g-code::after { content:'⧉'; font-size:.8em; opacity:.7; }
.g-code.copied::after { content:'✓'; opacity:1; }
.g-code:hover { background:rgba(240,180,41,.22); box-shadow:inset 0 0 0 1px rgba(240,180,41,.7); }
.g-body .g-code--big, .g-code--big { font-size:1.35rem; padding:.15em .6em; border-radius:10px; }

/* tarjeta de descarga */
.g-app { display:flex; gap:14px; align-items:center; padding:14px 16px; border-radius:16px; background:linear-gradient(135deg, rgba(240,180,41,.09), rgba(255,255,255,.02));
  box-shadow:inset 0 0 0 1px rgba(240,180,41,.3); }
.g-app + .g-app { margin-top:10px; }
.g-app-ic { flex:0 0 auto; display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:var(--gold-grad, linear-gradient(180deg,#ffe28f 0%,#f5bd33 46%,#c98a14 100%)); color:#1c1300; font-size:1.2rem; font-weight:900; }
.g-app-body { min-width:0; display:grid; gap:4px; }
.g-app-name { font-weight:800; font-size:1.05rem; }
.g-app-code { color:var(--muted, #8698c2); font-size:.9rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.g-body .g-app-link { color:var(--muted, #8698c2); font-size:.82rem; text-decoration:none; }

/* imágenes y vídeo */
.g-fig { margin:0; }
.g-fig img { display:block; max-width:100%; height:auto; border-radius:14px; box-shadow:0 0 0 1px var(--line, #1a2234), 0 12px 30px rgba(0,0,0,.35); cursor:zoom-in; }
.g-fig figcaption { margin-top:6px; font-size:.85rem; color:var(--muted, #8698c2); text-align:center; }
.g-video { position:relative; aspect-ratio:16/9; border-radius:14px; overflow:hidden; box-shadow:0 0 0 1px var(--line, #1a2234); background:#000; }
.g-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.g-btn { margin-top:2px; }

/* desplegable */
.g-more { border-radius:14px; box-shadow:inset 0 0 0 1px var(--line, #1a2234); background:var(--surface, #080e1c); }
.g-more > summary { cursor:pointer; padding:12px 16px; font-weight:700; list-style:none; display:flex; align-items:center; gap:.6rem; }
.g-more > summary::-webkit-details-marker { display:none; }
.g-more > summary::before { content:'›'; font-size:1.3rem; line-height:1; color:var(--gold, #f0b429); transition:transform .15s; }
.g-more[open] > summary::before { transform:rotate(90deg); }
.g-more-body { padding:0 16px 16px; }
.g-more-body > * + * { margin-top:10px; }

.g-foot { margin-top:34px; padding:18px; border-radius:16px; display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  background:var(--surface, #080e1c); box-shadow:inset 0 0 0 1px var(--line, #1a2234); }
.g-foot p { margin:0; font-weight:700; }

/* listado */
.g-search { display:flex; align-items:center; gap:10px; max-width:560px; padding:0 14px; border-radius:14px; background:var(--surface, #080e1c); box-shadow:inset 0 0 0 1px var(--line, #1a2234); margin-bottom:8px; }
.g-search input { flex:1; min-width:0; border:0; background:transparent; color:var(--text, #e9eef8); font:inherit; padding:13px 0; outline:none; }
.g-search .app-icon { color:var(--muted, #8698c2); }
.g-cat-ic { display:inline-grid; place-items:center; width:32px; height:32px; margin-right:10px; border-radius:10px; vertical-align:middle;
  background:rgba(240,180,41,.12); color:var(--gold-hi, #ffd76a); }
.g-cat-ic .app-icon { width:18px; height:18px; }
.g-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:12px; }
.g-card { display:flex; gap:14px; align-items:center; padding:16px; border-radius:16px; color:var(--text, #e9eef8); text-decoration:none;
  background:var(--surface, #080e1c); box-shadow:inset 0 0 0 1px var(--line, #1a2234); transition:box-shadow .15s, transform .15s, background .15s; }
.g-card:hover { box-shadow:inset 0 0 0 1px rgba(240,180,41,.55); background:var(--surface-2, #0e1320); transform:translateY(-1px); }
.g-card-ic { flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px; border-radius:14px;
  background:linear-gradient(145deg, rgba(255,215,106,.2), rgba(185,125,16,.1)); box-shadow:inset 0 0 0 1px rgba(240,180,41,.35); color:var(--gold-hi, #ffd76a); }
.g-card-ic .app-icon { width:22px; height:22px; }
.g-card-txt { flex:1; min-width:0; display:grid; gap:3px; }
.g-card-txt strong { font-size:1rem; }
.g-card-txt small { color:var(--muted, #8698c2); font-size:.85rem; line-height:1.4; }
.g-card > .app-icon:last-child { color:var(--muted, #8698c2); flex:0 0 auto; }
.g-none { color:var(--muted, #8698c2); }

.g-banner { display:flex; gap:14px; align-items:center; max-width:900px; margin-bottom:20px; padding:14px 16px; border-radius:16px; text-decoration:none; color:var(--text, #e9eef8);
  background:linear-gradient(135deg, rgba(240,180,41,.12), rgba(255,255,255,.02)); box-shadow:inset 0 0 0 1px rgba(240,180,41,.4); }
.g-banner:hover { box-shadow:inset 0 0 0 1px rgba(240,180,41,.75); }
.g-banner > span:nth-child(2) { flex:1; display:grid; gap:2px; }
.g-banner small { color:var(--muted, #8698c2); }
.g-banner-ic { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--gold-grad, linear-gradient(180deg,#ffe28f 0%,#f5bd33 46%,#c98a14 100%)); color:#1c1300; }

/* capturas ampliadas */
.g-zoom { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; padding:16px; background:rgba(0,0,0,.88); cursor:zoom-out; }
.g-zoom[hidden] { display:none; }
.g-zoom img { max-width:100%; max-height:100%; border-radius:10px; }
.g-zoom .g-zoom-x, .g-zoom .g-zoom-x:hover { position:absolute; top:max(12px, env(safe-area-inset-top)); right:14px; width:44px; height:44px; border-radius:50%; border:0;
  background:rgba(255,255,255,.14); color:#fff; font-size:1.2rem; cursor:pointer; box-shadow:none; padding:0; }

@media (max-width:640px) {
  .g-head { gap:14px; }
  .g-badge { width:52px; height:52px; border-radius:15px; }
  .g-grid { grid-template-columns:1fr; }
  .g-app { align-items:flex-start; }
}

/* aviso en Inicio («¿Te sale Límite de dispositivos excedido…?») */
.g-banner--alert { position:relative; margin-bottom:4px; padding-right:52px;
  background:linear-gradient(135deg, rgba(255,142,72,.16), rgba(240,180,41,.06)); box-shadow:inset 0 0 0 1px rgba(255,142,72,.5); }
.g-banner--alert:hover { box-shadow:inset 0 0 0 1px rgba(255,142,72,.85); }
.g-banner--alert .g-banner-ic { background:#ff8e48; color:#2a1300; }
.g-banner--alert[hidden] { display:none; }
.g-banner-go { flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; font-weight:700; color:var(--gold-hi, #ffd76a); white-space:nowrap; }
.g-banner-go .app-icon { width:1em; height:1em; }
.g-banner .g-banner-x, .g-banner .g-banner-x:hover { position:absolute; top:50%; margin-top:-16px; right:10px; width:32px; height:32px; padding:0; border:0; border-radius:50%;
  background:rgba(255,255,255,.08); color:var(--muted, #8698c2); font-size:.9rem; line-height:1; cursor:pointer; box-shadow:none; transform:none; }
.g-banner .g-banner-x:hover { background:rgba(255,255,255,.16); color:#fff; }
@media (max-width:640px) { .g-banner-go { display:none; } }
@media (max-width:640px) { .g-banner .g-banner-x, .g-banner .g-banner-x:hover { top:10px; margin-top:0; } }

/* ===== Próximos estrenos ===== */
.up-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(330px, 1fr)); gap:12px; }
.up-card { display:flex; gap:14px; padding:12px; border-radius:16px; background:var(--surface, #080e1c); box-shadow:inset 0 0 0 1px var(--line, #1a2234); height:100%; }
.up-card--fav { box-shadow:inset 0 0 0 1px rgba(255,84,104,.45); }
.up-poster { position:relative; flex:0 0 86px; height:129px; border-radius:10px; overflow:hidden; background:var(--surface-2, #0e1320); display:grid; place-items:center; color:var(--muted, #8698c2); }
.up-poster img { width:100%; height:100%; object-fit:cover; display:block; }
.up-body { min-width:0; flex:1; display:flex; flex-direction:column; gap:5px; }
.up-kicker { margin:0; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.up-label { font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--gold, #f0b429); }
.up-fav { display:inline-flex; align-items:center; gap:3px; font-size:.72rem; font-weight:800; color:var(--red, #ff5468); text-transform:uppercase; letter-spacing:.05em; }
.up-fav .app-icon { width:.95em; height:.95em; fill:currentColor; }
.up-title { margin:0; font-size:1rem; line-height:1.3; }
.up-title a { color:inherit; text-decoration:none; }
.up-title a:hover { color:var(--gold-hi, #ffd76a); }
.up-ep { margin:0; font-size:.88rem; color:var(--text, #e9eef8); }
.up-ep b { color:var(--gold-hi, #ffd76a); }
.up-plats { margin:0; display:flex; flex-wrap:wrap; gap:6px; }
.up-plat { display:inline-flex; align-items:center; gap:5px; padding:2px 8px 2px 3px; border-radius:999px; font-size:.75rem; font-weight:700; background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px var(--line, #1a2234); }
.up-plat img { width:18px; height:18px; border-radius:5px; }
.up-over { margin:0; font-size:.83rem; color:var(--muted, #8698c2); line-height:1.45; }
.up-actions { margin-top:auto; padding-top:4px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.up-form { margin:0; }
.app-page .up-req, .up-req { margin-top:0; cursor:pointer; border:0; }
.up-ok { display:inline-flex; align-items:center; gap:4px; font-size:.8rem; font-weight:700; color:var(--ok-hi); text-decoration:none; }
.up-ok .app-icon { width:1em; height:1em; }
.up-reqn { font-size:.78rem; color:var(--muted, #8698c2); }
.up-dayhead h2 { text-transform:none; }
.up-when { margin:0 0 6px; font-size:.78rem; font-weight:800; color:var(--gold, #f0b429); text-transform:uppercase; letter-spacing:.05em; }
.up-cell { display:flex; flex-direction:column; }
.up-favs .app-section-head h2 .app-icon, .up-home .app-section-head h2 .app-icon { width:.9em; height:.9em; vertical-align:-2px; margin-right:6px; color:var(--gold-hi, #ffd76a); }
.up-note { margin-top:26px; font-size:.82rem; color:var(--muted, #8698c2); }
@media (max-width:640px) { .up-grid { grid-template-columns:1fr; } .up-poster { flex-basis:74px; height:111px; } }
.up-poster .app-poster-ph { position:absolute; inset:0; display:grid; place-items:center; }
.up-poster .app-poster-ph[hidden] { display:none; }
.up-poster .app-poster-ph .app-icon { width:26px; height:26px; }
.up-when-seg { margin-left:auto; }
.up-when-seg .app-icon { width:1em; height:1em; vertical-align:-2px; }
@media (max-width:820px) { .up-when-seg { margin-left:0; } }
.up-filter-seg { margin-top:0; }
/* (ajustes sobre lo anterior) una carátula que no carga se esconde de verdad (el display:block de arriba ganaba al atributo hidden y dejaba la imagen rota debajo del icono de reserva)
   y el botón «Pedir» llega al tamaño táctil mínimo (medía ~24 px de alto) */
.up-poster img[hidden] { display:none; }
.app-page .up-req, .up-req { min-height:34px; padding-inline:.95rem; }
