/* ================= Flyer para Instagram ================= */
.modal.fy-m{width:min(1080px,100%);padding:16px 18px}
.fy-load{display:grid;place-items:center;gap:10px;padding:60px 20px}
.fy{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,1fr);gap:18px;min-height:0}
.fy-stage{display:grid;place-items:center;background:#0a0c0b radial-gradient(#ffffff10 1px,transparent 1px) 0 0/18px 18px;border-radius:16px;padding:14px;min-height:0}
.fy-cvw{display:grid;place-items:center;width:100%}
.fy-cvw canvas,.fy-cvw img{display:block;max-width:100%;max-height:68vh;border-radius:10px;box-shadow:0 18px 50px #000b;touch-action:none;cursor:grab;background:#111}
.fy-side{display:flex;flex-direction:column;min-height:0;gap:10px}
.fy-ctl{overflow-y:auto;max-height:62vh;display:flex;flex-direction:column;gap:14px;padding-right:4px;overscroll-behavior:contain}
.fy-sec{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.fy-sec>b{font-size:13.5px}
.fy-sec small{color:var(--muted);font-size:12px;font-weight:600}
.fy-tip{margin-top:-4px}
.fy-in{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;font:inherit;font-weight:600;resize:vertical;color:var(--text)}
.fy-in:focus{outline:none;border-color:var(--accent)}
.fy-sl{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}
.fy-sl input{width:100%;accent-color:var(--accent);height:26px}
.fy-fmt{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.fy-fmt button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.fy-fmt button.on{border-color:var(--accent);background:#d7fa780d}
.fy-fmt i{display:block;border:2px solid currentColor;border-radius:3px;color:var(--muted);margin-bottom:3px}
.fy-fmt button.on i{color:var(--accent)}
.fy-fmt .r-4x5{width:20px;height:25px}.fy-fmt .r-1x1{width:23px;height:23px}.fy-fmt .r-9x16{width:16px;height:28px}
.fy-fmt strong{font-size:12.5px}.fy-fmt small{font-size:10.5px}
.fy-chips{display:flex;flex-wrap:wrap;gap:6px}
.fy-chips button{padding:7px 11px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:12.5px;font-weight:700;color:var(--muted)}
.fy-chips button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.fy-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.fy-col{display:flex;flex-direction:column;gap:6px}
.fy-pos{display:grid;grid-template-columns:repeat(3,34px);gap:4px;margin-top:4px}
.fy-pos button{height:34px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:15px}
.fy-pos button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.fy-ck{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted)}
.fy-ck input{accent-color:var(--accent);width:16px;height:16px}
.fy-fonts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.fy-fonts button{padding:9px 6px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fy-fonts button.on{border-color:var(--accent);color:var(--accent);background:#d7fa780d}
.fy-sw{display:flex;flex-wrap:wrap;gap:8px}
.fy-sw button,.fy-pick{width:30px;height:30px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #ffffff33;position:relative}
.fy-sw button.on{box-shadow:0 0 0 2px #0b0d0c,0 0 0 4px var(--accent)}
.fy-pick{background:conic-gradient(#ff4d4d,#ffd23f,#3ddc97,#3dd6ff,#7c5cff,#ff7ab6,#ff4d4d);overflow:hidden;cursor:pointer}
.fy-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fy-go{display:flex;flex-direction:column;gap:4px;align-items:center}
.fy-go small{color:var(--dim);font-size:11.5px}
.fy-ok{display:flex;flex-direction:column;gap:10px;padding:8px 2px}
.fy-ok h4{font-size:20px;margin:0}
.fy-ok p{color:var(--muted);margin:0 0 6px}
.fy.done .fy-cvw img{cursor:default}
.fy-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);position:sticky;top:0;z-index:3}
.fy-tabs button{padding:10px 8px;border-radius:10px;font-weight:800;font-size:13.5px;color:var(--muted)}
.fy-tabs button.on{background:var(--accent);color:var(--accent-ink)}
.fy-sec>b small{color:var(--dim);font-weight:600}
/* selector de fuentes */
.fy-fp{display:flex;flex-direction:column;gap:6px}
.fy-cur{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:11px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line2);font-size:20px;text-align:left;color:var(--text)}
.fy-cur span{font-family:Manrope,sans-serif;font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap}
.fy-wt button{min-width:44px}
.fy-fbox{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;background:#0b0d0c;border:1px solid var(--line2)}
.fy-fl{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.fy-fl button{padding:10px 8px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;color:var(--text)}
.fy-fl button.on{border-color:var(--accent);color:var(--accent)}
.fy-fl-load{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;padding:10px}
/* IA */
.fy-refs{display:flex;flex-wrap:wrap;gap:8px}
.fy-ref,.fy-add{position:relative;width:76px;height:76px;border-radius:12px;overflow:hidden;background:var(--panel2);border:1px solid var(--line2)}
.fy-ref img{width:100%;height:100%;object-fit:cover;display:block}
.fy-ref .spin{position:absolute;inset:0;margin:auto}
.fy-ref .x{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#000b;color:#fff;font-size:14px;line-height:1;display:grid;place-items:center}
.fy-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-style:dashed;color:var(--accent);font-size:22px;font-weight:800}
.fy-add small{font-size:10.5px;color:var(--muted);font-weight:700}
.fy-ck.big{align-items:flex-start;font-size:13.5px;color:var(--text)}
.fy-ck.big small{display:block;color:var(--muted);font-weight:600}
.fy-aiprev{position:relative;width:min(100%,420px);max-height:68vh;border-radius:12px;overflow:hidden;background:linear-gradient(160deg,#1b2a1f,#0b0d0c);box-shadow:0 18px 50px #000b}
.fy-aiprev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;filter:saturate(.8)}
.fy-aiov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:#e9efe6;font-weight:700;background:radial-gradient(circle,#0008,#0002)}
.fy-aiov b{font-size:34px}
.fy-aiov em{font-style:normal;font-size:18px;color:var(--accent)}
.fy-aiprev.wait .fy-aiov{background:#000a}
.fy-hbtn{margin-left:10px}
@media (max-width:860px){
  .fy-aiprev{max-height:40dvh;width:auto;height:40dvh}
  .fy-fl{max-height:240px}
  .fy-hbtn{padding:6px 9px;font-size:13px;flex:0 0 auto}
  .fy-hbtn span{display:none}
}
@media (max-width:860px){
  .modal.fy-m{width:100%;padding:12px}
  .fy{grid-template-columns:1fr;gap:10px}
  .fy-stage{padding:8px}
  .fy-cvw canvas,.fy-cvw img{max-height:42dvh}
  .fy-ctl{max-height:none;overflow:visible}
  .fy-go{position:sticky;bottom:0;background:linear-gradient(transparent,var(--panel) 30%);padding-top:12px;padding-bottom:4px}
  .fy-fonts{grid-template-columns:1fr 1fr}
}

/* 0.72.2 · en paneles con scroll, lo de adentro no se aplasta */
.fy-ctl>*{flex-shrink:0}

/* 0.76 · plantillas del perfil en el flyer */
.fy-tpls{margin:8px 0 6px}
.fy-tpls>small{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}
.fy-tpl-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.fy-tpl{position:relative;flex:0 0 64px;height:80px;border-radius:10px;overflow:hidden;padding:0;border:2px solid transparent;background:var(--panel2);cursor:pointer}
.fy-tpl img{width:100%;height:100%;object-fit:cover;display:block}
.fy-tpl i{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--accent-ink,#111);font-style:normal;font-weight:800;font-size:11px;display:none;place-items:center}
.fy-tpl.on{border-color:var(--accent)}
.fy-tpl.on i{display:grid}
