.h3-cast-row { display:flex; align-items:center; gap:18px; margin-bottom:16px; min-width:0; }
.h3-cast-controls { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.h3-cast-controls button { cursor:pointer; }
.h3-cast-controls .h3-cast-portrait { position:relative; width:88px; height:100px; padding:0; overflow:hidden; border:1px solid #b59bc7; border-radius:12px; background:#f6f0e0; color:#493258; }
.h3-cast-portrait img { width:100%; height:100%; object-fit:cover; }
.h3-cast-portrait > i { font-size:28px; }
.h3-cast-portrait > span { position:absolute; bottom:0; left:0; right:0; padding:3px; background:rgba(38,29,48,.82); color:#fff; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.h3-cast-settings { display:grid; grid-template-columns:repeat(3,38px); grid-template-rows:repeat(2,38px); gap:10px; padding:5px; }
.h3-cast-controls .h3-cast-setting { position:relative; display:flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:1px solid #ab8cbf; border-radius:50%; background:#ece0f1; color:#6d477e; font-size:17px; }
.h3-cast-controls .h3-cast-setting:hover, .h3-cast-controls .h3-cast-setting.is-selected { background:#8052a0; color:#fff; }
.h3-cast-setting.is-costume { grid-area:2/1; }.h3-cast-setting.is-distance { grid-area:2/2; }.h3-cast-setting.is-other { grid-area:2/3; }
.h3-cast-count { position:absolute; top:-7px; right:-8px; padding:0 4px; min-width:20px; line-height:17px; border:1px solid #ad8abd; border-radius:8px; font-size:10px; font-weight:700; background:#eee2f5; color:#694480; }
.h3-cast-row > textarea, .ai-h3-script-form .h3-cast-row > textarea.ws-prompt-textarea { flex:1; min-width:0; min-height:100px; resize:vertical; }
.h3-cast-controls button:focus-visible { outline:2px solid #8052a0; outline-offset:3px; }
@media(max-width:767px) {
    .h3-cast-row { flex-wrap:wrap; gap:8px; }
    .h3-cast-row > textarea,
    .ai-h3-script-form .h3-cast-row > textarea.ws-prompt-textarea { flex:1 1 100%; min-height:100px; }
}

.ai-h3-character-layout.is-shot-appearance { display:block; }
.ai-h3-character-layout.is-shot-appearance .ai-h3-character-appearance { width:100%; }

.h3-prompt-matches { position:relative; min-width:0; }
.h3-cast-row > .h3-prompt-matches { flex:1; }
.h3-prompt-matches textarea { display:block; width:100%; }
.h3-cast-row .h3-prompt-matches textarea { min-height:100px; }
.h3-prompt-options { position:relative; z-index:2; max-height:12rem; overflow:auto; background:#f7efde; border:1px solid #cab994; border-radius:6px; }
.h3-prompt-options button { display:block; width:100%; text-align:left; border:0; background:transparent; color:#382b21; padding:.4rem .65rem; }
.h3-prompt-options small { color:#714e7e; margin-right:.4em; }
.h3-prompt-options button:hover,.h3-prompt-options button[aria-selected=true] { background:#e9dcec; }
@media(max-width:767px) { .h3-cast-row > .h3-prompt-matches { flex-basis:100%; } }
.h3-prompt-detail { display:block; margin-top:.25rem; color:#624b35; }

/* Swap lists keep the first-photo portrait inside each existing choice. */
.h3-cast-swap-choice { min-height: 44px; }
.h3-cast-swap-portrait { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 30px; width: 30px; height: 30px; margin-right: 8px; border-radius: 50%; overflow: hidden; }
.h3-cast-swap-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
