/* Shared artwork and result actions. Page-specific pickers keep their own layout. */
#portrait-workbench .wb-shell { height:auto; min-height:0; align-items:stretch; }
#portrait-workbench .wb-stage { height:auto; min-height:0; min-width:0; display:flex; flex-direction:column; padding:28px; }
#portrait-workbench .wb-stagebar { flex-wrap:wrap; gap:12px; }
#portrait-workbench .wb-stagebar > div:first-child { flex:1 1 230px; min-width:0; }
#portrait-workbench .wb-stagebar h3 { font:500 28px/1.2 var(--serif,Georgia,serif); overflow-wrap:anywhere; }
#portrait-workbench .wb-stagebar p { font:400 13px/1.55 var(--sans,system-ui,sans-serif); }
#portrait-workbench .wb-views { flex:none; max-width:100%; }
#portrait-workbench .wb-canvas { display:grid; flex:none; width:100%; min-width:0; min-height:280px; height:auto; max-height:none; padding:22px; margin-top:20px; overflow:visible; place-items:center; }
#portrait-workbench .wb-frame { box-sizing:border-box; width:fit-content; max-width:min(480px,100%); min-width:0; height:auto; max-height:none; padding:14px; margin:0 auto; grid-template-rows:auto auto; background:#fff; box-shadow:0 14px 36px -20px #0008; }
#portrait-workbench .wb-frame:not([style*="none"]) { display:grid!important; }
#portrait-workbench #wb-frame > img { display:block; width:auto; height:auto; max-width:100%; max-height:440px; min-height:0; aspect-ratio:auto; object-fit:contain!important; background:transparent; margin:auto; }
#portrait-workbench #wb-frame figcaption { position:static; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px; height:auto; min-height:34px; max-width:100%; padding:12px 0 0; white-space:normal; overflow-wrap:anywhere; color:#203f36; font:italic 13px/1.45 var(--serif,Georgia,serif); text-align:center; }
#portrait-workbench #wb-frame .wb-chip { top:20px; left:20px; max-width:calc(100% - 40px); padding:6px 9px; font:600 9px/1.4 var(--sans,system-ui,sans-serif); }
#portrait-workbench #wb-frame .wb-watermark { inset:14px 14px 48px; }
#portrait-workbench .ppl-result-actions { display:none; flex:none; width:100%; max-width:520px; margin:18px auto 0; padding:0; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); }
#portrait-workbench .ppl-result-actions.show { display:grid; }
#portrait-workbench .ppl-result-actions button { box-sizing:border-box; display:flex; align-items:center; justify-content:center; min-width:0; width:100%; min-height:48px; margin:0; padding:12px 14px; border:1px solid #ffffff50; border-radius:10px; background:transparent; color:#fff9ee; font:600 14px/1.45 var(--sans,system-ui,sans-serif); text-align:center; cursor:pointer; }
#portrait-workbench .ppl-result-actions button:hover { background:#ffffff12; }
#portrait-workbench .ppl-result-actions #wb-download-btn { grid-column:1/-1; grid-row:1; background:#bd914f; color:#173c30; border-color:#bd914f; }
#portrait-workbench .ppl-result-actions #wb-download-btn:hover { background:#cba15f; }
#portrait-workbench .ppl-result-actions button:focus-visible { outline:3px solid #e9cd9b; outline-offset:3px; }
#portrait-workbench .ppl-result-actions button:disabled { opacity:.5; cursor:not-allowed; }
#portrait-workbench .wb-stagefoot { flex:none; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin:20px 0 0; padding:14px 0 0; border-top:1px solid #ffffff20; }
#portrait-workbench .wb-stagefoot p { flex:1 1 150px; margin:0; font:400 11px/1.5 var(--sans,system-ui,sans-serif); color:#c5d5cf; }
#portrait-workbench .wb-result { width:42px; height:42px; }
/* Completed artwork owns the next action; editing a template restores Generate. */
#portrait-workbench .wb-shell:has(#wb-post.show) .wb-action { display:none; }
#portrait-workbench .wb-stage:has(#wb-post.show) .wc-examples { display:none; }
#portrait-workbench .wb-stage:has(.wb-loader.show) .ppl-result-actions { display:none; }
#portrait-workbench .wb-generate { min-height:48px; border-radius:10px; padding:12px 16px; font:600 14px/1.45 var(--sans,system-ui,sans-serif); }
/* The generator keeps its left preview and right template library, without a clipped canvas. */
body[data-ppl-studio="generator"] #portrait-workbench .wb-panel { height:auto; max-height:none; min-height:0; }
body[data-ppl-studio="generator"] #portrait-workbench .wb-library { flex:1 1 360px; min-height:260px; }
body[data-ppl-studio="generator"] #portrait-workbench .wb-action { position:static; }
@media(max-width:800px) {
 #portrait-workbench .wb-stage { padding:20px; }
 #portrait-workbench .wb-canvas { padding:16px; margin-top:16px; min-height:220px; }
 #portrait-workbench #wb-frame > img { max-height:400px; }
 #portrait-workbench .wb-stagebar h3 { font-size:25px; }
}
@media(max-width:760px) {
 body[data-ppl-studio="generator"] #portrait-workbench .wb-panel { max-height:none; }
 body[data-ppl-studio="generator"] #portrait-workbench .wb-library { flex:none; height:420px; }
}
@media(max-width:520px) {
 #portrait-workbench .wb-stage { padding:18px; }
 #portrait-workbench .wb-canvas { padding:12px; }
 #portrait-workbench .wb-frame { padding:10px; }
 #portrait-workbench #wb-frame > img { max-height:360px; }
 #portrait-workbench #wb-frame figcaption { font-size:12px; padding-top:10px; }
 #portrait-workbench #wb-frame .wb-chip { top:15px; left:15px; }
 #portrait-workbench .ppl-result-actions { gap:8px; margin-top:14px; }
 #portrait-workbench .ppl-result-actions button { font-size:13px; padding:10px 8px; min-height:48px; }
}
/* Royal uses a separate uploader, but the same artwork sizing and result hierarchy. */
#portrait-workbench .ppl-result-actions .ppl-download-primary { grid-column:1/-1; grid-row:1; background:#bd914f; color:#173c30; border-color:#bd914f; }
#portrait-workbench .ppl-result-actions .ppl-download-primary:hover { background:#cba15f; }
#portrait-workbench .ppl-result-actions .ppl-result-options { grid-column:1/-1; border:0; min-height:32px; font-size:12px; font-weight:400; text-decoration:underline; }
#portrait-workbench:has(#heroActions.show) .quick-create { display:none; }
#portrait-workbench .royal-stage .hs-preview { box-sizing:border-box; width:fit-content!important; max-width:min(480px,100%)!important; height:auto; padding:14px; }
#portrait-workbench .royal-stage .hs-preview img { width:auto; height:auto; max-width:100%; max-height:440px; margin:auto; object-fit:contain; }
#portrait-workbench .royal-stage .hs-cap { font:italic 13px/1.45 var(--serif,Georgia,serif); }
@media(max-width:520px){#portrait-workbench .royal-stage .hs-preview img{max-height:360px}}
body[data-ppl-studio="generator"] #portrait-workbench .wb-file.has-photo { height:auto; min-height:88px; overflow:visible; }
body[data-ppl-studio="generator"] #portrait-workbench .wb-file-ready { min-width:0; }
body[data-ppl-studio="generator"] #portrait-workbench .wb-file-ready b { font-size:16px; line-height:1.3; }
@media(max-width:520px){#portrait-workbench .ppl-result-actions button{min-height:60px}#portrait-workbench .ppl-result-actions .ppl-result-options{min-height:32px}}

/* One purchase chooser shared by the homepage, generator and style studios. */
#page-pricing .price-card .ppl-price-buy { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:52px; margin-top:auto; padding:14px 12px; border:1px solid #203f36; border-radius:10px; background:#203f36; color:#fff9ed; text-decoration:none; text-align:center; font:600 15px/1.4 var(--sans,system-ui,sans-serif); cursor:pointer; }
#page-pricing .price-card .ppl-price-buy:hover { background:#315448; }
#page-pricing .price-card.featured .ppl-price-buy { background:#e1bc7d; border-color:#e1bc7d; color:#19392e; }
#page-pricing .price-card.featured .ppl-price-buy:hover { background:#efd0a0; }
#page-pricing .price-card .ppl-price-buy:disabled { cursor:not-allowed; opacity:.55; }
#page-pricing .ppl-price-buy:focus-visible { outline:3px solid #b68a4b; outline-offset:4px; }
#page-pricing .price-card h2 { min-height:68px; }
#page-pricing .price-card .price-list { flex:1; margin-bottom:28px; }
@media(max-width:650px){#page-pricing .price-card h2{min-height:0}#page-pricing .price-card .ppl-price-buy{font-size:16px;min-height:52px}}
#wb-download.ppl-purchase-dialog .ppl-checkout-active > :not(.wb-modalhead):not(#ppl-inline-checkout) { display:none!important; }
#wb-download.ppl-purchase-dialog #ppl-inline-checkout { margin-top:24px; }
#wb-download.ppl-purchase-dialog .ppl-purchase-summary { border:1px solid #e4ddd0; border-radius:14px; background:#fffdf9; overflow:hidden; margin-bottom:20px; }
#wb-download.ppl-purchase-dialog .ppl-selection-product { display:flex; align-items:center; gap:16px; padding:20px; }
#wb-download.ppl-purchase-dialog .ppl-selection-art { display:flex; align-items:center; justify-content:center; flex:none; width:50px; height:60px; border-radius:8px; background:#f1eadc; color:#967038; overflow:hidden; }
#wb-download.ppl-purchase-dialog .ppl-selection-art svg { width:28px; height:28px; }
#wb-download.ppl-purchase-dialog .ppl-selection-art img { width:100%; height:100%; object-fit:contain; }
#wb-download.ppl-purchase-dialog .ppl-selection-name { margin:0; color:#203f36; font:600 17px/1.4 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-selection-detail { margin:5px 0 0; color:#687064; font:400 13px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-selection-total { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border-top:1px solid #e9e2d6; background:#f5f0e7; font:500 13px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-selection-terms { display:block; color:#687064; margin-top:2px; font-size:11px; font-weight:400; }
#wb-download.ppl-purchase-dialog .ppl-selection-amount { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
#wb-download.ppl-purchase-dialog .ppl-selection-price { color:#203f36; font:600 24px/1.2 var(--sans,system-ui,sans-serif); font-variant-numeric:tabular-nums; letter-spacing:-.6px; }
#wb-download.ppl-purchase-dialog .ppl-selection-amount small { color:#687064; font-size:10px; }
#wb-download.ppl-purchase-dialog .ppl-selection-context { margin:-8px 0 22px; color:#687064; font:400 12px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog #ppl-purchase-title { margin:0 0 6px; font:600 17px/1.4 var(--sans,system-ui,sans-serif); color:#203f36; }
#wb-download.ppl-purchase-dialog #ppl-purchase-status { margin:0 0 18px; color:#687064; font:400 13px/1.6 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog [data-state="loading"] #ppl-purchase-title { display:none; }
#wb-download.ppl-purchase-dialog [data-state="loading"] #ppl-purchase-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
#wb-download.ppl-purchase-dialog .ppl-purchase-primary { display:flex; box-sizing:border-box; align-items:center; justify-content:center; gap:10px; width:100%; min-height:52px; border:1px solid #203f36; border-radius:10px; background:#203f36; color:#fff9ee; padding:14px 18px; font:600 14px/1.4 var(--sans,system-ui,sans-serif); text-decoration:none; cursor:pointer; }
#wb-download.ppl-purchase-dialog a.ppl-purchase-primary:hover,#wb-download.ppl-purchase-dialog button.ppl-purchase-primary:hover { background:#315448; }
#wb-download.ppl-purchase-dialog #ppl-purchase-loading { cursor:progress; }
#wb-download.ppl-purchase-dialog .ppl-purchase-spinner { box-sizing:border-box; flex:none; width:17px; height:17px; border:2px solid #fff9ee40; border-top-color:#e6c58d; border-radius:50%; animation:ppl-checkout-spin .85s linear infinite; }
@keyframes ppl-checkout-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){#wb-download.ppl-purchase-dialog .ppl-purchase-spinner { animation:none; }}
#wb-download.ppl-purchase-dialog .ppl-purchase-footnote { display:flex; justify-content:center; align-items:flex-start; gap:6px; margin:12px 0 20px; color:#687064; font:400 11px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-purchase-footnote svg { flex:none; width:14px; height:14px; margin-top:1px; }
#wb-download.ppl-purchase-dialog :is([data-state="owned"],[data-state="processed"]) .ppl-purchase-footnote { display:none; }
#wb-download.ppl-purchase-dialog #ppl-purchase-back { display:flex; align-items:center; justify-content:center; gap:7px; margin:12px auto 0; min-height:40px; border:0; background:transparent; color:#526358; padding:8px 12px; border-radius:8px; text-decoration:none; cursor:pointer; font:400 12px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog #ppl-purchase-back:hover { background:#f0eade; color:#203f36; }
@media(max-width:520px){
 #wb-download.ppl-purchase-dialog .ppl-selection-product { gap:12px; padding:16px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-art { width:42px; height:54px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-name { font-size:15px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-detail { font-size:12px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-total { padding:14px 16px; gap:10px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-price { font-size:22px; }
 #wb-download.ppl-purchase-dialog .ppl-selection-amount { flex-wrap:wrap; justify-content:flex-end; gap:2px 5px; }
}
#wb-download.ppl-purchase-dialog { padding:16px; overflow-y:auto; }
#wb-download.ppl-purchase-dialog [hidden] { display:none!important; }
#wb-download.ppl-purchase-dialog .wb-modal { box-sizing:border-box; width:min(720px,100%); max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; padding:28px; border-radius:22px; background:#faf7f1; color:#203f36; }
#wb-download.ppl-purchase-dialog .wb-modal.ppl-checkout-active { width:min(560px,100%); }
#wb-download.ppl-purchase-dialog .ppl-checkout-active .wb-modalhead .eyebrow { display:none; }
#wb-download.ppl-purchase-dialog .ppl-checkout-active .wb-modalhead h3 { margin:0; font-size:30px; line-height:38px; }
#wb-download.ppl-purchase-dialog #ppl-download-title:focus { outline:none; }
#wb-download.ppl-purchase-dialog .wb-modalhead { gap:16px; align-items:flex-start; }
#wb-download.ppl-purchase-dialog .wb-modalhead h3 { font:500 32px/1.15 var(--serif,Georgia,serif); margin-top:8px; }
#wb-download.ppl-purchase-dialog .wb-close { flex:none; cursor:pointer; width:38px; height:38px; background:#f0eade; color:#203f36; }
#wb-download.ppl-purchase-dialog .wb-modal > p { font:400 14px/1.5 var(--sans,system-ui,sans-serif); margin:10px 0 20px; color:#656b60; }
#wb-download.ppl-purchase-dialog .wb-option[disabled]:not(#wb-download-hd) { display:none; }
#wb-download.ppl-purchase-dialog #wb-download-hd { box-sizing:border-box; padding:15px 18px; border-radius:12px; border:1px solid #dfd9cc; background:#fffdf9; color:#203f36; gap:18px; margin:0; cursor:pointer; font:400 14px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog #wb-download-hd b { font-size:15px; font-weight:600; }
#wb-download.ppl-purchase-dialog #wb-download-hd span { font-size:12px; color:#687064; }
#wb-download.ppl-purchase-dialog #wb-download-hd strong { font-size:14px; color:#203f36; white-space:nowrap; }
#wb-download.ppl-purchase-dialog .ppl-single-unlock { box-sizing:border-box; display:flex; justify-content:space-between; align-items:center; gap:20px; background:#203f36; color:#fff9ee; padding:18px; border:1px solid #203f36; border-radius:12px; margin-top:12px; text-decoration:none; font:400 14px/1.5 var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-single-unlock b { display:block; font-size:17px; font-weight:600; }
#wb-download.ppl-purchase-dialog .ppl-single-unlock small { display:block; font-size:12px; color:#d0dbcf; margin-top:3px; }
#wb-download.ppl-purchase-dialog .ppl-single-unlock > strong { font-size:22px; font-weight:500; color:#e6c58d; white-space:nowrap; }
#wb-download.ppl-purchase-dialog .ppl-single-unlock:hover { background:#315448; }
#wb-download.ppl-purchase-dialog #wb-download-hd.ppl-owned-download { background:#203f36; color:#fff9ee; border-color:#203f36; }
#wb-download.ppl-purchase-dialog #wb-download-hd.ppl-owned-download span { color:#d0dbcf; }
#wb-download.ppl-purchase-dialog #wb-download-hd.ppl-owned-download strong { color:#e6c58d; }
#wb-download.ppl-purchase-dialog .ppl-credit-packs { border-top:1px solid #e5dfd3; margin-top:22px; padding-top:20px; }
#wb-download.ppl-purchase-dialog .ppl-credit-packs h4 { font:500 23px/1.25 var(--serif,Georgia,serif); margin:0 0 6px; }
#wb-download.ppl-purchase-dialog .ppl-credit-packs p { font:400 12px/1.5 var(--sans,system-ui,sans-serif); margin:0; color:#656b60; }
#wb-download.ppl-purchase-dialog .ppl-pack-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
#wb-download.ppl-purchase-dialog .ppl-pack { min-width:0; display:flex; flex-direction:column; padding:17px; border:1px solid #dfd9cc; border-radius:12px; background:#fffdf9; text-decoration:none; color:#203f36; font-family:var(--sans,system-ui,sans-serif); }
#wb-download.ppl-purchase-dialog .ppl-pack:hover { border-color:#b68a4b; background:#f7efdf; }
#wb-download.ppl-purchase-dialog .ppl-pack.is-popular { background:#f4ead6; border-color:#c6a269; }
#wb-download.ppl-purchase-dialog .ppl-pack-label { font-size:10px; font-weight:600; letter-spacing:.7px; text-transform:uppercase; color:#7d6034; }
#wb-download.ppl-purchase-dialog .ppl-pack-credits { margin-top:10px; font-size:18px; font-weight:600; }
#wb-download.ppl-purchase-dialog .ppl-pack-price { margin-top:4px; font:500 27px/1.25 var(--serif,Georgia,serif); }
#wb-download.ppl-purchase-dialog .ppl-pack-cta { display:flex; justify-content:space-between; margin-top:18px; font-size:12px; font-weight:600; }
#wb-download.ppl-purchase-dialog .ppl-credit-packs .ppl-pack-context { margin-top:12px; font-size:11px; }
#wb-download.ppl-purchase-dialog .wb-modal > .wb-modal-note { margin:16px 0 0; font-size:11px!important; text-align:center; }
#wb-download.ppl-purchase-dialog a:focus-visible,#wb-download.ppl-purchase-dialog button:focus-visible { outline:3px solid #b68a4b; outline-offset:3px; }
@media(max-width:520px) {
 #wb-download.ppl-purchase-dialog { padding:10px; }
 #wb-download.ppl-purchase-dialog .wb-modal { padding:21px; max-height:calc(100dvh - 20px); border-radius:18px; }
 #wb-download.ppl-purchase-dialog .wb-modalhead h3 { font-size:26px; }
 #wb-download.ppl-purchase-dialog .wb-modalhead .eyebrow { font-size:10px; letter-spacing:1.2px; }
 #wb-download.ppl-purchase-dialog .ppl-single-unlock { padding:15px; gap:12px; }
 #wb-download.ppl-purchase-dialog .ppl-single-unlock b { font-size:15px; }
 #wb-download.ppl-purchase-dialog .ppl-pack-grid { grid-template-columns:1fr; gap:9px; }
 #wb-download.ppl-purchase-dialog .ppl-pack { display:grid; grid-template-columns:1fr auto; column-gap:12px; padding:13px 15px; }
 #wb-download.ppl-purchase-dialog .ppl-pack-label { grid-column:1; }
 #wb-download.ppl-purchase-dialog .ppl-pack-credits { grid-column:1; margin:3px 0 0; font-size:16px; }
 #wb-download.ppl-purchase-dialog .ppl-pack-price { grid-column:2; grid-row:1/3; align-self:center; font-size:25px; margin:0; }
 #wb-download.ppl-purchase-dialog .ppl-pack-cta { grid-column:1/-1; margin-top:9px; }
}
