.character-studio-backdrop { position:fixed; inset:0; z-index:20; display:flex; align-items:flex-end; background:#2819378c; }
.character-studio-sheet { box-sizing:border-box; width:min(620px,100%); max-height:94dvh; overflow:auto; margin:0 auto; padding:20px 18px calc(24px + env(safe-area-inset-bottom)); border-radius:26px 26px 0 0; background:#fff; box-shadow:0 -15px 50px #21152b24; }
.character-studio-sheet .sheet-head { position:sticky; top:-20px; z-index:1; padding:0 0 12px; background:#fff; }
.studio-intro { padding:12px 14px; border-radius:17px; background:#f7f1f8; }
.studio-intro>b { font-size:19px; }.studio-intro p,.studio-help { margin:7px 0 0; color:#776b7d; font-size:12px; line-height:1.55; }
.studio-stage { margin-top:16px; padding:15px; border:1px solid #eae1ee; border-radius:19px; background:#fff; }
.studio-stage-title { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.studio-stage-title b { color:#493450; font-size:16px; }.studio-stage-title span { color:#9676a3; font-size:12px; text-align:right; }
.studio-photos { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin-top:13px; }
.studio-photos figure { margin:0; min-width:0; }.studio-photos img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; background:#f2edf4; }.studio-photos figcaption { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; margin-top:4px; font-size:10px; color:#786c7c; text-align:center; }
.studio-upload { display:block; position:relative; margin-top:14px; padding:12px; border:1px dashed #c994ba; border-radius:13px; color:#874f79; font-size:13px; font-weight:700; text-align:center; cursor:pointer; }.studio-upload input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }.studio-upload.disabled { opacity:.45; pointer-events:none; }
.studio-progress { min-height:1em; margin:7px 0 0; color:#815b98; font-size:12px; }
.studio-result { display:block; width:100%; max-height:330px; margin:12px 0; border-radius:12px; object-fit:contain; background:#f5f1f6; }
.studio-stage button { width:100%; margin-top:12px; }.studio-confirmed { color:#398361; font-size:13px; font-weight:700; }.studio-locked { background:#f9f7fa; }
