/* MODEL_SELECTION_RELIABILITY_V25 */
/* =========================================================
   AI 스튜디오 - 프롬프트 버전
   style.css

   원칙:
   - HTML 구조는 index.html
   - 동작은 app.js
   - 디자인은 이 파일만 담당
   - 숨김 처리로 우회하지 않음
   - 같은 기능 CSS 중복 선언하지 않음
========================================================= */

/* =========================================================
   1. 기본 설정
========================================================= */

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
    font-family: Arial, "Malgun Gothic", sans-serif;
    background: #f3f4f6;
    color: #111827;
}

body {
    overflow-x: hidden;
}

button,
input,
select {
    font-family: inherit;
}

button {
    cursor: pointer;
    border: 0;
}

.hidden {
    display: none !important;
}

input,
select {
    outline: none;
}

/* =========================================================
   2. 전체 앱
========================================================= */

.app {
    min-height: 100vh;
}

.app.is-locked {
    height: 100vh;
    overflow: hidden;
}

/* =========================================================
   3. 상단 헤더
========================================================= */

.topbar {
    height: 76px;
    padding: 14px 24px;
    background: #111827;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.topbar-title h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -0.4px;
}

.topbar-title p {
    margin: 5px 0 0;
    font-size: 13px;
    color: #cbd5e1;
    font-weight: 700;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.worker-info {
    min-height: 38px;
    padding: 6px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 8px;
}

.worker-info span {
    font-size: 12px;
    color: #cbd5e1;
    font-weight: 700;
}

.worker-info strong {
    font-size: 14px;
    color: #ffffff;
    font-weight: 900;
}

.logout-btn {
    height: 38px;
    padding: 0 14px;
    border-radius: 10px;
    background: #ffffff;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}

.logout-btn:hover {
    background: #e5e7eb;
}

/* GPT / Gemini 버튼 */
.engine-tabs {
    display: flex;
    gap: 8px;
}

.engine-btn {
    min-width: 92px;
    height: 38px;
    padding: 0 18px;
    border-radius: 10px;
    background: #374151;
    color: #e5e7eb;
    font-size: 14px;
    font-weight: 800;
}

.engine-btn:hover {
    background: #4b5563;
}

.engine-btn.active {
    background: #ffffff;
    color: #111827;
}

/* =========================================================
   4. 메인 레이아웃
========================================================= */

.layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 18px;
    padding: 18px;
}

.sidebar {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.workspace {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* =========================================================
   5. 공통 패널
========================================================= */

.panel {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.panel-head h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    color: #111827;
}

/* =========================================================
   6. 선택 상품 정보 박스
   구조:
   상품명 | 현재 엔진 | 퀄리티
   --------------------------------
   카테고리
   색상
========================================================= */

.product-context {
    padding: 14px 16px;
}

.product-summary-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.product-summary-head h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 900;
    color: #111827;
    word-break: keep-all;
}

.product-summary-badges {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.summary-badge {
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.summary-badge.black {
    background: #111827;
    color: #ffffff;
}

.product-summary-line {
    height: 1px;
    margin: 12px 0;
    background: #e5e7eb;
}

.product-summary-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
}

.product-summary-info div {
    word-break: keep-all;
}

/* =========================================================
   7. 상품 목록
========================================================= */

.product-add-box {
    display: grid;
    grid-template-columns: 1fr 72px;
    gap: 8px;
    margin-bottom: 10px;
}

.product-add-box button {
    height: 36px;
    padding: 0 14px;
    border-radius: 9px;
    background: #111827;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
}

.product-add-box button:hover {
    background: #374151;
}

.search-input {
    width: 100%;
    height: 38px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 12px;
    font-size: 14px;
    background: #ffffff;
    margin-bottom: 12px;
}

.search-input:focus {
    border-color: #111827;
}

.product-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: calc(100vh - 330px);
    overflow-y: auto;
    padding-right: 2px;
}

.product-item {
    width: 100%;
    min-height: 54px;
    padding: 12px 14px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: #f9fafb;
    color: #111827;
    text-align: left;
    font-size: 15px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    transition: 0.12s ease;
}

.product-item:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
}

.product-item.active {
    background: #111827;
    color: #ffffff;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

.product-list-name {
    display: block;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 900;
    word-break: keep-all;
}

/* =========================================================
   8. 모델컷 생성 컨트롤
========================================================= */

.generate-controls {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-right: 8px;
}

.field label {
    font-size: 12px;
    color: #6b7280;
    font-weight: 800;
}

.field input {
    width: 120px;
    height: 38px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 10px;
    font-size: 14px;
}

.field input:focus {
    border-color: #111827;
}

.generate-controls button {
    height: 36px;
    padding: 0 14px;
    border-radius: 9px;
    background: #111827;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
}

.generate-controls button:hover {
    background: #374151;
}

#generateBtn {
    background: #2563eb;
}

#generateBtn:hover {
    background: #1d4ed8;
}

#downloadBtn {
    background: #047857;
}

#downloadBtn:hover {
    background: #065f46;
}

#deleteBtn {
    background: #dc2626;
}

#deleteBtn:hover {
    background: #b91c1c;
}

.status-line {
    min-height: 38px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f3f4f6;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 14px;
}

/* =========================================================
   9. 생성 결과 그리드
========================================================= */

.result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px;
}

.result-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
    transition: 0.12s ease;
}

.result-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

.result-card.selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

.result-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    background: #f3f4f6;
}

.result-card-info {
    padding: 10px;
}

.result-card-name {
    font-size: 12px;
    color: #374151;
    font-weight: 800;
    word-break: break-all;
}

/* 빈 상태 */
.empty-text {
    padding: 28px 12px;
    border: 1px dashed #d1d5db;
    border-radius: 12px;
    color: #9ca3af;
    font-size: 14px;
    text-align: center;
    background: #f9fafb;
}

/* =========================================================
   10. 작업자 로그인 화면
========================================================= */

.login-gate {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(17, 24, 39, 0.78);
    backdrop-filter: blur(4px);
}

.login-card {
    width: 100%;
    max-width: 420px;
    padding: 28px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

.login-card h1 {
    margin: 0 0 8px;
    font-size: 24px;
    font-weight: 900;
    color: #111827;
}

.login-card p {
    margin: 0 0 18px;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.5;
}

.login-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.login-form input {
    width: 100%;
    height: 44px;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    padding: 0 14px;
    font-size: 15px;
    background: #ffffff;
}

.login-form input:focus {
    border-color: #111827;
}

.login-form button {
    height: 44px;
    border-radius: 12px;
    background: #111827;
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
}

.login-form button:hover {
    background: #374151;
}

.login-error {
    min-height: 20px;
    margin-top: 10px;
    color: #dc2626;
    font-size: 13px;
    font-weight: 800;
}

/* =========================================================
   11. 상품 추가 팝업
========================================================= */

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(17, 24, 39, 0.62);
    backdrop-filter: blur(3px);
}

.modal-backdrop.open {
    display: flex;
}

.modal-card {
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.24);
}

.modal-head {
    padding: 20px 22px 16px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.modal-head h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: #111827;
}

.modal-head p {
    margin: 6px 0 0;
    font-size: 13px;
    color: #6b7280;
    font-weight: 700;
}

.modal-close-btn {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #f3f4f6;
    color: #111827;
    font-size: 24px;
    line-height: 1;
    font-weight: 800;
}

.modal-close-btn:hover {
    background: #e5e7eb;
}

