/* ===== 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,209,73,.22), rgba(160,120,18,.12)); box-shadow:inset 0 0 0 1px rgba(230,180,34,.45), 0 10px 30px rgba(230,180,34,.12); color:var(--lime-hi, #ffd149); }
.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(--lime, #e6b422); }
.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, #f5efe4); }
.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, #2d261e); }
.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(--lime-hi, #ffd149); 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(--lime, #e6b422); }

/* 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, #15110c); box-shadow:inset 0 0 0 1px var(--line, #2d261e); }
.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(--lime, #e6b422); color:#1a1102; }
.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, #2d261e); }
.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:#3a3328; color:#fff; margin-top:2px; }
.g-note--warn { background:rgba(255,138,61,.08); box-shadow:inset 0 0 0 1px rgba(255,138,61,.35); }
.g-note--warn .g-note-ic { background:#ff8a3d; color:#1a0b00; }
.g-note--ok { background:rgba(230,180,34,.08); box-shadow:inset 0 0 0 1px rgba(230,180,34,.35); }
.g-note--ok .g-note-ic { background:var(--lime, #e6b422); color:#1a1102; }

/* 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(--lime-hi, #ffd149);
  background:rgba(230,180,34,.12); box-shadow:inset 0 0 0 1px rgba(230,180,34,.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(230,180,34,.22); box-shadow:inset 0 0 0 1px rgba(230,180,34,.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(230,180,34,.09), rgba(255,255,255,.02));
  box-shadow:inset 0 0 0 1px rgba(230,180,34,.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(--lime, #e6b422); color:#1a1102; 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, #b2a68f); font-size:.9rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.g-body .g-app-link { color:var(--muted, #b2a68f); 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, #2d261e), 0 12px 30px rgba(0,0,0,.35); cursor:zoom-in; }
.g-fig figcaption { margin-top:6px; font-size:.85rem; color:var(--muted, #b2a68f); text-align:center; }
.g-video { position:relative; aspect-ratio:16/9; border-radius:14px; overflow:hidden; box-shadow:0 0 0 1px var(--line, #2d261e); 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, #2d261e); background:var(--surface, #15110c); }
.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(--lime, #e6b422); 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, #15110c); box-shadow:inset 0 0 0 1px var(--line, #2d261e); }
.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, #15110c); box-shadow:inset 0 0 0 1px var(--line, #2d261e); margin-bottom:8px; }
.g-search input { flex:1; min-width:0; border:0; background:transparent; color:var(--text, #f5efe4); font:inherit; padding:13px 0; outline:none; }
.g-search .app-icon { color:var(--muted, #b2a68f); }
.g-cat-ic { display:inline-grid; place-items:center; width:32px; height:32px; margin-right:10px; border-radius:10px; vertical-align:middle;
  background:rgba(230,180,34,.12); color:var(--lime-hi, #ffd149); }
.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, #f5efe4); text-decoration:none;
  background:var(--surface, #15110c); box-shadow:inset 0 0 0 1px var(--line, #2d261e); transition:box-shadow .15s, transform .15s, background .15s; }
.g-card:hover { box-shadow:inset 0 0 0 1px rgba(230,180,34,.55); background:var(--surface-2, #1b1611); 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,209,73,.2), rgba(160,120,18,.1)); box-shadow:inset 0 0 0 1px rgba(230,180,34,.35); color:var(--lime-hi, #ffd149); }
.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, #b2a68f); font-size:.85rem; line-height:1.4; }
.g-card > .app-icon:last-child { color:var(--muted, #b2a68f); flex:0 0 auto; }
.g-none { color:var(--muted, #b2a68f); }

.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, #f5efe4);
  background:linear-gradient(135deg, rgba(230,180,34,.12), rgba(255,255,255,.02)); box-shadow:inset 0 0 0 1px rgba(230,180,34,.4); }
.g-banner:hover { box-shadow:inset 0 0 0 1px rgba(230,180,34,.75); }
.g-banner > span:nth-child(2) { flex:1; display:grid; gap:2px; }
.g-banner small { color:var(--muted, #b2a68f); }
.g-banner-ic { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--lime, #e6b422); color:#1a1102; }

/* 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,138,61,.16), rgba(230,180,34,.06)); box-shadow:inset 0 0 0 1px rgba(255,138,61,.5); }
.g-banner--alert:hover { box-shadow:inset 0 0 0 1px rgba(255,138,61,.85); }
.g-banner--alert .g-banner-ic { background:#ff8a3d; color:#1a0b00; }
.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(--lime-hi, #ffd149); 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, #b2a68f); 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; } }
