.gf-root{--gf-gold:var(--gold,#e8c27b);--gf-panel:var(--panel,#17191e);--gf-muted:var(--muted,#a9afbc);margin:18px 0;padding:16px;border:1px solid rgba(232,194,123,.28);border-radius:14px;background:linear-gradient(180deg,#1b1d23,#121317);color:#f3efe6}
.gf-title{margin:0 0 4px;font-size:1.15rem;color:var(--gf-gold)}
.gf-lead{margin:0 0 12px;color:var(--gf-muted);font-size:.9rem}
.gf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gf-card{display:flex;flex-direction:column;gap:4px;min-width:0}
.gf-drop{position:relative;display:block;aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:1.5px dashed rgba(232,194,123,.55);background:#0e0f12;cursor:pointer}
.gf-drop:hover{border-color:var(--gf-gold)}
.gf-drop:focus-within{outline:3px solid var(--gf-gold);outline-offset:2px}
.gf-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.gf-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#0e0f12;filter:grayscale(.2) brightness(.8)}
.gf-has-own .gf-img{filter:none}
.gf-has-own .gf-drop{border-style:solid;border-color:var(--gf-gold)}
.gf-over{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-weight:700;font-size:1rem;color:#fff;background:rgba(10,10,14,.12);text-shadow:0 1px 4px #000;pointer-events:none}
.gf-over[hidden]{display:none}
.gf-tag{position:absolute;left:6px;top:6px;padding:2px 8px;border-radius:999px;background:rgba(10,10,14,.82);border:1px solid rgba(232,194,123,.5);color:var(--gf-gold);font-size:.74rem;pointer-events:none}
.gf-name{font-size:.78rem;color:var(--gf-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gf-err{min-height:0;font-size:.78rem;color:#ff8f8f}
.gf-missing .gf-drop{border-color:#ff8f8f;border-style:solid}
.gf-remove,.gf-clear,.gf-retry,.gf-memory{align-self:flex-start;background:none;border:0;padding:4px 0;color:var(--gf-muted);text-decoration:underline;cursor:pointer;font-size:.78rem}
.gf-remove:focus-visible,.gf-clear:focus-visible,.gf-retry:focus-visible,.gf-memory:focus-visible{outline:2px solid var(--gf-gold);outline-offset:2px}
.gf-remove[hidden]{display:none}
.gf-status{min-height:1.2em;margin:10px 0 0;font-size:.85rem;color:var(--gf-muted)}
.gf-status.gf-bad{color:#ff8f8f}
.gf-label{display:block;margin-top:12px;font-weight:600;font-size:.9rem}
.gf-prompt{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#0e0f12;color:#f3efe6;font:inherit;resize:vertical;min-height:90px}
.gf-prompt:focus-visible{outline:2px solid var(--gf-gold);outline-offset:1px}
.gf-counter{display:block;text-align:right;font-size:.72rem;color:var(--gf-muted)}
.gf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.gf-generate{padding:12px 22px;border:0;border-radius:999px;background:linear-gradient(135deg,#f3d28f,#c99a43);color:#17120a;font-weight:800;font-size:1rem;cursor:pointer}
.gf-generate:hover{filter:brightness(1.07)}
.gf-generate:focus-visible{outline:3px solid #fff;outline-offset:2px}
.gf-note{font-size:.78rem;color:var(--gf-muted)}
.gf-save{min-height:1.1em;margin:8px 0 0;font-size:.76rem;color:var(--gf-muted)}
.gf-dialog{border:0;padding:0;background:transparent;color:#f3efe6;max-width:min(520px,calc(100vw - 24px));width:100%}
.gf-dialog::backdrop{background:rgba(5,5,8,.78);backdrop-filter:blur(3px)}
.gf-dlg-box{padding:22px 18px;border-radius:16px;border:1px solid rgba(232,194,123,.5);background:linear-gradient(180deg,#1d1f26,#101115);box-shadow:0 24px 60px rgba(0,0,0,.6)}
.gf-dlg-title{margin:0 0 12px;font-size:1.3rem;color:var(--gf-gold,#e8c27b)}
.gf-summary{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04)}
.gf-sum-row,.gf-sum-prompt{margin:2px 0;font-size:.88rem;overflow-wrap:anywhere}
.gf-sum-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.gf-sum-img{width:52px;height:68px;object-fit:cover;border-radius:6px;border:1px solid rgba(232,194,123,.5)}
.gf-soon{margin:16px 0 4px;font-weight:700;font-size:1.05rem;text-align:center}
.gf-soon-sub{margin:0 0 14px;text-align:center;font-size:.85rem;color:#a9afbc}
.gf-plans{display:grid;gap:8px}
.gf-plans:empty{display:none}
.gf-back{display:block;width:100%;padding:12px;border:1px solid rgba(232,194,123,.6);border-radius:999px;background:transparent;color:#e8c27b;font-weight:700;font-size:1rem;cursor:pointer}
.gf-back:hover{background:rgba(232,194,123,.12)}
.gf-back:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(min-width:700px){.gf-root{padding:20px}}
@media(max-width:400px){.gf-root{padding:12px}.gf-over{font-size:.9rem}.gf-generate{width:100%}}
@media(prefers-reduced-motion:reduce){.gf-dialog,.gf-generate{transition:none;animation:none}}
.gf-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.gf-drop{aspect-ratio:auto;height:140px}.gf-name{white-space:normal;font-size:.7rem;line-height:1.35;min-height:2.7em}.gf-over{font-size:.85rem}.gf-tag{font-size:.65rem;padding:2px 5px}.gf-root{padding:14px;margin-top:12px}.gf-lead{font-size:.8rem}.gf-prompt{min-height:76px}.gf-dialog{height:auto;max-height:90dvh;border-radius:16px}.gf-note{display:block}.gf-clear{margin-left:auto}
@media(max-width:900px){.gf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gf-drop{height:150px}}
@media(max-width:500px){.gf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gf-drop{height:128px}.gf-clear{margin-left:0}}
.gf-reference-groups{display:grid;gap:16px}
.gf-subject{min-width:0;margin:0;padding:10px;border:1px solid #e8c27b40;border-radius:12px}
.gf-subject-title{padding:0 6px;color:#e8c27b;font-size:.95rem;font-weight:700}
.gf-subject-help{margin:0 0 10px;font-size:.78rem;line-height:1.5;color:#b7bfce}
.gf-subject .gf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
