.portrait-tools{margin-top:14px;padding:14px 0;border-top:1px solid #dde3d7;color:#405345}
.portrait-tools h4{margin:0 0 8px;font-size:13px;font-weight:700}
.portrait-tools button,.portrait-editor button,.portrait-editor select{min-height:44px;border:1px solid #cbd5c7;border-radius:10px;background:#fffdf8;color:#405345;padding:9px 12px;font:inherit;font-size:13px;cursor:pointer}
.portrait-tools__launch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.portrait-tools__launch button{padding:8px 4px;font-size:12px;word-break:keep-all}
.portrait-tools__status:empty{display:none}
.portrait-tools__status{margin:8px 0;color:#57704f;font-size:12px;line-height:1.8;word-break:keep-all}
.portrait-tools__undo{margin-top:6px;text-decoration:underline}
.portrait-tools [hidden]{display:none!important}
.portrait-editor{box-sizing:border-box;width:min(760px,calc(100% - 32px));max-width:none;max-height:90dvh;margin:auto;padding:24px;border:1px solid #d9decf;border-radius:20px;background:#fffdf8;color:#405345;overflow:auto;font:14px/1.8 'Pretendard','Noto Sans KR',sans-serif;text-align:left}
.portrait-editor::backdrop{background:#172c2566;backdrop-filter:blur(3px)}
.portrait-editor header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.portrait-editor h2{margin:0;font:700 24px/1.5 'Gowun Batang',serif}
.portrait-editor header button{flex:none;font-size:25px;line-height:1;width:44px;padding:0}
.portrait-editor>p{font-size:13px;word-break:keep-all}
.portrait-editor__options{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.portrait-editor__options label{display:flex;align-items:center;gap:7px;min-height:44px;padding:6px 10px;border:1px solid #d9decf;border-radius:10px;cursor:pointer}
.portrait-editor input[type=checkbox]{width:17px;height:17px;accent-color:#486a55}
.portrait-editor__settings{padding:10px 12px;margin:8px 0;border-radius:12px;background:#f1f4ed}
.portrait-editor__settings label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}
.portrait-editor__settings select{min-width:0;max-width:60%;font-size:13px}
.portrait-editor__settings input[type=range]{width:55%;min-height:44px;accent-color:#486a55}
.portrait-editor__settings p{margin:5px 0 0;font-size:12px;color:#687561;word-break:keep-all}
.portrait-editor .portrait-editor__generate,.portrait-editor [data-portrait-apply]{background:#486a55;color:white;border-color:#486a55;font-weight:600}
.portrait-editor__generate{width:100%;margin-top:12px}
.portrait-editor__status{min-height:1.8em;color:#57704f;margin:10px 0}
.portrait-editor__status[data-error=true]{color:#a13e30}
.portrait-editor__comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portrait-editor__comparison figure{margin:0;min-width:0;overflow:hidden;border:1px solid #dde3d7;border-radius:12px;background:#f4f3ed}
.portrait-editor__comparison figcaption{padding:8px 10px;background:#e9eee4;font-size:13px;font-weight:600}
.portrait-editor__comparison img{display:block;width:100%;height:300px;object-fit:contain;object-position:center}
.portrait-editor__comparison figure>p{display:grid;place-items:center;min-height:160px;margin:0;padding:16px;color:#74806d;font-size:12px;text-align:center;word-break:keep-all}
.portrait-editor__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.portrait-editor .portrait-editor__privacy{margin:14px 0 0;font-size:12px;color:#74806d}
.portrait-editor button:disabled{opacity:.5;cursor:default}
.portrait-editor :focus-visible,.portrait-tools>button:focus-visible,.portrait-tools__launch button:focus-visible{outline:3px solid #aa8a50;outline-offset:3px}
body:has(.portrait-editor[open]){overflow:hidden}
@media(max-width:600px){.portrait-editor{width:100%;max-height:94dvh;margin:auto 0 0;padding:18px 16px max(20px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0}.portrait-editor h2{font-size:22px}.portrait-editor__comparison{gap:8px}.portrait-editor__comparison img{height:210px}.portrait-editor__comparison figcaption{padding:7px;font-size:12px}.portrait-editor__options{gap:6px}.portrait-editor__options label{padding:6px 8px;font-size:12px}}

/* Scene selection stays optional and never applies a background automatically. */
.portrait-backgrounds{min-width:0;margin:0;padding:0;border:0}
.portrait-backgrounds legend{font-size:13px;font-weight:700;margin-bottom:8px}
.portrait-editor .portrait-background-original{justify-content:flex-start;min-height:54px;padding:8px 12px;margin-bottom:10px;background:#fffdf8;border:1px solid #a6b59e;border-radius:12px}
.portrait-background-original span{display:block}.portrait-background-original small{display:block;font-size:11px;color:#697565}
.portrait-background-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.portrait-editor .portrait-background-choice{position:relative;display:flex;flex-direction:column;gap:0;justify-content:flex-start;min-width:0;padding:0;border:1px solid #c4d0bf;border-radius:10px;overflow:hidden;background:#fffdf8;cursor:pointer;text-align:center}
.portrait-background-choice input{position:absolute;top:6px;left:6px;width:18px;height:18px;margin:0;accent-color:#28533f}
.portrait-background-choice img{display:block;width:100%;height:78px;object-fit:cover}
.portrait-background-choice span{display:grid;place-items:center;min-height:38px;padding:5px;font-size:11px;line-height:1.4;word-break:keep-all}
.portrait-background-choice:has(input:checked),.portrait-background-original:has(input:checked){outline:2px solid #28533f;outline-offset:1px;background:#e5eddf}
.portrait-background-more{margin-top:10px;border-top:1px solid #d9e1d2}.portrait-background-more summary{min-height:44px;padding:10px 2px;font-size:12px;cursor:pointer}
.portrait-background-more .portrait-background-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.portrait-background-colors{display:flex;flex-wrap:wrap;gap:8px}.portrait-editor .portrait-background-colors label{justify-content:flex-start;min-height:44px;padding:7px;border:1px solid #c4d0bf;border-radius:10px;background:#fffdf8}
.portrait-editor header{position:sticky;top:-24px;z-index:3;margin:-24px -24px 0;padding:18px 24px 10px;background:#fffdf8}
@media(max-width:600px){.portrait-background-grid,.portrait-background-more .portrait-background-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-background-choice img{height:82px}.portrait-editor header{top:-18px;margin:-18px -16px 0;padding:12px 16px 10px}}

.portrait-backgrounds input[type=radio]{flex:none;width:18px;height:18px;min-height:0;accent-color:#28533f}
