/* slides.css — piezas reutilizables, base de slides y refinamientos (Standalone v1), control de imagen */
/* ════════════════════════════════════════════════
   PIEZAS — Atoms reutilizables
   ════════════════════════════════════════════════ */

/* Wordmark logo */
.lc-wordmark { display: inline-block; line-height: 0; }
.lc-wordmark svg { display: block; height: 100%; width: auto; }

/* Corners decorativas */
.lc-corners { position: absolute; pointer-events: none; }
.lc-corner {
  position: absolute;
  width: 28px; height: 28px;
}
.lc-corner.tl { top: 28px; left: 28px; border-top: 1.5px solid var(--coral); border-left: 1.5px solid var(--coral); }
.lc-corner.tr { top: 28px; right: 28px; border-top: 1.5px solid var(--coral); border-right: 1.5px solid var(--coral); }
.lc-corner.bl { bottom: 28px; left: 28px; border-bottom: 1.5px solid var(--coral); border-left: 1.5px solid var(--coral); }
.lc-corner.br { bottom: 28px; right: 28px; border-bottom: 1.5px solid var(--coral); border-right: 1.5px solid var(--coral); }

/* Mono helper */
.mono { font-family: 'DM Mono', monospace; text-transform: uppercase; }
.display { font-family: 'ITC Avant Garde Gothic', 'Barlow Condensed', sans-serif; }

/* Type badge */
.type-badge {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'DM Mono', monospace;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid;
}
.type-badge .dot {
  width: 7px; height: 7px;
  border-radius: 50%;
}

/* Chip */
.chip {
  display: inline-flex; align-items: center;
  font-family: 'DM Mono', monospace;
  font-size: 10px; font-weight: 500;
  padding: 4px 10px;
  border-radius: 4px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* SlideHeader */
.slide-header {
  display: flex; justify-content: space-between; align-items: center;
}

/* DotsLabel */
.dots-label {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.dots-label::before, .dots-label::after {
  content: ''; width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--coral);
}

/* Glow background helper */
.glow-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 80% 0%, rgba(255,115,108,0.18) 0%, transparent 45%),
    radial-gradient(circle at 0% 100%, rgba(117,230,249,0.08) 0%, transparent 50%),
    var(--bg);
}

/* ──────────────────────────────────────────────
   SLIDES — base styles
   ────────────────────────────────────────────── */
.slide {
  position: relative;
  overflow: hidden;
  background: var(--bg);
  color: var(--cream);
  font-family: 'PP Fraktion Sans', sans-serif;
}
.slide-1080 { width: 1080px; height: 1080px; }
.slide-1350 { width: 1080px; height: 1350px; }
.slide-1920 { width: 1080px; height: 1920px; }

/* CTA bar reusable */
.cta-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 28px;
}
.cta-bar-text .cta-label {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em; text-transform: uppercase;
  opacity: 0.65;
}
.cta-bar-text .cta-url {
  font-family: 'ITC Avant Garde Gothic', 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 32px;
  letter-spacing: -0.015em;
  margin-top: 6px;
  text-transform: uppercase;
}
.cta-bar-arrow { font-size: 48px; line-height: 1; }


*{box-sizing:border-box;margin:0;padding:0;}
/* Sin font-family a propósito: la fuente de la interfaz la decide `body` en
   base.css (PP Fraktion Sans). Antes este reset la pisaba con Barlow y solo
   legacy.css, cargado de último, la devolvía: legacy.css entero existía para
   deshacer esta línea. */
