/* FPG Tools Core 1.0 — shared generator workspace. Mobile-first; every rule is scoped to FPG classes.
   The split view responds to the width of the content area (container query), not the screen, so it
   also works inside narrow theme layouts. */
.fpg-host{container-type:inline-size;container-name:fpg;min-width:0;max-width:100%}
.fpg-workspace{--fpg-blue:#2563eb;--fpg-blue-ink:#1d4ed8;--fpg-line:#dbe3ef;--fpg-ink:#0f172a;--fpg-text:#263449;--fpg-soft:#e8edf5;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;margin:24px 0;min-width:0}
.fpg-workspace *,.fpg-workspace *::before,.fpg-workspace *::after{box-sizing:border-box}
.fpg-controls{background:#fff;border:1px solid var(--fpg-line);padding:16px;border-radius:16px;display:grid;gap:15px;min-width:0}
.fpg-controls label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--fpg-text);min-width:0}
.fpg-controls input,.fpg-controls select,.fpg-controls textarea,.fpg-toolbar select{font:inherit;font-size:16px;max-width:100%;width:100%;border:1px solid #a8b5c8;border-radius:8px;padding:10px 11px;background:#fff;color:var(--fpg-ink);min-height:44px}
.fpg-controls textarea{resize:vertical;min-height:96px;line-height:1.45}
.fpg-controls input[type=color]{padding:4px;height:44px}
.fpg-controls input[type=file]{padding:8px;font-size:14px}
.fpg-controls input:invalid:not(:placeholder-shown):not(:focus),.fpg-controls textarea:invalid:not(:focus){border-color:#b91c1c}
.fpg-help{font-weight:400;font-size:12.5px;line-height:1.45;color:#53637a}
.fpg-workspace .fpg-group{border:1px solid var(--fpg-line);border-radius:12px;padding:0;min-width:0}
.fpg-workspace .fpg-group>summary{cursor:pointer;padding:12px 14px;font-weight:700;font-size:14px;color:var(--fpg-ink);list-style-position:inside;min-height:44px}
.fpg-group-body{display:grid;gap:15px;padding:2px 14px 14px}
.fpg-seed{display:flex;gap:8px;min-width:0}.fpg-seed input{flex:1 1 auto;min-width:0}
.fpg-workspace button{border:1px solid var(--fpg-blue);border-radius:9px;background:#fff;color:var(--fpg-blue-ink);min-height:46px;padding:10px 16px;font:600 15px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer;touch-action:manipulation}
.fpg-workspace .fpg-primary{background:var(--fpg-blue);color:#fff}
.fpg-workspace button:hover:not(:disabled){filter:brightness(.96)}
.fpg-workspace button:disabled{opacity:.45;cursor:not-allowed}
.fpg-workspace .fpg-icon-btn{min-width:46px;padding:8px 12px}
.fpg-workspace .fpg-link-btn{border:0;background:none;min-height:44px;padding:4px 0;justify-self:start;font-size:13px;text-decoration:underline}
.fpg-form-actions{display:flex}.fpg-form-actions button{flex:1}
.fpg-workspace :focus-visible,.fpg-card a:focus-visible{outline:3px solid #d97706;outline-offset:3px}
.fpg-preview{min-width:0;background:var(--fpg-soft);border-radius:16px;padding:12px;display:grid;gap:10px;position:relative}
.fpg-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fpg-toolbar .fpg-scope{flex:1 1 180px;width:auto}
.fpg-toolbar .fpg-zoom{width:auto;flex:0 0 auto}
.fpg-pager-wrap{display:flex;gap:6px;flex:1 1 220px;min-width:0}.fpg-pager-wrap .fpg-pager{flex:1;min-width:0}
.fpg-pager-wrap[hidden],.fpg-toolbar [hidden]{display:none}
.fpg-privacy{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--fpg-text);min-height:44px}
.fpg-privacy input{width:20px;height:20px}
.fpg-stage{overflow:auto;border-radius:10px;-webkit-overflow-scrolling:touch;max-width:100%}
.fpg-page{width:100%;max-width:612px;margin:0 auto;aspect-ratio:612/792;background:#fff;box-shadow:0 6px 24px #0f172a14;transition:opacity .15s}
.fpg-page.is-landscape{max-width:792px}
.fpg-stage[data-zoom="150"] .fpg-page,.fpg-stage[data-zoom="200"] .fpg-page{max-width:none}
.fpg-page svg{width:100%;height:auto;display:block}
.fpg-page.is-private svg{filter:blur(7px)}
.fpg-page.is-private{position:relative;overflow:hidden}
.fpg-page.is-private::after{content:"Preview hidden for privacy";position:absolute;inset:auto 0 45% 0;text-align:center;font:700 15px/1.3 system-ui,sans-serif;color:#0f172a;text-shadow:0 0 6px #fff}
.fpg-preview.is-loading .fpg-page{opacity:.55}
.fpg-preview.is-loading::before{content:"";position:absolute;top:18px;right:18px;width:22px;height:22px;border-radius:50%;border:3px solid #93c5fd;border-top-color:var(--fpg-blue);animation:fpg-spin .8s linear infinite;z-index:2}
@keyframes fpg-spin{to{transform:rotate(360deg)}}
.fpg-status{font-size:13.5px;line-height:1.55;margin:0;color:#334155;min-height:1.55em}
.fpg-status.is-error{color:#991b1b;font-weight:600}
.fpg-actions{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:0;z-index:3;background:var(--fpg-soft);padding:10px 0 4px;margin:0}
.fpg-actions button{flex:1 1 130px}
@container fpg (min-width: 760px){
 .fpg-workspace{grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:24px}
 .fpg-controls{padding:20px;position:relative}
 .fpg-preview{padding:18px;position:sticky;top:16px}
 .fpg-stage{max-height:calc(100vh - 230px)}
 .fpg-actions{position:static;padding:0}
 .fpg-controls input,.fpg-controls select,.fpg-controls textarea,.fpg-toolbar select{font-size:15px}
}
@supports not (container-type:inline-size){@media(min-width:900px){
 .fpg-workspace{grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:24px}
 .fpg-controls{padding:20px;position:relative}
 .fpg-preview{padding:18px;position:sticky;top:16px}
 .fpg-stage{max-height:calc(100vh - 230px)}
 .fpg-actions{position:static;padding:0}
 .fpg-controls input,.fpg-controls select,.fpg-controls textarea,.fpg-toolbar select{font-size:15px}
}
}
@container fpg (min-width: 1100px){.fpg-workspace{grid-template-columns:minmax(320px,400px) minmax(0,1fr)}}
@media print{.fpg-controls,.fpg-toolbar,.fpg-actions,.fpg-status{display:none}}
@media(prefers-reduced-motion:reduce){.fpg-preview.is-loading::before{animation:none}.fpg-page{transition:none}}
/* Directory, cards and collections (unchanged from 0.9.1 apart from grouping). */
.fpg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.fpg-card{background:white;padding:24px;border:1px solid #dce4ee;border-radius:14px;min-width:0;transition:transform .18s,box-shadow .18s}.fpg-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px #1720330c}.fpg-card h3{font-size:19px;margin:12px 0}.fpg-card p{color:#526178;font-size:15px;line-height:1.7}.fpg-card a{text-decoration:none}.fpg-card img{width:100%;height:220px;object-fit:contain;background:#f8fafc}.fpg-badge{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#1d4ed8}.fpg-collection-links{display:flex;gap:10px;flex-wrap:wrap}.fpg-collection-links a{padding:10px;background:#eff6ff;border-radius:5px}.fpg-directory-search{display:flex;gap:8px;margin:18px 0 30px}.fpg-directory-search input{width:100%;min-width:0}.fpg-directory-search button{min-height:44px}.fpg-breadcrumbs{font-size:13px;margin:18px 0;color:#64748b}.fpg-empty{padding:24px;border:1px dashed #a8b5c8;border-radius:12px}
@media(max-width:1000px){.fpg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.fpg-grid{grid-template-columns:minmax(0,1fr)}.fpg-card{padding:20px}}
@media(prefers-reduced-motion:reduce){.fpg-card{transition:none}.fpg-card:hover{transform:none}}
