/* PV LAB Studio Finish V2. Scoped to the studio, without changing billing or other pages. */
@media(min-width:901px){
 #studio-header .tool-switch>.tool-group>button,
 #studio-header .tool-switch>.tool-group>a.tool-link{
   font-weight:500!important;color:#efede7!important;
 }
 #studio-header .tool-switch>.tool-group>button[aria-selected="true"],
 #studio-header .tool-switch>.tool-group>.active,
 #studio-header .tool-switch>.tool-group>a[aria-current="page"]{color:#fff!important}
}
#image-composer{
 background:linear-gradient(115deg,rgba(255,255,255,.065) 0%,rgba(255,255,255,.015) 24%,transparent 47%),linear-gradient(180deg,#232425 0%,#191a1b 48%,#171819 100%)!important;
 border:1px solid #555654!important;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.17),inset 0 -1px 0 rgba(255,255,255,.025),0 23px 66px rgba(0,0,0,.48)!important;
}
#image-composer:focus-within{border-color:#72736f!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.19),0 25px 70px rgba(0,0,0,.52)!important}
#image-composer #image-composer-prompt::placeholder{color:#b9bbb9!important;opacity:1}
#image-composer #image-composer-prompt{color:#f5f3ef}
#image-composer .image-composer-bottom button:not(.composer-generate),
#image-composer .image-composer-bottom select{
 box-shadow:inset 0 1px 0 rgba(255,255,255,.075);
}
#image-composer .composer-generate:not(:disabled):not(.is-submitting){
 background:#f0eee8!important;border-color:#f0eee8!important;color:#151515!important;
 box-shadow:inset 0 1px 0 #fff,0 4px 20px rgba(240,238,232,.12)!important;
 font-weight:650!important;transition:background .18s,border-color .18s,box-shadow .18s;
}
#image-composer .composer-generate:hover:not(:disabled):not(.is-submitting){
 background:#fff!important;border-color:#fff!important;
 box-shadow:inset 0 1px 0 #fff,0 5px 25px rgba(240,238,232,.18)!important;
}
#image-composer .composer-generate:disabled:not(.is-submitting){
 background:#292b30!important;border-color:#42454b!important;color:#adb1ba!important;
 box-shadow:inset 0 1px rgba(255,255,255,.035)!important;cursor:not-allowed;
}
@media(prefers-reduced-motion:reduce){#image-composer .composer-generate{transition:none!important}}

/* Image deck typography remains compact. Generate is anchored to the bottom
   control row even as the prompt and reference tray expand. */
@media(min-width:900px){
 #image-composer .composer-generate{align-self:end}
 #image-composer:not(.is-pv-soul) #image-composer-edit-area,
 #image-composer:not(.is-pv-soul) .composer-mood-control #image-composer-moods{font-size:clamp(12px,.78vw,13px);font-weight:700;line-height:1.15}
}
@media(min-width:900px) and (max-width:1440px){
 #image-composer.is-gemini #image-composer-edit-area,
 #image-composer.is-gemini .composer-mood-control #image-composer-moods{font-size:11px}
}
/* The Mood star and label are centered as one flex group, not aligned from the left. */
#image-composer .composer-mood-control #image-composer-moods{box-sizing:border-box;justify-content:center;text-align:center}
#image-composer .composer-mood-control .composer-mood-copy{display:inline-block;min-width:0;max-width:100%;margin-inline:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;line-height:1.18}
#image-composer .composer-mood-control .composer-mood-icon{display:inline-block;font-size:13px;font-weight:600;line-height:1;vertical-align:baseline}
#image-composer .composer-mood-control .composer-mood-label{display:inline}
/* The fallback model symbol was zero-size, leaving Controlled Pose with an empty left slot. */
#image-composer .composer-model-symbol:not(:has(img)){font-size:17px}
/* Every Image model, including PV Soul, shares one Generate presentation. Keep Soul ID and base-photo tiles unchanged. */
#image-composer.is-pv-soul .composer-generate{border-radius:13px}
/* Actual inline icon and independent action text survive every Generate label update. */
#image-composer .composer-generate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;padding-inline:12px;text-align:center;line-height:1.17}
#image-composer .composer-generate-label{display:block;max-width:100%;min-width:0;white-space:normal;overflow-wrap:break-word}
#image-composer .composer-generate-sparkle{display:block;flex:0 0 13px;width:13px;height:13px;opacity:.78;pointer-events:none}
#image-composer .composer-generate-sparkle[hidden]{display:none!important}
#image-composer .composer-generate.is-long-label{font-size:13px!important;line-height:1.18}
#image-composer .composer-generate.is-submitting{flex-direction:row;gap:7px}
#image-composer .composer-generate.is-submitting::before{margin-right:0;flex:0 0 10px}
/* Narrow screens omit the sparkle for lengthy actions, not increase button height. */
@media(max-width:899px){
 #image-composer .composer-generate{gap:3px}
 #image-composer .composer-generate.is-long-label .composer-generate-sparkle{display:none}
}
@media(max-width:650px){
 html:not(.pv-native-lab) #image-composer .composer-generate{padding-block:5px!important}
 #image-composer .composer-generate-sparkle{width:10px;height:10px;flex-basis:10px}
}
/* Restrained pearl-white surface, retaining the existing disabled and submitting palettes. */
#image-composer .composer-generate:not(:disabled):not(.is-submitting){background:linear-gradient(155deg,#f8f6f0 0%,#ece8e0 100%)!important;border-color:#f0eee8!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 4px 20px rgba(240,238,232,.12)!important}
#image-composer .composer-generate:hover:not(:disabled):not(.is-submitting){background:linear-gradient(155deg,#fff 0%,#f3f0e9 100%)!important;border-color:#fff!important}
#image-composer .composer-generate:disabled:not(.is-submitting){background:linear-gradient(155deg,#303238 0%,#292b30 100%)!important}

/* Image quotes and handoff stages have their own subtle line below the action.
   Absolute positioning keeps the approved compact image deck dimensions stable. */
#image-composer #image-composer-status{
 position:absolute;right:19px;bottom:-14px;margin:0;
 max-width:min(68vw,420px);
 font-size:10px;line-height:12px;font-weight:500;
 text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 color:#bfc2c6;text-shadow:0 1px 5px rgba(0,0,0,.95);pointer-events:none;
}
#image-composer #image-composer-status[hidden]{display:none!important}
