/* Image production: shared completed-gallery surfaces, footer and motion. DS-2.0. */
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-output-grid,.ip-result-gallery){display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-4);align-items:start;min-width:0;overflow:visible;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-output-card,.biz-image-result){position:relative;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result{display:flex;flex-direction:column;gap:0;aspect-ratio:auto;height:auto;max-height:none;width:auto;max-width:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result>.ip-result-media{order:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .biz-result-img::before,
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .biz-result-img::after{content:none;display:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media){position:relative;display:block;width:100%;height:auto;aspect-ratio:1;min-width:0;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);overflow:visible;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media)>.cat-media-open{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;aspect-ratio:1;padding:0;margin:0;border:0;border-radius:var(--r-lg);background:var(--surface-2);overflow:hidden;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media)>.cat-media-open>img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-empty-picture{width:80px;height:80px;fill:none;stroke:var(--border-strong);stroke-width:2;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-select{position:absolute;inset:var(--s-3) auto auto var(--s-3);z-index:4;display:flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:600;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-select input{width:18px;height:18px;margin:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-card:has([data-output-slot]:checked) .ip-prompt-media{border-color:var(--accent);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-needs-work .ip-prompt-media{border-color:var(--warning);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-menu{position:relative;margin:0;padding:0;min-width:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-menu::details-content{block-size:auto;overflow:visible;transition:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-menu>summary{display:flex;align-items:center;min-height:32px;padding:2px var(--s-2);list-style:none;cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--replenish-summary-bg);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-menu>summary::-webkit-details-marker{display:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-popover{position:absolute;inset:auto auto calc(100% + var(--s-2)) 0;z-index:8;width:240px;max-width:calc(100vw - 64px);max-height:280px;overflow:auto;overscroll-behavior:auto;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:var(--shadow-1);white-space:normal;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-menu[open]{z-index:8;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-prompt-media:has(details[open]) figcaption{opacity:1;transform:none;pointer-events:auto;z-index:8;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media):is(:hover,:has(:focus-visible):not(:root[data-ui-input="pointer"] *)) figcaption{opacity:1;transform:none;pointer-events:auto;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media):is(:hover,:has(:focus-visible):not(:root[data-ui-input="pointer"] *)) .completion-media-actions{pointer-events:auto;}
html body #app#app#app#app#app#app#app#app .image-page-v3 #biz-prompt-output>.ds-actionbar{position:static;inset:auto;z-index:auto;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);padding:var(--s-4);margin-block:var(--s-5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-settings>.field{display:flex;flex-direction:column;gap:var(--s-2);min-width:0;margin:0;grid-column:auto;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-settings :is(select,input){width:100%;min-width:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-spec{justify-content:center;font-size:var(--fs-sm);color:var(--text-2);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-spec strong{color:var(--text);font-size:var(--fs-md);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-3);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid>.field{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2fr);gap:var(--s-2) var(--s-3);align-items:end;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid>.field>select{grid-column:1;min-width:0;width:100%;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid>.field>label:last-child{grid-column:2;grid-row:1/span 2;display:flex;flex-direction:column;gap:var(--s-2);min-width:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings input{width:100%;min-width:0;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-source-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2) var(--s-4);margin-block:var(--s-4);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-source-status-grid>p{margin:0;overflow-wrap:anywhere;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media>.cat-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:1;margin:0;border:0;border-radius:var(--r-lg);background:var(--surface-2);color:var(--text-2);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result>.ui-image-caption{position:static;display:grid;gap:var(--s-2);padding:var(--s-3) 0;margin:0;border:0;background:transparent;opacity:1;transform:none;max-height:none;overflow:visible;order:1;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result .biz-result-pick{position:absolute;inset:var(--s-3) auto auto var(--s-3);z-index:4;opacity:1;transform:none;background:var(--surface);color:var(--text);}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result .biz-result-where{position:static;display:block;inset:auto;padding:var(--s-2) 0;margin:0;border:0;border-radius:0;box-shadow:none;color:var(--text-2);background:transparent;order:2;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .biz-image-result.is-picked .ip-result-media{outline:2px solid var(--accent);outline-offset:2px;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .result-purpose{display:flex;align-items:center;justify-content:space-between;flex:1 1 auto;flex-wrap:wrap;gap:2px;min-width:0;margin:0;padding:0;border:0;background:transparent;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .result-purpose>span{display:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .result-purpose-error:empty{display:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media>figcaption:not(:has(a,button:enabled)){display:none;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media .result-purpose-error:not(:empty){display:block;flex:1 0 100%;margin:0;color:var(--danger-text);white-space:normal;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-result-media:has(.result-purpose-error:not(:empty)) figcaption{opacity:1;transform:none;pointer-events:auto;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-open,.ip-reference-menu>summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media(max-width:760px){
 html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-output-grid,.ip-result-gallery){grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-settings{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--s-3);gap:var(--s-3);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-source-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:480px){
 html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-output-grid,.ip-result-gallery){grid-template-columns:minmax(0,1fr);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-output-settings{grid-template-columns:minmax(0,1fr);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-source-status-grid{grid-template-columns:minmax(0,1fr);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid>.field{grid-template-columns:minmax(0,1fr);}
 html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-reference-settings>.formgrid>.field>label:last-child{grid-column:1;grid-row:auto;}
}
@media(hover:none){
 html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-prompt-media,.ip-result-media){aspect-ratio:auto;}
 html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-reference-menu>summary,.completion-media-actions a,.completion-media-actions button){min-height:44px;}
}

/* Step 1 and results share image-only card entry points. Canonical fields stay in DOM for existing handlers. */
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-step-one-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-4);align-items:start;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-step-one-card{padding:0;margin:0;border:0;background:transparent;box-shadow:none;min-width:0;overflow:visible;}
html body #app#app#app#app#app#app#app#app .image-page-v3 :is(.ip-step-one-card [hidden],.biz-image-result>.ui-image-caption[hidden]){display:none!important;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-card-label{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);padding:var(--s-3) 0;color:var(--text);font-size:var(--fs-sm);line-height:1.5;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-card-label strong{min-width:0;overflow-wrap:anywhere;font-weight:600;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-card-label .badge{flex-shrink:0;max-width:55%;white-space:normal;}
html body #app#app#app#app#app#app#app#app .image-page-v3 .ir-error-summary{margin:0 0 var(--s-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:var(--danger-text);}
html body #editor.ir-detail-dialog .ir-card-details{border-top:1px solid var(--border);margin-top:var(--s-5);padding-top:var(--s-4);display:grid;gap:var(--s-3);min-width:0;overflow-wrap:anywhere;}
html body #editor.ir-detail-dialog .ir-card-details .biz-result-where{position:static;padding:0;background:transparent;color:var(--text-2);}
html body #editor.ir-detail-dialog .ir-card-details .actions,html body #editor.ir-detail-dialog .ir-card-details .row-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);}
@media(max-width:760px){html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-step-one-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);}}
@media(max-width:480px){html body #app#app#app#app#app#app#app#app .image-page-v3 .ip-step-one-grid{grid-template-columns:minmax(0,1fr);}}