.modal-body {
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.modal-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.modal-field > label {
    font-size: 13px;
    font-weight: 900;
    color: #111827;
}

.modal-field input {
    width: 100%;
    height: 42px;
    border: 1px solid #d1d5db;
    border-radius: 11px;
    padding: 0 12px;
    font-size: 14px;
    background: #ffffff;
}

.modal-field input:focus {
    border-color: #111827;
}

.field-help {
    font-size: 12px;
    color: #6b7280;
    font-weight: 700;
}

.color-image-rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.color-image-row {
    min-height: 42px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 11px;
    background: #f9fafb;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.color-image-row-top {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 8px;
    align-items: center;
}

.color-name {
    font-size: 14px;
    font-weight: 900;
    color: #111827;
}

.color-upload-btn {
    height: 32px;
    padding: 0 12px;
    border-radius: 8px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.color-upload-btn:hover {
    background: #374151;
}

.color-file-name {
    min-width: 76px;
    font-size: 12px;
    color: #6b7280;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.attached-file-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.attached-file-item {
    min-height: 32px;
    padding: 6px 8px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
}

.attached-file-name {
    min-width: 0;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.attached-file-remove {
    height: 26px;
    padding: 0 9px;
    border-radius: 7px;
    background: #dc2626;
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
}

.attached-file-remove:hover {
    background: #b91c1c;
}

.file-empty-text {
    padding: 8px 4px;
    color: #9ca3af;
    font-size: 12px;
    font-weight: 700;
}
.empty-mini-text {
    padding: 14px 12px;
    border: 1px dashed #d1d5db;
    border-radius: 11px;
    background: #f9fafb;
    color: #9ca3af;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.category-select-rows {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 4px;
}

.category-select-box {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.category-select-box label {
    font-size: 12px;
    color: #6b7280;
    font-weight: 900;
}

.category-select-box select {
    height: 38px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 0 10px;
    background: #ffffff;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}

.category-select-box select:focus {
    outline: none;
    border-color: #111827;
}

.modal-actions {
    padding: 16px 22px 20px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.modal-primary-btn,
.modal-secondary-btn {
    height: 38px;
    padding: 0 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 900;
}

.modal-primary-btn {
    background: #2563eb;
    color: #ffffff;
}

.modal-primary-btn:hover {
    background: #1d4ed8;
}

.modal-secondary-btn {
    background: #f3f4f6;
    color: #111827;
}

.modal-secondary-btn:hover {
    background: #e5e7eb;
}





/* GENERATION_WORKSPACE_START */
.generation-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.generation-workspace-grid.has-prompt-panel {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
}

.basecut-panel {
    min-width: 0;
}

.panel-head.compact {
    margin-bottom: 10px;
}

.generation-global-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.generation-global-actions > button {
    min-height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 8px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.generation-global-actions > button.danger {
    background: #dc2626;
}

.generation-global-actions > button:disabled {
    background: #cbd5e1;
    color: #64748b;
    cursor: not-allowed;
}

.basecut-color-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.basecut-color-actions button {
    height: 32px;
    padding: 0 12px;
    border-radius: 8px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.basecut-color-actions button:hover {
    background: #374151;
}

.basecut-color-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

[data-action="cancel-basecut"] {
    background: #b91c1c !important;
}

[data-action="cancel-basecut"]:hover {
    background: #991b1b !important;
}

.basecut-progress {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin: -2px 0 12px;
    padding: 10px;
    border-radius: 10px;
    background: #f8fafc;
}

.basecut-progress-track {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #e5e7eb;
}

.basecut-progress-track span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #2563eb;
    transition: width 0.2s ease;
}

.basecut-progress-text {
    min-width: 130px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    text-align: right;
}

.prompt-panel-open-btn {
    height: 32px;
    padding: 0 12px;
    border-radius: 8px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
    font-weight: 900;
}

.basecut-prompt-panel.is-collapsed {
    display: none;
}

.basecut-prompt-panel {
    position: sticky;
    top: 18px;
    max-height: calc(100vh - 36px);
    overflow: auto;
}

.prompt-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.prompt-panel-head h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
}

.prompt-panel-head button {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f3f4f6;
    color: #111827;
    font-size: 20px;
    font-weight: 900;
}

.prompt-panel-empty {
    padding: 24px 8px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
}

.prompt-meta-grid {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 7px 10px;
    margin-bottom: 14px;
    padding: 12px;
    border-radius: 10px;
    background: #f8fafc;
    font-size: 12px;
}

.prompt-meta-grid span {
    color: #6b7280;
    font-weight: 800;
}

.prompt-meta-grid strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #111827;
}

.prompt-panel-content details {
    margin-bottom: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #ffffff;
}

.prompt-panel-content summary {
    padding: 10px 12px;
    cursor: pointer;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
}

.prompt-panel-content pre {
    max-height: 280px;
    margin: 0;
    padding: 12px;
    overflow: auto;
    border-top: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #1f2937;
    font-family: Consolas, "Courier New", monospace;
    font-size: 11px;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.copy-prompt-btn {
    width: 100%;
    height: 38px;
    margin-top: 4px;
    border-radius: 9px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.basecut-correction-box {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fbff 0%, #f2f7ff 100%);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.06);
}

.basecut-correction-box.hidden { display: none; }
.basecut-correction-box h3 { margin: 0 0 6px; font-size: 13px; }
.basecut-correction-box p { margin: 0 0 10px; color: #64748b; font-size: 11px; line-height: 1.5; }
.basecut-correction-box textarea { width: 100%; min-height: 110px; padding: 10px; resize: vertical; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; font-family: inherit; font-size: 12px; line-height: 1.5; }
.basecut-correction-upload-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.basecut-correction-upload { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 12px; border: 1px solid #bfdbfe; border-radius: 9px; background: #ffffff; color: #1d4ed8; font-size: 12px; font-weight: 800; cursor: pointer; }
.basecut-correction-upload:hover { background: #eff6ff; }
.basecut-correction-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.basecut-correction-upload-summary { color: #475569; font-size: 11px; font-weight: 700; }
.basecut-correction-preview { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 10px; border: 1px solid #dbeafe; border-radius: 10px; background: #ffffff; }
.basecut-correction-preview.hidden { display: none; }
.basecut-correction-preview img { width: 58px; height: 58px; object-fit: cover; border-radius: 10px; border: 1px solid #dbeafe; background: #f8fafc; flex: 0 0 auto; }
.basecut-correction-preview-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; }
.basecut-correction-preview-meta strong { color: #0f172a; font-size: 12px; line-height: 1.35; word-break: break-all; }
.basecut-correction-preview-meta span { color: #64748b; font-size: 11px; }
#basecutCorrectionReferenceRemoveBtn { min-height: 34px; padding: 0 12px; border: 1px solid #fecaca; border-radius: 9px; background: #fff1f2; color: #be123c; font-size: 12px; font-weight: 800; }
#basecutCorrectionReferenceRemoveBtn:disabled { opacity: 0.45; cursor: default; }
.basecut-reset-model-option { display: flex; align-items: flex-start; gap: 7px; margin: 10px 0; color: #334155; font-size: 11px; font-weight: 800; }
.basecut-reset-model-option input { margin-top: 2px; }
#applyBasecutCorrectionBtn { width: 100%; min-height: 38px; margin-top: 14px; border-radius: 9px; background: #2563eb; color: #fff; font-size: 12px; font-weight: 900; }

@media (max-width: 1180px) {
    .generation-workspace-grid.has-prompt-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .basecut-prompt-panel {
        position: static;
        max-height: none;
    }
}

[data-action="delete-basecut"] {
    background: #dc2626;
}

[data-action="delete-basecut"]:hover {
    background: #b91c1c;
}

[data-action="download-basecut"] {
    background: #047857;
}

[data-action="download-basecut"]:hover {
    background: #065f46;
}

.basecut-color-sections {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.basecut-color-section {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    padding: 14px;
}

.basecut-color-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto 132px;
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
}

.basecut-color-head h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: #111827;
    flex: 0 0 auto;
}

.generation-settings-open-btn { grid-column: 4; width: 132px; margin-left: 0; flex: 0 0 auto; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; color: #0f172a; padding: 8px 12px; font-weight: 900; cursor: pointer; }
.generation-settings-open-btn.is-configured { border-color: #2563eb; color: #1d4ed8; background: #eff6ff; }
.generation-face-reference { grid-column: 1 / -1; display: grid; grid-template-columns: 180px 76px minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px; border: 1px solid #dbe4f0; border-radius: 12px; background: #f8fafc; }
.generation-face-preview { width: 66px; height: 66px; padding: 0; overflow: hidden; border: 2px solid #2563eb; border-radius: 10px; background: #fff; cursor: pointer; }
.generation-face-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.generation-face-preview em { display: none; place-items: center; height: 100%; font-style: normal; font-weight: 900; color: #64748b; }
.generation-face-preview.empty img { display: none; }
.generation-face-preview.empty em { display: grid; }
.generation-face-actions { display: flex; gap: 8px; }
.generation-face-actions button { border: 0; border-radius: 9px; padding: 10px 12px; font-weight: 900; cursor: pointer; background: #0f172a; color: #fff; }
.generation-face-actions button:last-child { background: #e2e8f0; color: #334155; }
.generation-face-actions button:disabled { opacity: .45; cursor: default; }
.generation-face-library { grid-column: 1 / -1; display: flex; gap: 9px; overflow-x: auto; padding: 10px 2px 2px; border-top: 1px solid #e2e8f0; }
.generation-face-library p { margin: 8px 0; color: #64748b; font-size: 12px; }
.generation-face-library button { flex: 0 0 82px; width: 82px; height: 102px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 12px; background: #fff; cursor: pointer; }
.generation-face-library button:hover { border-color: #2563eb; }
.generation-face-library button { position: relative; }
.generation-face-library button.is-selected { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37,99,235,.12); }
.generation-face-selected-mark { display: none; position: absolute; left: 6px; bottom: 6px; padding: 3px 6px; border-radius: 999px; background: #2563eb; color: #fff; font-size: 10px; font-weight: 900; }
.generation-face-library button.is-selected .generation-face-selected-mark { display: block; }
.generation-face-library.is-busy { pointer-events: none; opacity: .65; }
.generation-face-library img { width: 100%; height: 100%; display: block; object-fit: cover; }
.selected-face-summary { grid-column: 3; margin-left: 0; display: flex; align-items: center; justify-self: end; gap: 6px; font-size: 12px; font-weight: 900; color: #475569; }
.selected-face-summary.hidden { display: none; }
.selected-face-summary button { width: 38px; height: 38px; padding: 0; overflow: hidden; border: 2px solid #2563eb; border-radius: 8px; background: #fff; cursor: pointer; }
.selected-face-summary img { width: 100%; height: 100%; display: block; object-fit: cover; }
.selected-face-summary + .generation-settings-open-btn { margin-left: 0; }
.generation-settings-modal { position: fixed; inset: 0; z-index: 2600; display: grid; place-items: center; padding: 18px; background: rgba(15,23,42,.55); }
.generation-settings-modal.hidden { display: none; }
.generation-settings-dialog { width: min(760px, 100%); max-height: calc(100vh - 36px); overflow: auto; border-radius: 18px; background: #fff; box-shadow: 0 24px 70px rgba(15,23,42,.3); }
.generation-settings-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px 16px; border-bottom: 1px solid #e5e7eb; }
.generation-settings-head h2 { margin: 0; font-size: 21px; }
.generation-settings-head p { margin: 5px 0 0; color: #64748b; font-size: 13px; font-weight: 800; }
.generation-settings-head button { border: 0; border-radius: 9px; background: #f1f5f9; width: 36px; height: 36px; font-size: 24px; font-weight: 900; cursor: pointer; }
.generation-settings-body { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 20px 22px; }
.generation-settings-body label { display: grid; gap: 7px; font-weight: 900; color: #1e293b; }
.generation-settings-body select, .generation-settings-body textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; padding: 10px 12px; font: inherit; }
.generation-settings-prompt, .generation-settings-note, .generation-model-change-btn { grid-column: 1 / -1; }
.generation-settings-body textarea { min-height: 105px; resize: vertical; }
.generation-model-change-btn { border: 1px dashed #94a3b8; border-radius: 10px; background: #f8fafc; padding: 10px 12px; font-weight: 900; cursor: pointer; }
.generation-settings-note { margin: 0; padding: 11px 12px; border-radius: 10px; background: #eff6ff; color: #1e40af; font-size: 12px; line-height: 1.55; }
.generation-settings-actions { display: flex; justify-content: flex-end; gap: 9px; padding: 0 22px 20px; }
.generation-settings-actions button { border: 0; border-radius: 10px; padding: 11px 17px; font-weight: 900; cursor: pointer; }
#resetGenerationSettingsBtn { background: #e2e8f0; color: #334155; }
#saveGenerationSettingsBtn { background: #0f172a; color: #fff; }
@media (max-width: 600px) { .generation-settings-body { grid-template-columns: 1fr; } }

.basecut-original-strip {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    max-width: min(760px, calc(100% - 150px));
    overflow-x: auto;
    padding: 2px 2px 4px;
    scrollbar-width: thin;
}

.basecut-original-label { flex: 0 0 auto; color: #64748b; font-size: 10px; font-weight: 900; }
.basecut-original-thumb { flex: 0 0 44px; width: 44px; height: 44px; padding: 2px; overflow: hidden; border: 1px solid #d7dee9; border-radius: 7px; background: #f8fafc; cursor: zoom-in; }
.basecut-original-thumb:hover { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, .1); }
.basecut-original-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }

.basecut-color-actions {
    flex-shrink: 0;
}

.basecut-head-tools { display: flex; align-items: center; gap: 10px; }
.basecut-quantity-generator { display: grid; gap: 3px; padding: 5px 7px; border: 1px solid #dbe3ee; border-radius: 9px; background: #f8fafc; }
.basecut-quantity-generator label { display: grid; grid-template-columns: 52px 44px; align-items: center; gap: 5px; color: #334155; font-size: 10px; font-weight: 900; }
.basecut-quantity-generator input { width: 44px; height: 25px; padding: 0 3px; border: 1px solid #94a3b8; border-radius: 6px; background: #fff; color: #111827; font-size: 12px; font-weight: 900; text-align: center; }
.basecut-color-actions { display: grid; grid-template-columns: repeat(2, auto); gap: 5px; }
.basecut-color-actions button { min-width: 58px; height: 31px; padding: 0 9px; }
.basecut-color-actions [data-action="generate-basecut"], .basecut-color-actions [data-action="cancel-basecut"] { grid-column: 1 / -1; }
.basecut-side-tools { align-self: start; justify-self: end; margin-top: 14px; }

@media (max-width: 720px) {
    .basecut-color-head { display: grid; grid-template-columns: 1fr auto; align-items: flex-start; }
    .basecut-color-head h3 { grid-column: 1; }
    .basecut-original-strip { grid-column: 1 / -1; width: 100%; max-width: 100%; }
    .selected-face-summary { grid-column: 1; justify-self: start; }
    .generation-settings-open-btn { grid-column: 2; width: 132px; }
    .basecut-head-tools { align-items: stretch; }
}

.basecut-shot-group {
    margin-top: 14px;
}

.basecut-shot-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.basecut-shot-title strong {
    font-size: 14px;
    font-weight: 900;
    color: #111827;
}

.basecut-shot-title span {
    padding: 3px 8px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
}

.basecut-image-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, 260px);
    gap: 10px;
    justify-content: start;
}

.basecut-image-card {
    position: relative;
    width: 260px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
    overflow: hidden;
    cursor: pointer;
    transition: 0.12s ease;
}

.basecut-image-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

.basecut-image-card.selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

.basecut-image-card img {
    width: 100%;
    height: 320px;
    object-fit: contain;
    background: #f3f4f6;
    display: block;
    user-select: none;
    -webkit-user-drag: none;
}

.basecut-card-media {
    position: relative;
    width: 100%;
    height: 320px;
    overflow: hidden;
    background: #f3f4f6;
}

.basecut-card-media img {
    height: 100%;
}

.basecut-selection-toggle {
    position: absolute;
    top: 8px;
    right: 8px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 30px;
    padding: 5px 8px;
    border: 1px solid rgba(203, 213, 225, 0.9);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: #111827;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
}

.basecut-selection-toggle input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #2563eb;
}

.basecut-card-label {
    padding: 8px;
    font-size: 12px;
    color: #374151;
    font-weight: 800;
    word-break: break-all;
}

@media (max-width: 640px) {
    .basecut-color-head {
        align-items: flex-start;
        grid-template-columns: 1fr auto;
    }

    .basecut-color-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .basecut-color-actions button {
        flex: 1;
    }

    .basecut-image-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .basecut-image-card {
        width: 100%;
    }
}

/* 기준컷 확대 팝업 */
body.basecut-viewer-open {
    overflow: hidden;
}

.basecut-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 12000;
    padding: 18px;
    background: rgba(15, 23, 42, 0.88);
}

.basecut-viewer-dialog {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 14px;
    background: #111827;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
}

.basecut-viewer-head {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 4;
    min-height: 58px;
    padding: 10px 12px 10px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: rgba(17, 24, 39, 0.94);
    color: #ffffff;
}

.basecut-viewer-title-wrap {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.basecut-viewer-title-wrap strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
}

.basecut-viewer-title-wrap span {
    flex-shrink: 0;
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 800;
}

.basecut-viewer-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.basecut-viewer-head-actions button {
    height: 36px;
    padding: 0 12px;
    border-radius: 8px;
    background: #374151;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.basecut-viewer-head-actions .basecut-viewer-close {
    width: 38px;
    padding: 0;
    background: #ffffff;
    color: #111827;
    font-size: 23px;
}

.basecut-viewer-stage {
    position: absolute;
    inset: 58px 0 42px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.basecut-viewer-stage.is-dragging {
    cursor: grabbing;
}

.basecut-viewer-stage img {
    max-width: 92%;
    max-height: 92%;
    object-fit: contain;
    transform-origin: center center;
    will-change: transform;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.basecut-viewer-nav {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 48px;
    height: 64px;
    transform: translateY(-50%);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
    font-size: 38px;
    line-height: 1;
    font-weight: 700;
}

.basecut-viewer-prev {
    left: 14px;
}

.basecut-viewer-next {
    right: 14px;
}

.basecut-viewer-nav:disabled {
    cursor: default;
    opacity: 0.3;
}

.basecut-viewer-help {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 4;
    min-height: 42px;
    padding: 12px 16px;
    background: rgba(17, 24, 39, 0.94);
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

@media (max-width: 640px) {
    .basecut-image-viewer {
        padding: 0;
    }

    .basecut-viewer-dialog {
        border: 0;
        border-radius: 0;
    }

    .basecut-viewer-nav {
        width: 40px;
        height: 56px;
    }
}
/* GENERATION_WORKSPACE_END */

/* FULLSHOT_AND_COMPACT_BASECUT_START */
.generation-main-column { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.basecut-shot-groups-row { display: grid; grid-template-columns: minmax(620px,4fr) minmax(310px,2fr) minmax(310px,2fr); gap: 14px; overflow-x: auto; padding-bottom: 4px; }
.basecut-shot-groups-row .basecut-shot-group { min-width: 0; }
.basecut-shot-groups-row .basecut-image-grid, .fullshot-results-row .basecut-image-grid { grid-template-columns: repeat(auto-fit,145px); gap: 8px; }
.basecut-shot-groups-row .basecut-image-card, .fullshot-results-row .basecut-image-card { width: 145px; }
.basecut-shot-groups-row .basecut-card-media, .basecut-shot-groups-row .basecut-image-card img, .fullshot-results-row .basecut-card-media, .fullshot-results-row .basecut-image-card img { height: 180px; }
.basecut-shot-groups-row .basecut-card-label, .fullshot-results-row .basecut-card-label { padding: 6px 7px; font-size: 10px; }
.basecut-shot-groups-row .basecut-selection-toggle, .fullshot-results-row .basecut-selection-toggle { top: 5px; right: 5px; min-height: 26px; padding: 3px 6px; font-size: 10px; }
.fullshot-panel { min-width: 0; }
.fullshot-actions { display: flex; gap: 8px; }
.fullshot-actions button { height: 32px; padding: 0 12px; border-radius: 8px; background: #111827; color: #fff; font-size: 12px; font-weight: 900; }
#downloadFullshotBtn { background: #047857; }
#deleteFullshotBtn { background: #dc2626; }
.fullshot-controls { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 12px 0; padding: 12px; border: 1px solid #e5e7eb; border-radius: 10px; background: #f8fafc; }
.fullshot-color-choices { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fullshot-color-choice { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid #cbd5e1; border-radius: 999px; background: #fff; font-size: 12px; font-weight: 800; }
.fullshot-color-choice input { accent-color: #2563eb; }
.fullshot-results-row { display: grid; grid-template-columns: minmax(460px,3fr) minmax(150px,1fr); gap: 14px; overflow-x: auto; }
@media (max-width: 640px) {
    .basecut-shot-groups-row, .fullshot-results-row { display: flex; min-width: max-content; }
    .basecut-shot-groups-row .basecut-shot-group, .fullshot-results-row .basecut-shot-group { min-width: 310px; }
}
/* FULLSHOT_AND_COMPACT_BASECUT_END */

/* RESPONSIVE_RESULT_ROW_FIX_START */
.basecut-shot-groups-row {
    grid-template-columns: minmax(0, 1fr) 190px;
    width: 100%;
    overflow: visible;
    align-items: start;
}

.basecut-shot-groups-row .basecut-image-grid,
.fullshot-results-row .basecut-image-grid {
    width: 100%;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.basecut-shot-groups-row .basecut-image-card,
.fullshot-results-row .basecut-image-card {
    width: 100%;
    min-width: 0;
}

.basecut-shot-groups-row .basecut-card-media,
.basecut-shot-groups-row .basecut-image-card img,
.fullshot-results-row .basecut-card-media,
.fullshot-results-row .basecut-image-card img {
    width: 100%;
    height: auto;
}

.basecut-shot-groups-row .basecut-card-media,
.fullshot-results-row .basecut-card-media {
    aspect-ratio: 1 / 1.24;
}

.basecut-shot-groups-row .basecut-card-media img,
.fullshot-results-row .basecut-card-media img {
    height: 100%;
}

.basecut-shot-groups-row .empty-text,
.fullshot-results-row .empty-text {
    width: 100%;
    min-width: 0;
}

.fullshot-results-row {
    grid-template-columns: 3fr 1fr;
    width: 100%;
    overflow: visible;
}

.fullshot-front-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.fullshot-back-grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

/* INDEPENDENT_FULLSHOT_MATRIX_START */
.fullshot-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 14px;
    align-items: start;
}
.fullshot-result-groups {
    display: flex;
    gap: 14px;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 6px;
}
.fullshot-result-group { flex: 0 0 auto; min-width: 145px; }
.fullshot-result-group .basecut-image-grid {
    display: flex;
    gap: 8px;
    width: auto;
}
.fullshot-result-group .basecut-image-card { flex: 0 0 145px; width: 145px; }
.fullshot-result-group .basecut-card-media { height: 180px; aspect-ratio: auto; }
.fullshot-result-group .basecut-card-media img { width: 100%; height: 100%; object-fit: contain; }
.fullshot-side-tools { position: sticky; right: 0; display: grid; gap: 8px; align-self: start; }
.fullshot-side-tools > button,
.fullshot-side-secondary button {
    min-height: 42px;
    border-radius: 9px;
    background: #111827;
    color: #fff;
    font-weight: 900;
}
.fullshot-side-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fullshot-side-secondary #downloadFullshotBtn { background: #047857; }
.fullshot-side-secondary #deleteFullshotBtn { background: #dc2626; }
.fullshot-empty { min-height: 180px; width: 100%; }
@media (max-width: 760px) {
    .fullshot-workspace { grid-template-columns: minmax(0, 1fr); }
    .fullshot-side-tools { position: static; }
}
/* INDEPENDENT_FULLSHOT_MATRIX_END */

@media (max-width: 640px) {
    .basecut-shot-groups-row,
    .fullshot-results-row {
        display: grid;
        min-width: 0;
        overflow-x: auto;
    }
}

.basecut-side-tools {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
    width: 190px;
    min-width: 190px;
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
}

.basecut-independent-results {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    align-self: stretch;
    gap: 14px;
    overflow-x: auto;
    margin-top: 14px;
    padding-top: 5px;
    padding-bottom: 5px;
}

.basecut-independent-results .basecut-shot-group { flex: 0 0 auto; min-width: 162px; }
.basecut-independent-results .basecut-image-grid { display: flex; width: auto; gap: 8px; }
.basecut-independent-results .basecut-image-card { flex: 0 0 162px; width: 162px; }
.chronological-basecut-results .basecut-shot-group,
.chronological-basecut-results .basecut-image-grid {
    display: contents;
}
.chronological-basecut-results .basecut-shot-title {
    display: none;
}
.chronological-basecut-results .basecut-image-card {
    order: var(--generated-image-order, 0);
}
.basecut-card-shot-name {
    min-height: 25px;
    padding: 3px 2px 5px;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
    line-height: 17px;
    white-space: nowrap;
}
.basecut-shot-matrix { display: grid; gap: 6px; }
.basecut-matrix-head, .basecut-matrix-row { display: grid; grid-template-columns: minmax(0, 1fr) 48px 48px; gap: 6px; align-items: center; }
.basecut-matrix-head { color: #64748b; font-size: 10px; font-weight: 900; text-align: center; }
.basecut-matrix-head span:first-child { text-align: left; }
.basecut-matrix-row strong { color: #111827; font-size: 11px; white-space: nowrap; }
.basecut-matrix-row input { width: 48px !important; height: 32px !important; font-size: 14px !important; }
.basecut-matrix-na { text-align: center; color: #94a3b8; font-weight: 900; }
.basecut-matrix-row input.basecut-matrix-checkbox {
    position: static;
    width: 48px !important;
    height: 32px !important;
    margin: 0;
    border: 2px solid #91a6c7;
    border-radius: 8px;
    background: #fff;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 18px 13px;
}
.basecut-matrix-row input.basecut-matrix-checkbox:checked {
    border-color: #2563eb;
    background-color: #eef4ff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='13' viewBox='0 0 18 13'%3E%3Cpath d='M2 2 L9 11 L16 2' fill='none' stroke='%23111827' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.basecut-matrix-row input.basecut-matrix-checkbox:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
.basecut-matrix-row input.basecut-matrix-checkbox:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.basecut-product-shot-row {
    margin-top: 4px;
    padding-top: 7px;
    border-top: 1px solid #dbe3ee;
}
.basecut-detail-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px 48px;
    gap: 6px;
    align-items: center;
    margin-top: 2px;
    color: #111827;
    font-size: 10px;
    font-weight: 900;
    text-align: center;
}
.basecut-detail-row strong {
    overflow: visible;
}
.basecut-product-shot-label {
    overflow: hidden;
    color: #64748b;
    font-size: 9px;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}

.basecut-side-tools .basecut-quantity-generator {
    width: 100%;
    padding: 9px 10px;
    gap: 6px;
    border-width: 2px;
    border-radius: 12px;
}

.basecut-side-tools .basecut-quantity-generator label {
    grid-template-columns: minmax(0, 1fr) 70px;
    gap: 8px;
    font-size: 13px;
}

.basecut-side-tools .basecut-quantity-generator input {
    width: 70px;
    height: 36px;
    border-width: 2px;
    border-radius: 8px;
    font-size: 16px;
}

.basecut-side-tools .basecut-color-actions {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.basecut-side-tools .basecut-color-actions button {
    width: 100%;
    min-width: 0;
    height: 43px;
    padding: 0 8px;
    border-radius: 10px;
    font-size: 14px;
}

.fullshot-side-tools .basecut-color-actions #generateFullshotBtn,
.fullshot-side-tools .basecut-color-actions #cancelFullshotBtn {
    grid-column: 1 / -1;
}
/* RESPONSIVE_RESULT_ROW_FIX_END */
/* =========================================================
   12. 스크롤바
========================================================= */

.product-list::-webkit-scrollbar {
    width: 8px;
}

.product-list::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 999px;
}

.product-list::-webkit-scrollbar-track {
    background: transparent;
}

/* =========================================================
   13. 반응형
========================================================= */

@media (max-width: 980px) {
    .layout {
        grid-template-columns: 1fr;
    }

    .product-list {
        max-height: 260px;
    }

    .product-summary-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .product-summary-badges {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .topbar {
        height: auto;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .topbar-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .worker-info,
    .logout-btn,
    .engine-tabs {
        width: 100%;
    }

    .engine-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .category-select-rows {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .color-image-row {
        grid-template-columns: 1fr;
    }

    .color-file-name {
        max-width: none;
        text-align: left;
    }
}

@media (max-width: 640px) {
    .generate-controls {
        align-items: stretch;
    }

    .generate-controls button {
        flex: 1;
    }

    .field {
        width: 100%;
        margin-right: 0;
    }

    .field input {
        width: 100%;
    }
}

/* 기존 첨부 이미지 태그 스타일 START */
.attached-file-item {
    grid-template-columns: 1fr auto auto;
}

.attached-file-tag {
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.attached-file-tag.new {
    background: #dbeafe;
    color: #1d4ed8;
}

.saved-file {
    background: #ffffff;
}

.new-file {
    background: #f8fbff;
}
/* 기존 첨부 이미지 태그 스타일 END */

/* WORKER_LOGIN_ERROR_CSS_START */

.worker-login-error {
    min-height: 18px;
    margin-top: 8px;
    color: #dc2626;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.35;
}

/* WORKER_LOGIN_ERROR_CSS_END */

/* IMPORT_PRODUCTS_CSS_START */

.import-products-open-btn {
    height: 34px;
    padding: 0 14px;
    border: 0;
    border-radius: 10px;
    background: #111827;
    color: #ffffff;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}

.import-products-open-btn:hover {
    opacity: 0.9;
}

.import-products-modal.hidden {
    display: none;
}

.import-products-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(5px);
}

.import-products-dialog {
    width: min(820px, calc(100vw - 40px));
    height: min(720px, calc(100vh - 40px));
    max-height: min(720px, calc(100vh - 40px));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28);
}

.import-products-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 24px 26px 18px;
    border-bottom: 1px solid #e5e7eb;
}

.import-products-head h2 {
    margin: 0 0 6px;
    color: #111827;
    font-size: 22px;
    font-weight: 950;
}

.import-products-head p {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    font-weight: 700;
}

.import-products-close-btn {
    height: 34px;
    padding: 0 14px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #ffffff;
    color: #374151;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.import-products-search-row {
    display: grid;
    grid-template-columns: 1fr 88px;
    gap: 10px;
    padding: 18px 26px 12px;
}

.import-products-search-row input {
    height: 38px;
    padding: 0 13px;
    border: 1px solid #d1d5db;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 700;
    outline: none;
}

.import-products-search-row button {
    border: 0;
    border-radius: 11px;
    background: #111827;
    color: #ffffff;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.import-products-message {
    min-height: 18px;
    padding: 0 26px 10px;
    color: #dc2626;
    font-size: 13px;
    font-weight: 900;
}

.import-products-list-head {
    display: grid;
    grid-template-columns: 34px 1fr 90px 150px 110px;
    gap: 10px;
    padding: 10px 26px;
    border-top: 1px solid #f3f4f6;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #6b7280;
    font-size: 12px;
    font-weight: 950;
}

.import-products-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 8px 26px 24px;
}

.import-products-row {
    display: grid;
    grid-template-columns: 34px 1fr 90px 150px 110px;
    gap: 10px;
    align-items: center;
    min-height: 48px;
    border-bottom: 1px solid #f3f4f6;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}

.import-products-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.import-products-count {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
}

.import-products-status {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 12px;
    font-weight: 950;
}

.import-products-status strong {
    color: #111827;
    font-size: 12px;
}

.import-products-status span {
    color: inherit;
}

.import-products-status.available {
    color: #047857;
}

.import-products-status.own {
    color: #2563eb;
}

.import-products-status.locked {
    color: #dc2626;
}

.import-products-action-btn {
    height: 32px;
    border: 0;
    border-radius: 9px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-weight: 950;
    cursor: pointer;
}

.import-products-action-btn:disabled {
    background: #d1d5db;
    color: #6b7280;
    cursor: not-allowed;
}

.import-products-empty {
    padding: 42px 0;
    color: #6b7280;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
}

.import-products-select-wrap { display: grid; place-items: center; }
.import-products-select,
#selectAllImportProducts { width: 17px; height: 17px; accent-color: #2563eb; cursor: pointer; }
.import-products-select:disabled { cursor: not-allowed; opacity: 0.35; }
.import-products-batch-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 14px 26px 20px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}
.import-products-batch-actions strong { margin-right: auto; font-size: 13px; }
.import-products-batch-actions button {
    min-width: 170px;
    height: 38px;
    border: 0;
    border-radius: 10px;
    background: #111827;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}
.import-products-batch-actions button:disabled { background: #cbd5e1; color: #64748b; cursor: not-allowed; }

/* IMPORT_PRODUCTS_CSS_END */

/* PRODUCT_SEARCH_IMPORT_ROW_CSS_START */

.product-search-import-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px;
    column-gap: 8px;
    align-items: stretch;
    width: 100%;
    margin: 8px 0 10px;
}

.product-search-import-row > input {
    display: block;
    width: 100%;
    min-width: 0;
    height: 38px;
    margin: 0;
    padding: 0 13px;
    box-sizing: border-box;
    border-radius: 10px;
    line-height: 38px;
}

.product-search-import-row > .import-products-open-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 38px;
    min-height: 38px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border-radius: 10px;
    line-height: 1;
}

/* PRODUCT_SEARCH_IMPORT_ROW_CSS_END */



/* IMAGE_QUALITY_CSS_START */
.image-quality-control {
    display: flex;
    align-items: center;
    gap: 8px;
}
.image-quality-label {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
.image-quality-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}
.image-quality-btn {
    height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}
.image-quality-btn.active {
    background: #111827;
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
}
/* IMAGE_QUALITY_CSS_END */

/* GENERATION_QUEUE_UI_START */
.generation-queue-panel { padding: 12px; border-radius: 14px; }
.generation-queue-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.generation-queue-title { display: flex; align-items: center; gap: 7px; min-width: 0; }
.generation-queue-title h2 { margin: 0; font-size: 15px; font-weight: 900; color: #111827; }
.generation-queue-title span { padding: 2px 7px; border-radius: 999px; background: #eef2f7; color: #475569; font-size: 10px; font-weight: 900; }
#clearGenerationQueueBtn { padding: 5px 7px; border-radius: 7px; background: #f1f5f9; color: #475569; font-size: 10px; font-weight: 900; }
.generation-queue-list { max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: 7px; }
.generation-queue-empty { padding: 9px 5px; color: #94a3b8; font-size: 11px; text-align: center; }
.generation-queue-item { padding: 9px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; }
.generation-queue-item.is-running { border-color: #2563eb; background: #eff6ff; }
.generation-queue-item.is-failed { border-color: #fecaca; background: #fff7f7; }
.generation-queue-item-top, .generation-queue-item-bottom { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.generation-queue-product { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #0f172a; font-size: 12px; font-weight: 900; }
.generation-queue-kind { flex-shrink: 0; padding: 2px 6px; border-radius: 999px; background: #e2e8f0; color: #334155; font-size: 9px; font-weight: 900; }
.generation-queue-meta { margin: 4px 0 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #64748b; font-size: 10px; font-weight: 700; }
.generation-queue-status { color: #475569; font-size: 10px; font-weight: 900; }
.generation-queue-item.is-running .generation-queue-status { color: #1d4ed8; }
.generation-queue-item.is-failed .generation-queue-status { color: #dc2626; }
.generation-queue-action { flex-shrink: 0; padding: 5px 8px; border-radius: 7px; background: #111827; color: #fff; font-size: 10px; font-weight: 900; }
.generation-queue-action.cancel-waiting { background: #64748b; }
.generation-queue-error { margin-top: 6px; color: #dc2626; font-size: 9px; line-height: 1.35; word-break: break-word; }
/* GENERATION_QUEUE_UI_END */
/* PRODUCT_FLATSHOT_CSS_START */
.flatshot-color-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 12px;
}
.flatshot-color-section {
    padding: 14px;
    border: 1px solid #dde3ec;
    border-radius: 14px;
    background: #fff;
}
.flatshot-color-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.flatshot-color-section h3 {
    margin: 0;
    font-size: 18px;
}
.flatshot-results {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    min-height: 112px;
    align-content: start;
}
.flatshot-results > .empty-text {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 150px;
    min-height: 108px;
    padding: 10px;
    box-sizing: border-box;
    border: 1px dashed #cfd8e6;
    border-radius: 11px;
    text-align: center;
}
.flatshot-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #dce2eb;
    border-radius: 12px;
    background: #f7f8fa;
}
.flatshot-card.selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .2);
}
.flatshot-card-media {
    position: relative;
}
.flatshot-selection-toggle {
    position: absolute;
    top: 7px;
    right: 7px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 7px;
    border: 1px solid #d5dce7;
    border-radius: 8px;
    background: rgba(255, 255, 255, .96);
    color: #111827;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}
.flatshot-selection-toggle input {
    margin: 0;
}
.flatshot-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #fff;
    cursor: zoom-in;
}
.flatshot-card strong {
    display: block;
    padding: 8px;
    font-size: 12px;
}
.flatshot-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    margin: 0;
}
.flatshot-actions button {
    min-height: 34px;
    padding: 7px 11px;
    border: 0;
    border-radius: 9px;
    color: #fff;
    background: #111827;
    white-space: nowrap;
    font-weight: 700;
}
.flatshot-actions button.danger { background: #dc2626; }
@media (max-width: 1200px) {
    .flatshot-color-sections { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .flatshot-color-header {
        align-items: stretch;
        flex-direction: column;
    }
    .flatshot-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .flatshot-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* PRODUCT_FLATSHOT_CSS_END */
.basecut-product-shot-control {
    display: grid;
    gap: 7px;
    margin-top: 8px;
    padding-top: 9px;
    border-top: 1px solid #dbe3ee;
}

.basecut-product-shot-control > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.basecut-product-shot-control strong {
    font-size: 12px;
    color: #172033;
}

.basecut-product-shot-control span {
    font-size: 10px;
    color: #68758a;
    text-align: right;
}

.basecut-product-shot-control button {
    width: 100%;
    min-height: 32px;
}

.product-shot-integrated-group {
    padding-left: 0;
    border-left: 0;
}

/* MANUAL_MODEL_IDENTITY_UI_START */
.basecut-identity-control {
    position: relative;
    display: grid;
    grid-template-rows: 29px 201px 31px;
    flex: 0 0 162px;
    width: 162px;
    overflow: hidden;
    border: 2px solid #111827;
    border-radius: 19px;
    background: #111827;
    order: -2147483647;
}

.basecut-identity-head,
.basecut-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    min-height: 29px;
    padding: 3px 6px 3px 8px;
    background: #fff;
}

.basecut-identity-label {
    display: block;
    min-width: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 900;
    color: #111827;
}

.basecut-identity-preview {
    position: relative;
    width: 100%;
    height: 201px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #f4f5f7;
    cursor: zoom-in;
}

.basecut-identity-preview:disabled {
    cursor: default;
}

.basecut-identity-preview img {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.12);
    background: #f4f5f7;
}

.basecut-identity-control.has-identity .basecut-identity-preview img {
    display: block;
}

.basecut-identity-empty {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    padding: 12px;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.45;
    color: #94a3b8;
    text-align: center;
}

.basecut-identity-control.has-identity .basecut-identity-empty {
    display: none;
}

.basecut-identity-change {
    width: calc(100% + 4px);
    min-height: 31px;
    padding: 0 8px;
    margin: 0 -2px -2px;
    border: 0;
    border-radius: 0 0 17px 17px;
    background: #111827;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.basecut-identity-change:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.basecut-identity-selection {
    position: static;
    display: grid;
    place-items: center;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border: 1px solid rgba(203, 213, 225, .9);
    border-radius: 8px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 2px 8px rgba(15, 23, 42, .12);
    cursor: pointer;
}

.basecut-identity-selection input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #2563eb;
}

.basecut-identity-control.selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .18);
}

.basecut-independent-results .basecut-card-head {
    height: 29px;
}

.basecut-independent-results .basecut-card-head .basecut-card-shot-name {
    min-width: 0;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.basecut-independent-results .basecut-card-head .basecut-selection-toggle {
    position: static;
    display: grid;
    place-items: center;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    min-height: 26px;
    padding: 0;
    border-radius: 8px;
}

.basecut-independent-results .basecut-card-media img {
    object-fit: cover;
    transform: scale(1.1);
    transform-origin: center;
}

.fullshot-result-groups {
    padding-top: 5px;
}

.fullshot-result-group {
    min-width: 162px;
}

.fullshot-result-group .basecut-image-card {
    flex: 0 0 162px;
    width: 162px;
}

.fullshot-result-group .basecut-card-head {
    height: 29px;
}

.fullshot-result-group .basecut-card-head .basecut-card-shot-name {
    min-width: 0;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fullshot-result-group .basecut-card-head .basecut-selection-toggle {
    position: static;
    display: grid;
    place-items: center;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    min-height: 26px;
    padding: 0;
    border-radius: 8px;
}

.fullshot-result-group .basecut-card-media {
    width: 100%;
    height: 201px;
    aspect-ratio: auto;
}

.fullshot-result-group .basecut-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    transform-origin: center;
}
/* MANUAL_MODEL_IDENTITY_UI_END */


/* GENERATION_SETTINGS_APPLY_FLOW_V26 */
.basecut-color-head {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    margin-bottom: 12px;
}
.basecut-color-head h3 {
    flex: 0 0 auto !important;
    margin: 0;
}
.generation-settings-open-btn {
    grid-column: auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 82px;
    height: 34px;
    margin: 0 !important;
    padding: 0 13px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    color: #334155 !important;
    font-size: 12px;
    font-weight: 900;
    line-height: 32px;
    cursor: pointer;
    box-shadow: none !important;
}
.generation-settings-open-btn:hover {
    border-color: #64748b !important;
    background: #f8fafc !important;
}
.generation-settings-open-btn.is-configured {
    border-color: #0f172a !important;
    background: #0f172a !important;
    color: #ffffff !important;
}
.basecut-original-strip {
    flex: 1 1 auto !important;
    max-width: none !important;
    min-width: 0;
}
.selected-face-summary {
    display: none !important;
}
@media (max-width: 720px) {
    .basecut-color-head { flex-wrap: wrap !important; }
    .basecut-original-strip {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}




/* BASECUT_GLOBAL_COUNT_BADGE_V39D */
.generation-asset-selection-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    min-height: 32px;
    padding: 0 8px;
    border-radius: 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

#toggleAllBasecutImagesBtn { min-width: 92px; }
#downloadGenerationAssetsBtn { min-width: 72px; }
#deleteGenerationAssetsBtn { min-width: 56px; }
#openPromptPanelBtn { min-width: 64px; }

/* UNIFIED_GENERATION_CHRONOLOGY_V53 */
.chronological-generated-strip-v53 {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    gap: 8px;
    min-width: max-content;
}
.chronological-generated-strip-v53.hidden {
    display: none;
}
.chronological-generated-strip-v53 .basecut-image-card {
    flex: 0 0 162px;
    width: 162px;
}

/* UNIFIED_COMPOSITION_STEPS_V77 */
.fullshot-panel .panel-head.compact{display:flex;align-items:center;gap:8px;}
.fullshot-source-mode-buttons-v77{display:flex;align-items:center;gap:5px;}
.fullshot-source-mode-buttons-v77 button{height:30px;padding:0 11px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;font-size:11px;font-weight:800;cursor:pointer;}
.fullshot-source-mode-buttons-v77 button.is-active{background:#111827;border-color:#111827;color:#fff;}
.fullshot-main-column-v77{min-width:0;display:grid;gap:12px;}
.fullshot-source-stage-v77{border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;padding:12px;display:grid;gap:12px;}
.fullshot-source-stage-v77.hidden{display:none!important;}
.fullshot-source-stage-head-v77{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#334155;}
.fullshot-source-stage-head-v77 strong{font-size:13px;color:#0f172a;}
.fullshot-source-color-v77{display:grid;gap:7px;padding-top:10px;border-top:1px solid #e2e8f0;}
.fullshot-source-color-title-v77{display:flex;align-items:center;gap:8px;font-size:11px;}
.fullshot-source-color-title-v77 strong{font-size:12px;color:#111827;}
.fullshot-source-color-title-v77 span{color:#64748b;}
.fullshot-source-grid-v77{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:2px 2px 8px;}
.fullshot-source-card-v77{position:relative;flex:0 0 120px;width:120px;border:2px solid transparent;border-radius:10px;background:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left;box-shadow:0 0 0 1px #dbe3ee inset;}
.fullshot-source-card-v77 img{display:block;width:120px;height:150px;object-fit:cover;background:#fff;}
.fullshot-source-card-label-v77{display:block;padding:6px 7px;font-size:9px;font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fullshot-source-card-check-v77{display:none;position:absolute;right:5px;top:5px;z-index:2;width:22px;height:22px;border-radius:50%;background:#2563eb;color:#fff;align-items:center;justify-content:center;font-size:13px;font-weight:900;}
.fullshot-source-card-v77.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12);}
.fullshot-source-card-v77.is-selected .fullshot-source-card-check-v77{display:flex;}
.fullshot-upload-slot-v77{display:flex;align-items:center;gap:10px;min-height:100px;padding:9px;border:1px dashed #94a3b8;border-radius:10px;background:#fff;}
.fullshot-upload-slot-v77>img{width:80px;height:96px;object-fit:cover;border-radius:7px;border:1px solid #e2e8f0;}
.fullshot-upload-slot-v77>div:not(.fullshot-upload-empty-v77){display:grid;gap:3px;min-width:0;}
.fullshot-upload-slot-v77>div strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fullshot-upload-slot-v77>div span,.fullshot-upload-empty-v77{font-size:10px;color:#64748b;}
.fullshot-upload-button-v77{margin-left:auto;height:32px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:#111827;color:#fff;font-size:10px;font-weight:800;cursor:pointer;}
.fullshot-product-row-v77 strong{color:#111827;}

/* SETCUT_UI_WORKFLOW_V83 */
.fullshot-panel{overflow-anchor:none;}
.fullshot-panel .panel-head.compact{justify-content:flex-start!important;align-items:center!important;gap:7px!important;flex-wrap:wrap;}
.fullshot-panel .panel-head.compact h2{margin-right:2px;}
.fullshot-source-mode-buttons-v77{margin-left:0!important;}
#fullshotQuickGenerateV83{margin-left:10px;height:32px;min-width:72px;padding:0 18px;border:0;border-radius:8px;background:#111827;color:#fff;font-size:12px;font-weight:900;cursor:pointer;}
#fullshotQuickGenerateV83:disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed;}
.fullshot-workspace{grid-template-columns:minmax(0,1fr)!important;}
.fullshot-main-column-v77{width:100%;gap:9px!important;}
.fullshot-source-stage-v77{padding:10px!important;gap:8px!important;background:#fbfcfe!important;}
.fullshot-source-stage-head-v77{justify-content:flex-start!important;min-height:22px;}
.fullshot-source-stage-head-v77 strong{font-size:12px!important;}
.fullshot-source-color-v77{gap:5px!important;padding-top:8px!important;}
.fullshot-source-grid-v77{display:flex!important;flex-wrap:wrap!important;gap:6px!important;overflow:visible!important;padding:1px 0 3px!important;}
.fullshot-source-card-v77{flex:0 0 88px!important;width:88px!important;border-radius:8px!important;}
.fullshot-source-card-v77 img{width:88px!important;height:96px!important;object-fit:cover!important;}
.fullshot-source-card-label-v77{padding:5px 6px!important;font-size:9px!important;}
.fullshot-source-card-check-v77{width:20px!important;height:20px!important;right:4px!important;top:4px!important;font-size:12px!important;}
.fullshot-target-selector-v83{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:2px 0 5px;}
.fullshot-target-selector-v83>strong{margin-right:3px;font-size:11px;color:#334155;}
.fullshot-target-chip-v83{height:27px;padding:0 9px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;font-size:10px;font-weight:800;cursor:pointer;}
.fullshot-target-chip-v83.is-active{background:#111827;border-color:#111827;color:#fff;}
.fullshot-upload-slot-v77{min-height:78px!important;padding:7px!important;}
.fullshot-upload-slot-v77>img{width:62px!important;height:70px!important;}

/* SETCUT_FLEXIBLE_SELECTION_V84 */
.fullshot-source-color-title-v77 span{font-size:11px;color:#64748b;}
.fullshot-direct-toolbar-v84{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:6px 0 2px;
}
.fullshot-direct-toolbar-left-v84{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.fullshot-direct-toolbar-left-v84 strong{font-size:12px;color:#0f172a;}
.fullshot-direct-toolbar-left-v84 span{font-size:11px;color:#64748b;}
.fullshot-direct-upload-button-v84{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:32px;
    padding:0 14px;
    border-radius:8px;
    background:#111827;
    color:#fff;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    white-space:nowrap;
}
.fullshot-direct-grid-v84{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:6px 0 2px;
}
.fullshot-direct-empty-v84{
    padding:12px 14px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#fff;
    color:#64748b;
    font-size:12px;
}
.fullshot-direct-card-v84{
    position:relative;
    width:96px;
    border:1px solid #dbe2ea;
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}
.fullshot-direct-card-v84 img{
    display:block;
    width:96px;
    height:104px;
    object-fit:cover;
}
.fullshot-direct-card-v84 span{
    display:block;
    padding:6px 6px 7px;
    font-size:9px;
    color:#334155;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.fullshot-direct-remove-v84{
    position:absolute;
    top:4px;
    right:4px;
    width:20px;
    height:20px;
    border:0;
    border-radius:999px;
    background:rgba(15,23,42,.88);
    color:#fff;
    font-size:14px;
    line-height:20px;
    cursor:pointer;
}


/* SETCUT_COVER_UI_V88B */
.fullshot-workspace > aside{display:none!important;}
.fullshot-main-column-v77{display:grid;gap:14px;}
.fullshot-source-stage-v77{border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:16px;display:grid;gap:14px;box-shadow:0 1px 3px rgba(15,23,42,.04);}
.fullshot-source-mode-buttons-v77{display:flex;align-items:center;gap:8px;}
.fullshot-source-mode-buttons-v77 button{height:34px;padding:0 14px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:12px;font-weight:800;cursor:pointer;}
.fullshot-source-mode-buttons-v77 button.is-active{background:#0f172a;border-color:#0f172a;color:#fff;}
.setcut-toolbar-v88{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:14px;background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);}
.setcut-toolbar-copy-v88{display:grid;gap:4px;min-width:0;}
.setcut-toolbar-copy-v88 strong{font-size:15px;color:#0f172a;}
.setcut-toolbar-copy-v88 span{font-size:12px;color:#64748b;line-height:1.45;}
.setcut-toolbar-actions-v88{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.setcut-counter-v88{height:34px;padding:0 12px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.setcut-generate-btn-v88{height:40px;padding:0 18px;border:0;border-radius:12px;background:#0f172a;color:#fff;font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.12);}
.setcut-generate-btn-v88:disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed;box-shadow:none;}
.setcut-selected-stage-v88{display:grid;gap:14px;}
.setcut-group-v88{padding-top:0;border-top:0;}
.fullshot-source-color-v77{display:grid;gap:8px;}
.fullshot-source-color-title-v77{display:flex;align-items:center;gap:8px;}
.fullshot-source-color-title-v77 strong{font-size:13px;color:#0f172a;}
.fullshot-source-color-title-v77 span{font-size:11px;color:#64748b;}
.fullshot-source-grid-v77{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;}
.fullshot-source-card-v77{border-radius:14px;box-shadow:0 0 0 1px #dbe3ee inset, 0 1px 2px rgba(15,23,42,.04);}
.fullshot-source-card-v77 img{border-radius:12px 12px 0 0;}
.fullshot-source-card-v77.is-selected{box-shadow:0 0 0 2px rgba(37,99,235,.18), 0 0 0 1px #2563eb inset;}
@media (max-width: 980px){.setcut-toolbar-v88{grid-template-columns:1fr;display:grid;}.setcut-toolbar-actions-v88{justify-content:flex-start;}}

/* SETCUT_UI_CLEANUP_V88C */
.setcut-toolbar-v88{
    display:none !important;
}
.setcut-direct-toolbar-v88c{
    display:flex !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:0 !important;
}
.setcut-direct-left-v88c{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    width:auto !important;
    flex:0 0 auto !important;
}
.setcut-direct-left-v88c strong{
    margin:0 !important;
}
.setcut-direct-left-v88c span{
    margin:0 !important;
    white-space:nowrap;
}
.setcut-direct-upload-v88c{
    margin:0 0 0 4px !important;
    flex:0 0 auto !important;
}

/* UNIFIED_CUT_TABS_V89 */
.cut-tab-header-v89{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    flex-wrap:nowrap !important;
}
.cut-tabs-v89{
    display:flex;
    align-items:center;
    gap:2px;
    flex:0 0 auto;
}
.cut-tab-btn-v89{
    height:36px;
    padding:0 14px;
    border:0;
    background:transparent;
    color:#0f172a;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
    border-bottom:2px solid transparent;
}
.cut-tab-btn-v89.is-active{
    border-bottom-color:#0f172a;
}
.cut-tab-body-v89{
    width:100%;
}
.cut-tab-set-body-v89{
    display:none;
}
[data-unified-cut-tabs-v89="1"] + h1,
[data-unified-cut-tabs-v89="1"] + h2,
[data-unified-cut-tabs-v89="1"] + h3{
    display:none !important;
}
[data-unified-cut-source-v89="1"]{
    display:none !important;
}

/* UNIFIED_CUT_TABS_V89B */
[data-cut-set-host-v89b="1"]{
    width:100%;
    display:none;
}
[data-cut-set-host-v89b="1"] > [data-unified-cut-source-v89="1"]{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}
[data-cut-set-host-v89b="1"] > [data-unified-cut-source-v89="1"] > .panel-head,
[data-cut-set-host-v89b="1"] > [data-unified-cut-source-v89="1"] > .card-head,
[data-cut-set-host-v89b="1"] > [data-unified-cut-source-v89="1"] > header,
[data-cut-set-host-v89b="1"] > [data-unified-cut-source-v89="1"] > .section-head{
    display:none !important;
}

/* UNIFIED_CUT_TABS_V90 */
[data-unified-cut-tabs-v90="1"]{
    width:100%;
}
.cut-tabs-v90{
    display:flex;
    align-items:center;
    gap:2px;
    flex:0 0 auto;
}
.cut-tab-btn-v90{
    height:36px;
    padding:0 14px;
    border:0;
    border-bottom:2px solid transparent;
    background:transparent;
    color:#0f172a;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.cut-tab-btn-v90.is-active{
    border-bottom-color:#0f172a;
}
.cut-tab-shared-header-v90{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    flex-wrap:nowrap !important;
}
.cut-tab-content-v90{
    width:100%;
}
#setcutTabContentV90{
    display:none;
}
.setcut-inline-controls-v90{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:46px;
    margin-bottom:10px;
}
.setcut-inline-controls-v90:empty{
    display:none;
}

/* UNIFIED_CUT_HEADER_WIDTH_V90D */
.cut-tab-shared-header-v90{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
}
.cut-tab-shared-header-v90 > *{
    min-width:0 !important;
}
.cut-tab-shared-header-v90 > :last-child{
    margin-left:auto !important;
    max-width:calc(100% - 150px) !important;
    min-width:0 !important;
    flex:0 1 auto !important;
}
.cut-tab-shared-header-v90 > :last-child,
.cut-tab-shared-header-v90 > :last-child > div{
    box-sizing:border-box !important;
}
.cut-tab-shared-header-v90 > :last-child{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    flex-wrap:wrap !important;
}

/* UNIFIED_CUT_HEADER_ROW_V90E */
.cut-tab-shared-header-v90{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

.cut-tab-shared-header-v90 > [data-unified-cut-tabs-v90="1"],
.cut-tab-shared-header-v90 > .cut-tabs-v90{
    flex:0 0 auto !important;
    min-width:max-content !important;
}

.cut-tab-shared-header-v90 > :last-child{
    margin-left:auto !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:nowrap !important;
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    gap:8px !important;
    overflow:visible !important;
}

.cut-tab-shared-header-v90 > :last-child > *{
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
}

.cut-tab-shared-header-v90 button{
    white-space:nowrap !important;
    word-break:keep-all !important;
}

/* CUT_HEADER_ACTIONS_V91 */
.cut-tab-shared-header-v90{
    display:flex !important;
    align-items:center !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
}

.cut-tabs-v90{
    flex:0 0 auto !important;
    min-width:max-content !important;
}

.cut-header-actions-v91{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:nowrap !important;
    gap:8px !important;

    margin-left:auto !important;
    margin-right:0 !important;

    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    flex:0 0 auto !important;

    position:static !important;
    inset:auto !important;
    transform:none !important;
    box-sizing:border-box !important;
    overflow:visible !important;
}

.cut-header-actions-v91 > *{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    position:static !important;
    inset:auto !important;
    transform:none !important;

    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;

    margin:0 !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
}

.cut-header-actions-v91 button{
    width:auto !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
}

/* V90D/V90E에서 마지막 자식만 오른쪽 영역으로 취급하던 규칙 무력화 */
.cut-tab-shared-header-v90 > :last-child{
    margin-left:0 !important;
    max-width:none !important;
    min-width:0 !important;
    flex:initial !important;
}
.cut-tab-shared-header-v90 > .cut-header-actions-v91{
    margin-left:auto !important;
    min-width:max-content !important;
    flex:0 0 auto !important;
}

/* CUT_HEADER_ANCHOR_V91B */
.cut-tab-shared-header-v90{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding-right:470px !important;
    overflow:visible !important;
}

.cut-header-actions-v91{
    position:absolute !important;
    right:12px !important;
    top:50% !important;
    transform:translateY(-50%) !important;

    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:nowrap !important;
    gap:8px !important;

    width:auto !important;
    max-width:calc(100% - 170px) !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
}

.cut-header-actions-v91 > *{
    position:static !important;
    inset:auto !important;
    transform:none !important;

    flex:0 0 auto !important;
    width:auto !important;
    min-width:max-content !important;
    max-width:none !important;

    margin:0 !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
}

.cut-header-actions-v91 button{
    white-space:nowrap !important;
    word-break:keep-all !important;
    width:auto !important;
    min-width:max-content !important;
}

/* 이전 V90D/V90E 규칙 무력화 */
.cut-tab-shared-header-v90 > :last-child{
    margin-left:0 !important;
    flex:initial !important;
    max-width:none !important;
    min-width:0 !important;
}

@media (max-width: 1100px){
    .cut-tab-shared-header-v90{
        padding-right:420px !important;
    }
    .cut-header-actions-v91{
        right:8px !important;
        gap:6px !important;
    }
}

/* EXTRA_PROMPT_COUNTER_SAFE_STYLE_V116C */
.generation-extra-prompt-counter-v116c {
    margin-top: 6px;
    text-align: right;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    color: #64748b;
    user-select: none;
}

.generation-extra-prompt-counter-v116c.near-limit {
    color: #b45309;
}

.generation-extra-prompt-counter-v116c.at-limit {
    color: #dc2626;
}

/* PRODUCT_FRONT_BACK_PROP_EXCLUDE_STYLE_V118 */
.v118-generation-quick-controls {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.v118-product-cut-row {
    display: grid;
    grid-template-columns: minmax(56px, 1fr) 58px 58px;
    align-items: center;
    gap: 6px;
}

.v118-product-cut-title {
    font-size: 13px;
    font-weight: 700;
    color: #334155;
}

.v118-product-cut-field {
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: #64748b;
}

.v118-product-cut-field input {
    width: 100%;
    min-width: 0;
    height: 28px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
}

.v118-prop-exclude-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    min-height: 28px;
    padding: 0 9px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    user-select: none;
}

.v118-prop-exclude-toggle:has(input:checked) {
    border-color: #334155;
    background: #f1f5f9;
    color: #0f172a;
}

.v118-prop-exclude-toggle input {
    margin: 0;
}

/* PRODUCTCUT_SIMPLE_ALIGNED_UI_STYLE_V118E */

/* V118 quick panel stays inside the existing generation card. */
[data-v118-quick-controls].v118e-quick-controls {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 6px 0 0 0 !important;
    padding: 0 !important;
    gap: 8px !important;
    overflow: visible !important;
}

/*
 * Same three-column rhythm as the existing rows:
 * label | front | back
 * 56 + 8 + 46 + 8 + 46 = 164px.
 */
[data-v118-quick-controls].v118e-quick-controls .v118e-product-cut-row {
    display: grid !important;
    grid-template-columns: 56px 46px 46px !important;
    align-items: center !important;
    justify-content: start !important;
    column-gap: 8px !important;
    width: 164px !important;
    max-width: 164px !important;
    min-width: 164px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-product-title {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 56px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/*
 * Product front/back buttons deliberately match the existing detail/count
 * control footprint.  Text is INSIDE the button while off; a check mark
 * replaces the text when selected.
 */
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 2px solid #9fb1d2 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    color: #42516f !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    border-color: #145df5 !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 23px !important;
    font-weight: 500 !important;
}

/* hidden count values are still used by the existing V118 backend bridge. */
[data-v118-quick-controls].v118e-quick-controls
input[type="hidden"][data-v118-product-front-count],
[data-v118-quick-controls].v118e-quick-controls
input[type="hidden"][data-v118-product-back-count] {
    display: none !important;
}

/* Compact prop switch: no overflow, aligned under the front/back control area. */
[data-v118-quick-controls].v118e-quick-controls .v118-prop-exclude-toggle.v118e-prop-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 0 0 64px !important;
    padding: 0 8px !important;
    box-sizing: border-box !important;
    border: 2px solid #9fb1d2 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    color: #27344d !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

[data-v118-quick-controls].v118e-quick-controls
.v118-prop-exclude-toggle.v118e-prop-toggle
input[type="checkbox"][data-v118-exclude-props] {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    float: none !important;
    width: 15px !important;
    height: 15px !important;
    min-width: 15px !important;
    min-height: 15px !important;
    max-width: 15px !important;
    max-height: 15px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 15px !important;
}

[data-v118-quick-controls].v118e-quick-controls
.v118-prop-exclude-toggle.v118e-prop-toggle > span {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Product-cut selected state: match the DETAIL control's symmetric V mark. */
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    position: relative !important;
    color: transparent !important;
    font-size: 0 !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked::after {
    content: "" !important;
    display: block !important;
    width: 13px !important;
    height: 13px !important;
    box-sizing: border-box !important;
    border: solid #111827 !important;
    border-width: 0 3px 3px 0 !important;
    border-radius: 1px !important;
    transform: rotate(45deg) !important;
    pointer-events: none !important;
}

/* Product-cut selected state: use the same down-chevron/V look as DETAIL. */
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    position: relative !important;
    color: transparent !important;
    font-size: 0 !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked::after {
    content: "∨" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -56%) !important;
    display: block !important;
    color: #111827 !important;
    font-size: 24px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    font-style: normal !important;
    letter-spacing: 0 !important;
    pointer-events: none !important;
}

/* Match the detail selected button visually: centered dark check mark inside same box. */
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    position: relative !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 12px !important;
    height: 8px !important;
    border-right: 3px solid #111827 !important;
    border-bottom: 3px solid #111827 !important;
    transform: translate(-50%, -62%) rotate(45deg) !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}

/* PRODUCTCUT_DETAIL_TRUE_MATCH_V118J */
/* Make product-cut selected buttons visually match the detail selected button:
   centered dark checkmark, no extra glyphs, no text drift. */
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked > * {
    opacity: 0 !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked::before,
[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked::after {
    content: none !important;
    display: none !important;
}

[data-v118-quick-controls].v118e-quick-controls .v118e-direction-button.is-checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5 L8.2 14.6 L16 6.7' fill='none' stroke='%23111827' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 18px 18px !important;
}

/* DETAIL_SELECTED_MATCH_PRODUCTCUT_V118L */
/*
   Detail selected state only.
   Product-cut UI and generation logic are not changed.
   The detail selector list intentionally covers the existing detail control variants
   used by AI Studio, but only inside the right-side basecut generation area.
*/
.basecut-color-section [data-add-count*="detail"]:checked,
.basecut-color-section [data-add-count*="detail"].is-checked,
.basecut-color-section [data-add-count*="detail"].selected,
.basecut-color-section [data-add-count*="detail"].active,
.basecut-color-section [data-add-count*="detail"][aria-pressed="true"],
.basecut-color-section [data-add-count*="detail"][data-checked="true"],
.basecut-color-section [data-detail-count]:checked,
.basecut-color-section [data-detail-count].is-checked,
.basecut-color-section [data-detail-count].selected,
.basecut-color-section [data-detail-count].active,
.basecut-color-section [data-detail-count][aria-pressed="true"],
.basecut-color-section [data-detail-count][data-checked="true"],
.basecut-color-section [data-shot-key*="detail"] input[type="checkbox"]:checked,
.basecut-color-section [data-shot-key*="detail"] button.is-checked,
.basecut-color-section [data-shot-key*="detail"] button.selected,
.basecut-color-section [data-shot-key*="detail"] button.active,
.basecut-color-section [data-shot-key*="detail"] button[aria-pressed="true"],
.basecut-color-section [data-shot-key*="detail"] button[data-checked="true"] {
    position: relative !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5 L8.2 14.6 L16 6.7' fill='none' stroke='%23111827' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 18px 18px !important;
}

.basecut-color-section [data-add-count*="detail"]:checked::before,
.basecut-color-section [data-add-count*="detail"]:checked::after,
.basecut-color-section [data-add-count*="detail"].is-checked::before,
.basecut-color-section [data-add-count*="detail"].is-checked::after,
.basecut-color-section [data-add-count*="detail"].selected::before,
.basecut-color-section [data-add-count*="detail"].selected::after,
.basecut-color-section [data-add-count*="detail"].active::before,
.basecut-color-section [data-add-count*="detail"].active::after,
.basecut-color-section [data-shot-key*="detail"] input[type="checkbox"]:checked::before,
.basecut-color-section [data-shot-key*="detail"] input[type="checkbox"]:checked::after,
.basecut-color-section [data-shot-key*="detail"] button.is-checked::before,
.basecut-color-section [data-shot-key*="detail"] button.is-checked::after,
.basecut-color-section [data-shot-key*="detail"] button.selected::before,
.basecut-color-section [data-shot-key*="detail"] button.selected::after,
.basecut-color-section [data-shot-key*="detail"] button.active::before,
.basecut-color-section [data-shot-key*="detail"] button.active::after {
    content: none !important;
    display: none !important;
}


/* AI_STUDIO_PRODUCT_MULTISELECT_V141 */
.product-add-box {
    grid-template-columns: minmax(0, 1fr) 64px 72px !important;
}

#selectAllProductsBtn {
    padding-left: 6px !important;
    padding-right: 6px !important;
    white-space: nowrap;
    font-size: 12px !important;
}

.product-item { gap: 10px; }

.product-delete-check {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border: 1.5px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    color: #111827;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.product-item.delete-selected { border-color: #94a3b8; }
.product-item.delete-selected .product-delete-check {
    border-color: #111827;
    background: #111827;
    color: #ffffff;
}
.product-item.active .product-delete-check { border-color: #ffffff; }
.product-list-name { min-width: 0; flex: 1 1 auto; }


/* AI_STUDIO_GENERATION_FACE_VIEWER_V142B */

#generationFaceLibrary [data-model-id] {
    cursor: zoom-in !important;
}

.generation-face-viewer-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483001;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 22px;
    background: rgba(15, 23, 42, 0.78);
}

.generation-face-viewer-modal.hidden {
    display: none !important;
}

.generation-face-viewer-dialog {
    width: min(760px, 94vw);
    max-height: 94vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.34);
}

.generation-face-viewer-head {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 12px;
}

.generation-face-viewer-title-wrap {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.generation-face-viewer-title-wrap strong {
    color: #111827;
    font-size: 20px;
    font-weight: 800;
}

.generation-face-viewer-title-wrap span {
    overflow: hidden;
    color: #64748b;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.generation-face-viewer-close {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 1px solid #d6dde8;
    border-radius: 11px;
    background: #f8fafc;
    color: #0f172a;
    font-size: 27px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.generation-face-viewer-stage {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px 18px;
    overflow: auto;
}

.generation-face-viewer-stage img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 68vh;
    object-fit: contain;
    border-radius: 14px;
    background: #f8fafc;
}

.generation-face-viewer-actions {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    padding: 0 20px 20px;
}

#selectGenerationFaceViewerBtn {
    min-width: 150px;
    height: 48px;
    padding: 0 20px;
    border: 0;
    border-radius: 12px;
    background: #101827;
    color: #ffffff;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}

#selectGenerationFaceViewerBtn:disabled {
    background: #d8e0eb;
    color: #657286;
    cursor: default;
}


/* AI_STUDIO_GENERATION_FACE_VIEWER_V143 */
.generation-face-viewer-stage {
    position: relative;
}

.generation-face-viewer-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 46px;
    height: 46px;
    margin-top: -23px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.82);
    color: #ffffff;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
}

.generation-face-viewer-nav.is-prev {
    left: 30px;
}

.generation-face-viewer-nav.is-next {
    right: 30px;
}

.generation-face-viewer-nav:disabled {
    opacity: 0.38;
    cursor: default;
}

/* AI_STUDIO_PROMPT_PANEL_FIXED_RIGHT_V144 */
/* Keep the prompt panel on the right side instead of dropping below the workspace. */
.generation-workspace-grid.has-prompt-panel {
    grid-template-columns: minmax(0, 1fr) !important;
}

.generation-workspace-grid.has-prompt-panel .basecut-panel {
    margin-right: min(436px, max(0px, calc(100vw - 520px))) !important;
    transition: margin-right 0.18s ease !important;
}

.basecut-prompt-panel {
    position: fixed !important;
    top: 86px !important;
    right: 16px !important;
    bottom: 16px !important;
    width: min(420px, calc(100vw - 24px)) !important;
    max-height: none !important;
    overflow: auto !important;
    z-index: 2400 !important;
}

.basecut-prompt-panel.is-collapsed {
    display: none !important;
}

@media (max-width: 980px) {
    .generation-workspace-grid.has-prompt-panel .basecut-panel {
        margin-right: min(396px, max(0px, calc(100vw - 440px))) !important;
    }

    .basecut-prompt-panel {
        top: 78px !important;
        right: 10px !important;
        bottom: 10px !important;
        width: min(380px, calc(100vw - 20px)) !important;
    }
}

@media (max-width: 760px) {
    .generation-workspace-grid.has-prompt-panel .basecut-panel {
        margin-right: 0 !important;
    }

    .basecut-prompt-panel {
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
        top: 72px !important;
        bottom: 8px !important;
    }
}

/* HEM_FOLD_PRESENTATION_V1 */
.generation-hem-fold-block{grid-column:1/-1;border:1px solid #dbe4f0;border-radius:12px;background:#f8fafc;padding:11px 12px;display:grid;gap:9px}
.generation-hem-fold-block.hidden,.generation-hem-fold-details.hidden{display:none!important}
.generation-hem-toggle{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;font-weight:900;color:#111827}
.generation-hem-toggle input{width:17px;height:17px;margin:0}
.generation-hem-fold-details{display:grid;gap:8px}
.generation-hem-row{display:flex;align-items:center;gap:8px;min-height:32px}
.generation-hem-row>strong{flex:0 0 58px;font-size:12px;color:#334155}
.generation-hem-row>button{border:1px solid #94a3b8;border-radius:8px;background:#fff;color:#0f172a;padding:7px 10px;font-weight:800;cursor:pointer}
.generation-hem-row>button:disabled{opacity:.55;cursor:default}
.generation-hem-row>em{font-style:normal;font-size:11px;font-weight:800;color:#2563eb}
.generation-hem-side-options{display:flex;gap:5px;flex-wrap:wrap}
.generation-hem-side-options label{display:block!important;position:relative}
.generation-hem-side-options input{position:absolute;opacity:0;pointer-events:none}
.generation-hem-side-options span{display:block;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:6px 9px;font-size:12px;font-weight:800;cursor:pointer}
.generation-hem-side-options input:checked+span{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}
.generation-hem-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.generation-hem-selects select{min-width:0!important;padding:8px 7px!important;font-size:12px!important}
@media(max-width:600px){.generation-hem-selects{grid-template-columns:1fr}}
