/* All editor selectors are scoped: existing phone, party and modal controls keep their behavior. */
.portrait-studio{--p-ink:#382e29;--p-muted:#756960;--p-line:#ded1c4;--p-accent:#8a4a3b;color:var(--p-ink);font-size:max(1rem,var(--vc-fs-16,1rem));line-height:1.45;min-width:0}
.portrait-workspace{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:24px;align-items:start}
.portrait-mirror{background:linear-gradient(155deg,#efe0d1,#f5ede5);padding:18px;border:1px solid #d7c3b1;border-radius:24px;position:sticky;top:8px;text-align:center;min-width:0}
.portrait-mirror-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:max(.875rem,var(--vc-fs-14,.875rem));font-weight:700}
.portrait-text-btn{border:0;background:none;color:#854334;font:inherit;cursor:pointer;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.portrait-main-image{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:22px;margin:12px 0 10px;box-shadow:0 9px 30px #593e2915}
.portrait-name{display:block;font-size:max(1.25rem,var(--vc-fs-20,1.25rem));overflow-wrap:anywhere}.portrait-age{display:block;color:#72574a;font-size:max(.875rem,var(--vc-fs-14,.875rem));margin:5px 0 14px}
.portrait-comparison{display:flex;align-items:center;gap:10px;text-align:left;padding-top:14px;border-top:1px solid #d4c4b5}.portrait-comparison img{width:48px;height:48px;border-radius:12px}.portrait-comparison b,.portrait-comparison small{display:block;font-size:max(.875rem,var(--vc-fs-14,.875rem))}.portrait-comparison small{color:var(--p-muted)}
.portrait-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.portrait-tools button{border:1px solid #ccb8a7;border-radius:12px;background:#fffaf4;color:#5e4237;min-height:44px;padding:8px;font:inherit;font-size:max(.875rem,var(--vc-fs-14,.875rem));cursor:pointer}.portrait-tools button:disabled{opacity:.45;cursor:default}
.portrait-controls{min-width:0}.portrait-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--p-line);padding-bottom:12px;margin-bottom:12px}
.portrait-tabs button,.portrait-subtabs button,.portrait-lock{font:inherit;font-size:max(.875rem,var(--vc-fs-14,.875rem));border:1px solid transparent;background:transparent;color:var(--p-muted);min-height:44px;cursor:pointer;padding:9px 12px;border-radius:12px;white-space:normal;line-height:1.3}
.portrait-tabs button[aria-pressed=true]{background:#854939;color:white;box-shadow:0 4px 12px #85493920}.portrait-tabs button:hover{border-color:#c8ad98}
.portrait-subtabs{display:flex;flex-wrap:wrap;gap:5px}.portrait-subtabs button{background:#f1e9e0;color:#6b5546}.portrait-subtabs button[aria-pressed=true]{background:#ead1c2;color:#613b2e;border-color:#b6866f}
.portrait-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 10px}.portrait-field-head h3{font-size:max(1.1rem,var(--vc-fs-18,1.1rem));margin:0}.portrait-lock{border:1px solid var(--p-line)}
.portrait-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:10px;max-height:440px;overflow-y:auto;overscroll-behavior:contain;padding:3px 6px 6px 3px;scrollbar-color:#bb9783 transparent}
.portrait-options button{background:#fffaf5;color:#554337;border:2px solid #e5dacf;padding:7px;border-radius:16px;text-align:center;cursor:pointer;font:inherit;min-width:0;transition:background .15s,border-color .15s}
.portrait-options button[aria-pressed=true]{border-color:#884b3b;background:#f2e0d3;box-shadow:0 0 0 1px #884b3b}.portrait-options button:hover{border-color:#b28a74}
.portrait-options img{width:100%;height:auto;aspect-ratio:1;display:block;pointer-events:none;border-radius:10px}.portrait-options span{font-size:max(.875rem,var(--vc-fs-14,.875rem));display:block;line-height:1.25;margin-top:6px;overflow-wrap:anywhere;min-height:2.5em}
.portrait-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.portrait-swatches button{border:2px solid #e6dbcf;background:#fffaf4;padding:8px 5px;border-radius:13px;color:#554337;font:inherit;cursor:pointer;min-width:0}.portrait-swatches i{display:block;width:32px;height:32px;border-radius:50%;margin:0 auto 6px;border:1px solid #0002}.portrait-swatches span{font-size:max(.875rem,var(--vc-fs-14,.875rem));line-height:1.2;display:block;overflow-wrap:anywhere}.portrait-swatches button[aria-pressed=true]{border-color:#854939;background:#f3e3d5}
.portrait-custom-color,.portrait-density,.portrait-check{display:flex;align-items:center;gap:12px;margin:18px 0;font-size:max(1rem,var(--vc-fs-16,1rem));flex-wrap:wrap}.portrait-custom-color input{height:46px;width:70px;padding:3px;border:1px solid #c6ad99;background:transparent;border-radius:10px;cursor:pointer}.portrait-density input{min-width:100px;flex:1;accent-color:#8a4a3b;min-height:44px}.portrait-check input{width:22px;height:22px;accent-color:#8a4a3b}
.portrait-hint{color:#786555;font-size:max(.875rem,var(--vc-fs-14,.875rem));line-height:1.5;margin:14px 0}.portrait-help{border:1px solid #c4d6ce;background:#edf3ef;border-radius:15px;padding:16px;margin-bottom:14px;font-size:max(.9375rem,var(--vc-fs-15,.9375rem))}.portrait-help ol{padding-left:22px;margin:8px 0 0}.portrait-help li{margin:5px 0}
.portrait-studio button:focus-visible,.portrait-studio input:focus-visible,.portrait-gallery button:focus-visible{outline:3px solid #286776;outline-offset:3px}
.portrait-modal{width:min(1100px,calc(100vw - 32px))!important;max-width:1100px!important;padding:24px!important;max-height:92dvh;overflow-y:auto!important;overscroll-behavior:contain}
.portrait-modal-header{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px}.portrait-modal-header h2{margin:4px 0;font-size:max(1.6rem,var(--vc-fs-20,1.6rem))}.portrait-modal-header p{margin:4px 0;color:#776453;font-size:max(.9375rem,var(--vc-fs-15,.9375rem))}.portrait-modal-header button{flex-shrink:0;min-height:44px}
.portrait-editor-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;margin-top:20px;border-top:1px solid #dccbbc;padding-top:16px}.portrait-editor-footer .btn{min-height:46px;font-size:max(1rem,var(--vc-fs-16,1rem))}
.portrait-profile-image{display:block;width:110px;height:110px;object-fit:contain;border-radius:22px}.portrait-profile-card{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:16px}.portrait-profile-copy{min-width:0;flex:1}.portrait-profile-copy h3{margin:0 0 6px}.portrait-profile-copy p{margin:5px 0;font-size:max(.9375rem,var(--vc-fs-15,.9375rem));overflow-wrap:anywhere}.portrait-profile-copy .btn-row{margin-top:12px;flex-wrap:wrap}
.portrait-home-button{width:64px;height:64px;border:2px solid #ceb29b;border-radius:18px;padding:0;background:#eadacb;cursor:pointer;float:left;margin-right:12px}.portrait-home-button img{width:100%;height:100%;border-radius:16px;display:block}
.portrait-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}.portrait-gallery button{font:inherit;border:1px solid #d7c3b1;border-radius:18px;padding:12px;background:#fffaf4;color:#553f33;cursor:pointer;min-width:0}.portrait-gallery img{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:13px}.portrait-gallery strong,.portrait-gallery small{display:block;margin-top:6px;overflow-wrap:anywhere}.portrait-gallery small{font-size:max(.875rem,var(--vc-fs-14,.875rem));color:#816957}
.portrait-family-photo{width:44px;height:44px;border-radius:12px;object-fit:contain;flex-shrink:0}.portrait-inline-edit{margin-top:8px;font-size:max(.875rem,var(--vc-fs-14,.875rem))!important;min-height:40px}
.portrait-preview-note{padding:12px 14px;background:#ecf2ee;border:1px solid #c9d8ce;border-radius:12px;font-size:max(.9375rem,var(--vc-fs-15,.9375rem));line-height:1.5}
@media(max-width:760px){
 .portrait-workspace{grid-template-columns:1fr;gap:16px}.portrait-mirror{position:static;display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px 14px;padding:14px;text-align:left;border-radius:18px}.portrait-mirror-heading{grid-column:1/-1}.portrait-main-image{grid-column:1;grid-row:2/6;margin:0;width:112px}.portrait-name{grid-column:2;font-size:max(1.125rem,var(--vc-fs-18,1.125rem))}.portrait-age{grid-column:2;margin:0}.portrait-comparison{grid-column:2;border:0;padding:0;gap:7px}.portrait-comparison img{width:32px;height:32px}.portrait-comparison b,.portrait-comparison small{font-size:max(.875rem,var(--vc-fs-14,.875rem))}.portrait-tools{grid-column:1/-1;grid-template-columns:repeat(4,1fr);margin-top:8px}.portrait-tools button{padding:7px 3px}.portrait-tabs{gap:4px}.portrait-tabs button{padding:8px 10px;flex:1 0 auto}.portrait-options{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:370px;gap:8px}.portrait-options button{padding:5px}.portrait-modal{padding:14px!important;width:calc(100vw - 16px)!important;max-height:94dvh;border-radius:20px!important}.portrait-modal-header h2{font-size:max(1.35rem,var(--vc-fs-20,1.35rem))}.portrait-modal-header{gap:8px}.portrait-editor-footer{position:static!important}.portrait-editor-footer .btn{flex:1 1 45%;white-space:normal}.portrait-main-image,.portrait-profile-image{transform:none!important}.portrait-home-button{width:50px;height:50px;margin-right:8px}.cas-step-card .portrait-studio .portrait-controls h3{font-size:max(1.1rem,var(--vc-fs-18,1.1rem))}.cas-step-card .portrait-studio button{font-size:max(.875rem,var(--vc-fs-14,.875rem));min-height:44px}.portrait-profile-card{gap:12px}.portrait-profile-image{width:84px;height:84px}
}
@media(max-width:360px){.portrait-mirror{grid-template-columns:88px minmax(0,1fr);padding:10px;gap:6px 10px}.portrait-main-image{width:88px}.portrait-tools{grid-template-columns:1fr 1fr}.portrait-options{grid-template-columns:repeat(3,minmax(0,1fr))}.portrait-comparison img{display:none}}
@media(prefers-reduced-motion:reduce){.portrait-studio *{transition:none!important}}

.portrait-credits{margin:18px 0 0;border-top:1px solid var(--p-line);padding-top:10px;font-size:max(.875rem,var(--vc-fs-14,.875rem));color:var(--p-muted)}.portrait-credits summary{cursor:pointer;min-height:44px;padding:10px 0}.portrait-credits p{margin:8px 0;line-height:1.5}.portrait-credits a{color:#794633;text-decoration:underline;text-underline-offset:3px}

/* Animal photos use the same studio, including enlarged text settings. */
.pet-portrait-image{display:block;object-fit:contain;width:68px;height:68px;max-width:100%;border-radius:17px;flex-shrink:0;transform:none!important}
.pet-portrait-big{width:112px;height:112px;border-radius:24px}
.pet-portrait-tiny{width:44px;height:44px;border-radius:12px}
.pet-portrait-edit{margin-top:12px;min-height:44px!important;font-size:max(.875rem,var(--vc-fs-14,.875rem))!important;white-space:normal}
.pet-portrait-adoption{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1px solid #d0ded8;background:#edf4f0;border-radius:17px;padding:16px;margin:18px 0;color:#3c554b}
.pet-portrait-adoption>div{flex:1 1 240px;min-width:0}.pet-portrait-adoption strong{font-size:max(1rem,var(--vc-fs-16,1rem))}.pet-portrait-adoption p{margin:6px 0 0;font-size:max(.875rem,var(--vc-fs-14,.875rem));line-height:1.5}.pet-portrait-adoption .btn{min-height:46px;white-space:normal}
.pet-candidate{grid-template-columns:76px minmax(0,1fr)}.pet-candidate strong{font-size:max(.9375rem,var(--vc-fs-15,.9375rem))}.pet-candidate small{font-size:max(.875rem,var(--vc-fs-14,.875rem))}.pet-candidate em{font-size:max(.875rem,var(--vc-fs-14,.875rem))}
.pet-profile-head>div{min-width:0}.pet-profile-head small,.pet-profile-head em{overflow-wrap:anywhere}.pet-profile-head .pet-portrait-image{align-self:flex-start}
.portrait-gallery .pet-portrait-image{width:100%;height:auto;max-width:none;aspect-ratio:1}
.room-pet-chip .pet-portrait-image{width:30px;height:30px;border-radius:8px}
.phone-pet-main>.pet-portrait-image{width:40px;height:40px}.phone-pet-walk-list .pet-portrait-image{width:36px;height:36px}
@media(max-width:680px){.pet-portrait-big{width:84px;height:84px;border-radius:19px}.pet-candidate{grid-template-columns:62px minmax(0,1fr);padding:12px;gap:10px}.pet-candidate .pet-portrait-image{width:60px;height:60px}.pet-portrait-adoption .btn{width:100%}.pet-portrait-modal .portrait-name{overflow-wrap:anywhere}}