html, body{min-height:100%;background:var(--bg);color:var(--cream);font-size:14px;}
.hub-bl .hdr{padding:28px 24px 20px;border-bottom:1px solid var(--bord);}
.hub-bl .hdr-ey{font-family:'DM Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--coral);margin-bottom:6px;}
.hub-bl .hdr-ti{font-family:'Barlow Condensed',sans-serif;font-size:32px;font-weight:900;text-transform:uppercase;color:var(--cream);}
.hub-bl .hdr-dt{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-top:4px;}
.hub-bl .stats{display:flex;gap:10px;flex-wrap:wrap;padding:16px 24px;border-bottom:1px solid var(--bord);}
.hub-bl .stat{background:var(--surf);border:1px solid var(--bord);border-radius:8px;padding:12px 16px;min-width:90px;}
.hub-bl .stat-n{font-family:'Barlow Condensed',sans-serif;font-size:28px;font-weight:900;line-height:1;}
.hub-bl .stat-l{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t4);margin-top:3px;}
.hub-bl .pw{flex:1;min-width:200px;background:var(--surf);border:1px solid var(--bord);border-radius:8px;padding:12px 16px;}
.hub-bl .pl{display:flex;justify-content:space-between;margin-bottom:8px;}
.hub-bl .pl span{font-family:'DM Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);}
.hub-bl .pb{height:4px;background:var(--bord2);border-radius:2px;overflow:hidden;}
.hub-bl .pf{height:100%;border-radius:2px;background:var(--green);transition:width .4s ease;}
.hub-bl .vtabs{display:flex;gap:6px;padding:16px 24px 0;border-bottom:1px solid var(--bord);}
.hub-bl .vtab{font-family:'DM Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;border-radius:7px 7px 0 0;cursor:pointer;border:1px solid transparent;border-bottom:none;color:var(--t4);background:transparent;transition:.15s;margin-bottom:-1px;}
.hub-bl .vtab:hover{color:var(--t2);}
.hub-bl .vtab.active{color:var(--cream);background:var(--surf);border-color:var(--bord);border-bottom-color:var(--surf);}
.hub-bl .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;}
.hub-bl .sv{display:none;padding:20px 24px 40px;}
.hub-bl .sv.active{display:block;}
.hub-bl .bv{display:none;padding:8px 24px 40px;}
.hub-bl .bv.active{display:block;}
.hub-bl .urg{margin:0 0 20px;border-left:3px solid var(--coral);border-radius:0 8px 8px 0;padding:12px 16px;display:flex;align-items:center;gap:10px;background:rgba(255,115,108,.06);border:1px solid rgba(255,115,108,.25);border-left-width:3px;}
.hub-bl .urg.y{background:rgba(255,195,53,.06);border-color:rgba(255,195,53,.3);border-left-color:var(--yellow);}
.hub-bl .urg-dot{width:7px;height:7px;border-radius:50%;background:var(--coral);flex-shrink:0;animation:pulse 2s ease-in-out infinite;}
.hub-bl .urg.y .urg-dot{background:var(--yellow);}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(255,115,108,.4);}
.hub-bl 50%{opacity:.7;box-shadow:0 0 0 5px rgba(255,115,108,0);}
}
.hub-bl .urg-tx{font-family:'DM Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--coral);}
.hub-bl .urg.y .urg-tx{color:var(--yellow);}
.hub-bl .ms{margin-bottom:22px;}
.hub-bl .msh{display:flex;align-items:center;gap:8px;margin-bottom:10px;cursor:pointer;user-select:none;}
.hub-bl .msh:hover .mst{color:var(--t2);}
.hub-bl .msd{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.hub-bl .msl{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--t4);}
.hub-bl .mst{font-size:14px;font-weight:700;color:var(--cream);flex:1;transition:color .12s;}
.hub-bl .msc{font-family:'DM Mono',monospace;font-size:9px;padding:1px 8px;border-radius:8px;background:var(--surf2);border:1px solid var(--bord2);color:var(--t3);}
.hub-bl .msa{font-size:12px;color:var(--t4);margin-left:4px;transition:transform .2s;flex-shrink:0;}
.hub-bl .msa.open{transform:rotate(90deg);}
.hub-bl .mstasks{background:var(--surf);border:1px solid var(--bord);border-radius:10px;overflow:hidden;display:none;}
.hub-bl .mstasks.open{display:block;}
.hub-bl .mtask{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;padding:11px 14px;border-bottom:1px solid var(--bord);cursor:pointer;transition:background .1s;}
.hub-bl .mtask:last-child{border-bottom:none;}
.hub-bl .mtask:hover{background:var(--surf2);}
.hub-bl .chk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--bord2);margin-top:2px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.15s;}
.hub-bl .chk.done{background:rgba(0,170,116,.2);border-color:rgba(0,170,116,.5);}
.hub-bl .chk.done::after{content:'';display:block;width:7px;height:4px;border-left:1.5px solid var(--green);border-bottom:1.5px solid var(--green);transform:rotate(-45deg) translate(1px,-1px);}
.hub-bl .tn{font-size:13px;color:var(--cream);line-height:1.4;margin-bottom:2px;}
.hub-bl .tn.done{text-decoration:line-through;color:var(--t4);}
.hub-bl .ts{font-size:11px;color:var(--t3);line-height:1.5;}
.hub-bl .ttags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px;}
.hub-bl .pc{background:var(--surf);border:1px solid var(--bord);border-radius:10px;margin-bottom:12px;overflow:hidden;}
.hub-bl .ph{padding:14px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bord);cursor:pointer;user-select:none;transition:background .12s;}
.hub-bl .ph:hover{background:var(--surf2);}
.hub-bl .ph.open{border-bottom-color:var(--bord);}
.hub-bl .ptitle{font-size:14px;font-weight:700;color:var(--cream);flex:1;}
.hub-bl .pcbtn{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:5px;background:var(--surf2);border:1px solid var(--bord2);color:var(--t3);cursor:pointer;transition:.15s;}
.hub-bl .pcbtn:hover{color:var(--cream);border-color:var(--t4);}
.hub-bl .pcbtn.copied{color:var(--green);border-color:rgba(0,170,116,.4);}
.hub-bl .pca{font-size:12px;color:var(--t4);transition:transform .2s;flex-shrink:0;}
.hub-bl .pca.open{transform:rotate(90deg);}
.hub-bl .pb2{padding:14px 16px;display:none;}
.hub-bl .pb2.open{display:block;}
.hub-bl .ptxt{font-family:'DM Mono',monospace;font-size:11px;color:var(--t2);line-height:1.7;white-space:pre-wrap;background:var(--bg);border:1px solid var(--bord);border-radius:7px;padding:14px;overflow-x:auto;}
.hub-bl .ptm{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:5px;flex-shrink:0;}
.hub-bl .pctx{font-size:12px;color:var(--t4);margin-bottom:10px;line-height:1.5;}
.hub-bl .epic{margin-bottom:6px;border:1px solid var(--bord);border-radius:10px;overflow:hidden;}
.hub-bl .eph{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;background:var(--surf);transition:background .12s;user-select:none;}
.hub-bl .eph:hover{background:var(--surf2);}
.hub-bl .epd{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.hub-bl .epl{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t4);}
.hub-bl .ept{font-size:14px;font-weight:600;color:var(--cream);flex:1;}
.hub-bl .epc{font-family:'DM Mono',monospace;font-size:9px;padding:2px 8px;border-radius:10px;background:var(--surf2);border:1px solid var(--bord2);color:var(--t3);}
.hub-bl .epc.hd{background:rgba(0,170,116,.08);border-color:rgba(0,170,116,.2);color:var(--green);}
.hub-bl .epa{font-size:12px;color:var(--t4);transition:transform .2s;}
.hub-bl .epa.open{transform:rotate(90deg);}
.hub-bl .tlist{display:none;}
.hub-bl .tlist.open{display:block;}
.hub-bl .trow{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;padding:10px 14px;border-top:1px solid var(--bord);cursor:pointer;transition:background .1s;}
.hub-bl .trow:hover{background:var(--surf2);}
.hub-bl .tag{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:1px 7px;border-radius:3px;border:1px solid;}
.hub-bl .tag-dev{background:rgba(117,230,249,.08);border-color:rgba(117,230,249,.25);color:var(--cyan);}
.hub-bl .tag-db{background:rgba(0,170,116,.08);border-color:rgba(0,170,116,.25);color:var(--green);}
.hub-bl .tag-copy{background:rgba(255,195,53,.08);border-color:rgba(255,195,53,.25);color:var(--yellow);}
.hub-bl .tag-ux{background:rgba(148,163,184,.08);border-color:rgba(148,163,184,.25);color:var(--gray);}
.hub-bl .tag-mvp{background:rgba(167,139,250,.1);border-color:rgba(167,139,250,.3);color:var(--purple);}
.hub-bl .tag-api{background:rgba(255,124,152,.08);border-color:rgba(255,124,152,.25);color:var(--pink);}
.hub-bl .tag-content{background:rgba(0,170,116,.08);border-color:rgba(0,170,116,.25);color:var(--green);}
.hub-bl .tag-inv{background:rgba(255,124,152,.08);border-color:rgba(255,124,152,.25);color:var(--pink);}
.hub-bl /* ── Cronograma ── */
.cro-week{margin-bottom:20px;}
.hub-bl .cro-week-hd{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surf);border:1px solid var(--bord);border-radius:10px 10px 0 0;cursor:pointer;user-select:none;}
.hub-bl .cro-week-hd:hover{background:var(--surf2);}
.hub-bl .cro-wlabel{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--t4);}
.hub-bl .cro-wtitle{font-size:14px;font-weight:700;color:var(--cream);flex:1;}
.hub-bl .cro-wdates{font-family:'DM Mono',monospace;font-size:9px;color:var(--t4);}
.hub-bl .cro-warr{font-size:12px;color:var(--t4);transition:transform .2s;}
.hub-bl .cro-warr.open{transform:rotate(90deg);}
.hub-bl .cro-days{display:none;border:1px solid var(--bord);border-top:none;border-radius:0 0 10px 10px;overflow:hidden;}
.hub-bl .cro-days.open{display:block;}
.hub-bl .cro-day{padding:14px 16px;border-bottom:1px solid var(--bord);}
.hub-bl .cro-day:last-child{border-bottom:none;}
.hub-bl .cro-day-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.hub-bl .cro-date{font-family:'DM Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:5px;background:var(--surf2);border:1px solid var(--bord2);color:var(--t3);flex-shrink:0;}
.hub-bl .cro-date.today{background:rgba(255,115,108,.15);border-color:rgba(255,115,108,.4);color:var(--coral);}
.hub-bl .cro-day-title{font-size:13px;font-weight:600;color:var(--cream);}
.hub-bl .cro-items{display:flex;flex-direction:column;gap:6px;}
.hub-bl .cro-item{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;background:var(--bg);border:1px solid var(--bord);border-radius:7px;cursor:pointer;transition:background .1s;}
.hub-bl .cro-item:hover{background:var(--surf2);}
.hub-bl .cro-item-chk{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--bord2);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:.15s;}
.hub-bl .cro-item-chk.done{background:rgba(0,170,116,.2);border-color:rgba(0,170,116,.5);}
.hub-bl .cro-item-chk.done::after{content:'';display:block;width:6px;height:4px;border-left:1.5px solid var(--green);border-bottom:1.5px solid var(--green);transform:rotate(-45deg) translate(1px,-1px);}
.hub-bl .cro-item-txt{font-size:12px;color:var(--cream);line-height:1.4;flex:1;}
.hub-bl .cro-item-txt.done{text-decoration:line-through;color:var(--t4);}
.hub-bl .cro-item-tag{font-family:'DM Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:3px;border:1px solid;flex-shrink:0;}
.hub-bl .cro-obj{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.hub-bl .cro-obj-chip{font-family:'DM Mono',monospace;font-size:9px;padding:4px 10px;border-radius:5px;border:1px solid var(--bord2);color:var(--t3);background:var(--surf2);display:flex;align-items:center;gap:5px;}
.hub-bl .cro-obj-n{font-weight:700;color:var(--cream);}

/* ═══════════════════════════════════════════════════════════
   REFINAMIENTOS · Generador Standalone v1
   Ajustes de respiración y jerarquía sobre el sistema de marca.
   ═══════════════════════════════════════════════════════════ */

/* App shell standalone */
html, body { height: 100%; }
#app { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }

/* Topbar propia del standalone */
.sa-topbar {
  display: flex; align-items: center; gap: 14px;
  padding: 0 20px; height: 52px; flex-shrink: 0;
  background: var(--bg2); border-bottom: 1px solid var(--bord);
}
.sa-topbar .sa-logo svg { height: 17px; display: block; }
.sa-topbar .sa-title {
  font-family: 'DM Mono', monospace; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--t3);
}
.sa-sep { width: 1px; height: 18px; background: var(--bord2); }
.sa-status { margin-left: auto; display: flex; align-items: center; gap: 7px;
  font-family: 'DM Mono', monospace; font-size: 10px; letter-spacing: 0.08em; color: var(--t3); }

/* Panel izquierdo: más aire entre secciones */
.panel-left { padding: 18px 16px; gap: 4px; }
.panel-section { margin-bottom: 18px; }
.panel-section:last-child { margin-bottom: 0; }
.panel-label {
  font-size: 9px; letter-spacing: 0.22em; margin-bottom: 9px;
  text-transform: uppercase; color: var(--t4);
}

/* Categorías: separación visual y estado activo más claro */
.cat-btn { padding: 9px 11px; border-radius: 7px; }
.cat-sub-btn { padding: 7px 10px; border-radius: 6px; }

/* Panel derecho: secciones de campos con divisor sutil */
.fields-area { padding: 18px 16px; }
.fields-section { margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--bord); }
.fields-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* ─── Control de imagen ─── */
.img-prev {
  width: 100%; aspect-ratio: 4 / 5; border-radius: 8px; overflow: hidden;
  border: 1px solid var(--bord); background: var(--surf);
  display: flex; align-items: center; justify-content: center; margin-bottom: 9px;
}
.img-prev img { width: 100%; height: 100%; object-fit: cover; display: block; }
.img-prev.empty {
  font-family: 'DM Mono', monospace; font-size: 10px;
  letter-spacing: 0.12em; color: var(--t4); text-transform: uppercase;
}
.img-chip {
  display: inline-block; font-family: 'DM Mono', monospace; font-size: 9px;
  letter-spacing: 0.08em; padding: 4px 9px; border-radius: 5px; margin-bottom: 9px;
  background: var(--surf2); color: var(--t3); border: 1px solid var(--bord);
}
.img-chip.ok { color: var(--green); border-color: rgba(0,170,116,0.35); background: rgba(0,170,116,0.08); }
.img-chip.warn { color: var(--coral); border-color: rgba(255,115,108,0.35); background: rgba(255,115,108,0.08); }
.img-url {
  width: 100%; box-sizing: border-box; margin-bottom: 9px;
  background: var(--bg); border: 1px solid var(--bord2); border-radius: 6px;
  color: var(--cream); font-family: 'DM Mono', monospace; font-size: 10px;
  padding: 8px 10px; outline: none;
}
.img-url:focus { border-color: var(--coral); }
.btn-upload {
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; width: 100%; box-sizing: border-box;
}

/* Scrollbars discretos en paneles */
.panel-left::-webkit-scrollbar,
.fields-area::-webkit-scrollbar { width: 4px; }
.panel-left::-webkit-scrollbar-thumb,
.fields-area::-webkit-scrollbar-thumb { background: var(--bord2); border-radius: 2px; }

