<ui:UXML xmlns:ui="UnityEngine.UIElements">
    <ui:VisualElement name="camera-generator-root" class="camera-generator-root">
        <ui:ScrollView name="main-scroll" class="main-scroll">
            <ui:VisualElement class="page">
                <ui:VisualElement class="hero">
                    <ui:VisualElement class="hero-row">
                        <ui:VisualElement class="hero-copy">
                            <ui:Label text="CAMERA WORK AI" class="eyebrow" />
                            <ui:Label text="AI 카메라 생성" class="hero-title" />
                            <ui:Label text="Timeline의 모션과 음원으로 편집 가능한 Cinemachine 카메라를 생성합니다." class="hero-description" />
                        </ui:VisualElement>
                        <ui:Label text="고품질 Worker" class="backend-badge" />
                    </ui:VisualElement>
                    <ui:VisualElement class="flow-strip">
                        <ui:Label text="1  입력" class="flow-item" />
                        <ui:Label text="2  전체 생성" class="flow-item" />
                        <ui:Label text="3  샷 다듬기" class="flow-item" />
                        <ui:Label text="4  저장" class="flow-item" />
                    </ui:VisualElement>
                </ui:VisualElement>

                <ui:VisualElement name="readiness-card" class="readiness-card readiness--warning">
                    <ui:VisualElement class="readiness-dot" />
                    <ui:VisualElement class="readiness-copy">
                        <ui:Label name="readiness-title" text="Timeline 선택이 필요합니다" class="readiness-title" />
                        <ui:Label name="readiness-detail" text="현재 씬에서 모션과 음원이 있는 Timeline을 선택하세요." class="readiness-detail" />
                    </ui:VisualElement>
                </ui:VisualElement>

                <ui:VisualElement class="workflow-card">
                    <ui:VisualElement class="card-heading">
                        <ui:Label text="1" class="step-badge" />
                        <ui:VisualElement class="card-heading-copy">
                            <ui:Label text="입력 Timeline" class="card-title" />
                            <ui:Label text="모션과 음원이 있는 Timeline을 선택합니다. 기존 카메라는 사용하지 않습니다." class="card-description" />
                        </ui:VisualElement>
                    </ui:VisualElement>
                    <ui:DropdownField name="source-director-dropdown" label="원본 Timeline" class="form-field" />
                    <ui:HelpBox name="source-summary-box" message-type="Warning" text="모션과 음원이 들어 있는 원본 Timeline을 선택하세요." class="summary-box" />
                </ui:VisualElement>

                <ui:VisualElement class="workflow-card generation-card">
                    <ui:VisualElement class="card-heading">
                        <ui:Label text="2" class="step-badge" />
                        <ui:VisualElement class="card-heading-copy">
                            <ui:Label text="전체 카메라 자율 생성" class="card-title" />
                            <ui:Label text="학습된 컷 리듬과 카메라 문법으로 전체 구간을 자유롭게 구성합니다." class="card-description" />
                        </ui:VisualElement>
                    </ui:VisualElement>
                    <ui:DropdownField name="cut-rhythm-dropdown" label="컷 리듬" tooltip="자동은 음악, 동작과 작업자 컷 데이터를 함께 분석합니다." class="form-field" />
                    <ui:Label text="거리·무빙·구도는 전체 생성 후 원하는 샷만 따로 조절할 수 있습니다." class="inline-note" />
                    <ui:Toggle name="fresh-candidate-toggle" text="후보 풀도 새로 계산 (느림)" tooltip="캐시를 사용하지 않고 이번 후보를 처음부터 다시 계산합니다." class="fresh-toggle" />
                    <ui:HelpBox name="fresh-candidate-warning" message-type="Warning" text="후보 풀을 다시 계산하므로 이번 생성은 더 오래 걸립니다." class="hidden-box" />
                    <ui:Button name="generate-full-button" text="전체 카메라 자율 생성" class="primary-action" />
                </ui:VisualElement>

                <ui:VisualElement name="refinement-card" class="workflow-card refinement-card">
                    <ui:VisualElement class="card-heading">
                        <ui:Label text="3" class="step-badge" />
                        <ui:VisualElement class="card-heading-copy">
                            <ui:Label text="선택한 카메라 다듬기" class="card-title" />
                            <ui:Label text="Timeline 또는 Hierarchy에서 카메라를 선택한 뒤 필요한 샷만 다시 생성합니다." class="card-description" />
                        </ui:VisualElement>
                    </ui:VisualElement>
                    <ui:HelpBox name="selected-shot-info" message-type="None" text="Timeline의 AI 카메라를 선택하면 자동으로 연결됩니다." class="summary-box" />
                    <ui:VisualElement name="selected-shot-picker-row">
                        <ui:DropdownField name="selected-shot-dropdown" label="카메라 직접 선택" class="form-field" />
                    </ui:VisualElement>
                    <ui:Foldout name="shot-options-foldout" text="재생성 옵션" value="false" class="inner-foldout">
                        <ui:Label text="아래 설정은 선택한 카메라 한 개에만 적용됩니다." class="inline-note" />
                        <ui:VisualElement class="field-pair">
                            <ui:DropdownField name="shot-size-dropdown" label="샷 거리" class="compact-field" />
                            <ui:DropdownField name="composition-dropdown" label="인물 구도" class="compact-field" />
                        </ui:VisualElement>
                        <ui:DropdownField name="motion-dropdown" label="카메라 움직임" class="form-field" />
                        <ui:Slider name="motion-intensity-slider" label="움직임 강도" low-value="0" high-value="2" show-input-field="true" class="form-field" />
                        <ui:FloatField name="distance-field" label="직접 거리 (m)" tooltip="0이면 선택한 샷 거리와 캐릭터 크기에 맞춰 자동 결정합니다." class="form-field" />
                        <ui:Slider name="body-follow-slider" label="몸 추종 강도" low-value="0" high-value="1" show-input-field="true" tooltip="0이면 무대 기준으로 안정적이고, 1이면 캐릭터 이동을 강하게 따라갑니다." class="form-field" />
                        <ui:Button name="reset-shot-options-button" text="옵션을 자동으로 되돌리기" class="quiet-action" />
                    </ui:Foldout>
                    <ui:VisualElement class="button-row">
                        <ui:Button name="regenerate-shot-button" text="선택한 카메라 재생성" class="secondary-action grow-action" />
                        <ui:Button name="remove-result-button" text="생성 결과 지우기" class="danger-action" />
                    </ui:VisualElement>
                </ui:VisualElement>

                <ui:VisualElement name="final-card" class="workflow-card final-card">
                    <ui:VisualElement class="card-heading">
                        <ui:Label text="4" class="step-badge" />
                        <ui:VisualElement class="card-heading-copy">
                            <ui:Label text="완성본 보존" class="card-title" />
                            <ui:Label text="현재 씬을 원본과 별개의 AI_Camera_Final 씬으로 저장합니다." class="card-description" />
                        </ui:VisualElement>
                    </ui:VisualElement>
                    <ui:Button name="save-final-scene-button" text="완성본 씬으로 저장" class="secondary-action" />
                </ui:VisualElement>

                <ui:Foldout name="feedback-foldout" text="선택 사항 · 컷 수정 기록" value="false" class="utility-foldout">
                    <ui:Label text="AI 카메라 컷을 직접 수정한 뒤 기록하면 유지한 컷과 변경한 컷을 익명 데이터로 저장합니다. 씬과 Timeline 자체는 저장하지 않습니다." class="foldout-description" />
                    <ui:TextField name="editor-style-id-field" label="익명 편집 스타일 ID" class="form-field" />
                    <ui:Button name="record-correction-button" text="컷 수정 기록 저장" class="quiet-action" />
                </ui:Foldout>

                <ui:Foldout name="advanced-foldout" text="고급 · 진단" value="false" class="utility-foldout advanced-foldout">
                    <ui:Label text="경로, Worker, Seed, 캐시와 수동 복구는 문제가 있거나 세부 조정이 필요할 때만 사용하세요." class="foldout-description" />
                    <ui:VisualElement name="advanced-configuration-host" class="advanced-configuration-host" />
                    <ui:Label text="수동 작업" class="subsection-title" />
                    <ui:VisualElement class="button-row advanced-actions">
                        <ui:Button name="extract-dataset-button" text="Timeline 데이터만 추출" class="quiet-action grow-action" />
                        <ui:Button name="reapply-full-button" text="현재 결과 전체 다시 적용" class="quiet-action grow-action" />
                        <ui:Button name="reapply-shot-button" text="현재 결과로 선택 카메라 교체" class="quiet-action grow-action" />
                        <ui:Button name="build-cache-button" text="준비 캐시 만들기·갱신" class="quiet-action grow-action" />
                        <ui:Button name="refresh-diagnostics-button" text="목록·상태 새로고침" class="quiet-action grow-action" />
                    </ui:VisualElement>
                    <ui:VisualElement class="log-heading">
                        <ui:Label text="실행 로그" class="subsection-title" />
                        <ui:Button name="clear-log-button" text="지우기" class="mini-action" />
                    </ui:VisualElement>
                    <ui:TextField name="log-field" multiline="true" is-read-only="true" class="log-field" />
                </ui:Foldout>
            </ui:VisualElement>
        </ui:ScrollView>

        <ui:VisualElement name="status-footer" class="status-footer status--ready">
            <ui:VisualElement class="status-copy">
                <ui:Label name="status-message" text="모션과 음원이 들어 있는 Timeline을 선택하세요." class="status-message" />
                <ui:Label name="generation-stage-label" text="" class="generation-stage" />
                <ui:ProgressBar name="generation-progress" low-value="0" high-value="1" value="0" class="generation-progress" />
                <ui:Label name="generation-timing-label" text="생성을 시작하면 단계와 예상 시간을 여기에 표시합니다." class="generation-timing" />
                <ui:HelpBox name="applied-seed-box" message-type="Info" text="" class="applied-seed-box" />
            </ui:VisualElement>
            <ui:Button name="status-log-button" text="로그 보기" class="footer-action" />
            <ui:Button name="cancel-generation-button" text="생성 취소" class="cancel-action" />
        </ui:VisualElement>
    </ui:VisualElement>
</ui:UXML>
