/* Generator form extras (views/_generator.php + parts/genform.js) */
.gf-line{display:flex;gap:6px;align-items:center;margin-top:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-inline-end:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
[dir=rtl] .gf-line{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(270deg,#000 calc(100% - 36px),transparent)}
.gf-line::-webkit-scrollbar{display:none}
.gf-line>*{flex:none;white-space:nowrap}
.gf-line .chip{color:var(--mut)}
.gf-line .chip.on{color:var(--tx)}
.gen-tools .ibtn.gf-ico{padding-inline:10px}
.ibtn.gf-on,.gf-ic.gf-on{color:#f5a524}
.gf-panel{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--soft)}
.gf-panel>p{flex-basis:100%;margin:0}
.gf-tabs{flex-basis:100%}
.gf-list{flex-basis:100%;display:grid;gap:4px;max-height:260px;overflow-y:auto;overscroll-behavior:contain}
.gf-item{display:flex;align-items:center;gap:4px;min-width:0}
.gf-use{flex:1;min-width:0;min-height:40px;padding:8px 10px;border-radius:10px;text-align:start;font-size:13px;line-height:1.35;color:var(--tx2)}
.gf-use span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gf-use:hover{background:var(--soft2);color:var(--tx)}
.gf-ic{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--mut)}
.gf-ic:hover{color:var(--tx);background:var(--soft2)}
.gf-ic svg{width:17px;height:17px}
.gf-script{margin-top:8px;padding:12px;border:1px solid color-mix(in srgb,var(--a1) 45%,transparent);border-radius:var(--r);background:color-mix(in srgb,var(--a1) 5%,transparent)}
.gf-script-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.gf-script-h b{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.gf-script-h b svg{width:16px;height:16px;color:var(--a1)}
.gen .gf-script textarea{min-height:110px;max-height:300px;font-size:15px;line-height:1.5;padding:10px 12px;background:var(--bg2);border:1px solid var(--line);resize:vertical}
.gf-script p{margin:8px 0 0}
.gf-script-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.gf-block{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;padding:12px;border:1px solid color-mix(in srgb,#ef4444 55%,transparent);border-radius:var(--r);background:color-mix(in srgb,#ef4444 8%,transparent)}
.gf-block>svg{flex:none;width:20px;height:20px;margin-top:2px;color:#ef4444}
.gf-block>div{flex:1;min-width:0;font-size:14px;line-height:1.45}
.gf-block p{margin:4px 0 0}
.gf-block .gf-tip{color:var(--tx2)}
.gf-block .gf-ic{margin:-6px;margin-inline-start:0}
.gf-price{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:99px;font-size:13px;font-weight:700;color:var(--tx);background:color-mix(in srgb,#22c55e 16%,transparent);border:1px solid color-mix(in srgb,#22c55e 45%,transparent)}
.gf-price.paid{background:color-mix(in srgb,var(--a1) 12%,transparent);border-color:color-mix(in srgb,var(--a1) 45%,transparent)}
.gf-price:empty{display:none}
.gen-go .btn[data-gf-preview]{min-width:0}
.gen-go .btn[data-gf-preview] svg{width:17px;height:17px}
.btn.busy{opacity:.6;pointer-events:none}
/* photo tiles: drag to reorder, tap to crop */
.imgs .imgt{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.imgt.gf-drag{z-index:5;cursor:grabbing;box-shadow:var(--sh);opacity:.92}
.imgt.gf-drop{outline:2px solid var(--a1);outline-offset:2px}
.imgt img{pointer-events:none}
.imgt .gf-cropic{position:absolute;inset-inline-end:3px;bottom:3px;width:20px;height:20px;border-radius:6px;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center;pointer-events:none}
.imgt .gf-cropic svg{width:12px;height:12px}
.gf-imghint{flex-basis:100%}
.gf-cropm .modal-card{max-width:520px;padding:20px}
.gf-cropm h3{font-size:20px;margin-bottom:10px}
.gf-cropstage{display:grid;place-items:center;min-height:120px;background:var(--bg2);border-radius:12px;overflow:hidden}
.gf-cropstage canvas{display:block;touch-action:none;cursor:crosshair;max-width:100%}
.gf-croptools{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:12px}
.gf-croptools .seg button,.gf-croptools .ibtn{min-height:38px}
.gf-cropb{display:flex;gap:8px;margin-top:14px}
.gf-cropb .btn{flex:1}
/* style chips with a preview picture */
.chip.gf-has{padding-inline-start:4px}
.gf-sth{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none;background:var(--soft2)}
.gf-pop{position:fixed;z-index:90;width:150px;padding:6px;border-radius:14px;background:var(--card);border:1px solid var(--line2);box-shadow:var(--sh);pointer-events:none;text-align:center}
.gf-pop img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:9px;background:var(--soft2)}
.gf-pop b{display:block;font-size:12px;margin-top:5px}
.gen [data-cam] svg{width:16px;height:16px}
@media (max-width:760px){
  .gen-tools .ibtn,.gf-line .ibtn,.gf-line .chip{min-height:40px}
  .gf-line{margin-inline-end:-14px;padding-inline-end:36px}
  .gen-go .btn[data-gf-preview]{width:100%}
  .gf-price{order:-1}
  .gf-cropm .modal-card{padding:16px}
}
