.ack-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin: var(--space-5) 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: 13px;
  line-height: 1.6;
  cursor: pointer;
}
.ack-row input {
  width: 20px;
  height: 20px;
  accent-color: var(--color-violet);
  flex: none;
  margin-top: 1px;
}
.ack-row span { word-break: keep-all; }
.draft-product img { width:100%;height:100%;object-fit:cover;border-radius:inherit; }
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.select-card.is-disabled{opacity:.5;cursor:not-allowed}
.chip:disabled{opacity:.45;cursor:not-allowed}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}

/* 레퍼런스 */
.ref-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-bottom:var(--space-2)}
.ref-tile,.ref-add{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden}
.ref-tile img{width:100%;height:100%;object-fit:cover}
.ref-remove{position:absolute;top:6px;right:6px;width:32px;height:32px;border-radius:50%;background:rgba(20,20,30,.7);color:#fff;font-size:18px;line-height:1}
.ref-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1.5px dashed var(--color-border);background:var(--color-surface-2);font-size:13px;font-weight:700;cursor:pointer;color:var(--color-text-muted)}
.ref-add span{font-size:24px;color:var(--color-violet);font-weight:400}
.ref-add small{font-size:11px;font-weight:500;color:var(--color-text-faint)}
.ref-add:hover{border-color:var(--color-violet)}

/* 매체 */
.media-row{display:flex;align-items:center;gap:var(--space-4);width:100%;text-align:left;min-height:68px;padding:var(--space-3) var(--space-4)}
.media-row strong{display:block;font-size:15px}.media-row small{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}
.media-row.active{border-color:var(--color-violet);background:var(--color-violet-wash)}
.future-format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:5px}
.future-format{min-width:0;min-height:92px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:3px;padding:9px 8px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}
.future-format-icon{font-size:14px;color:var(--color-text-muted);line-height:1}
.future-format strong{font-size:11px;line-height:1.3;word-break:keep-all}
.future-format small{font-size:10px;line-height:1.35;color:var(--color-text-muted);word-break:keep-all}
.ratio-box{flex:none;width:40px;height:40px;display:grid;place-items:center;position:relative}
.ratio-box::before{content:"";display:block;aspect-ratio:var(--r);width:calc(min(34px, 34px * var(--r)));border:1.5px solid var(--color-text-muted);border-radius:3px}
.media-row.active .ratio-box::before{border-color:var(--color-violet);background:color-mix(in srgb,var(--color-violet) 14%,transparent)}
.check-box{margin-left:auto;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--color-border);flex:none;display:grid;place-items:center}
.media-row.active .check-box{background:var(--color-violet);border-color:var(--color-violet)}
.media-row.active .check-box::after{content:"✓";color:#fff;font-size:13px;font-weight:800}

/* 모델 카드 */
.model-card{padding:0}
.model-card .model-photo{display:block;position:relative;padding:0;height:170px}
.model-card .model-photo img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.model-card .model-meta{display:block;padding:var(--space-2) var(--space-3) var(--space-3);font-size:13px;font-weight:700}
.model-card .model-meta small{display:block;font-size:11px;color:var(--color-text-muted);font-weight:500;padding:0}
.pick-badge{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;padding:0!important;background:rgba(255,255,255,.92);color:#1a1a2e;font-size:14px;font-weight:800}
.model-card.active .pick-badge{background:var(--color-violet);color:#fff}
.tier-badge{position:absolute;left:8px;bottom:8px;padding:3px 8px!important;border-radius:var(--radius-full);background:rgba(255,255,255,.9);color:#1a1a2e;font-size:10px!important;font-weight:700}
.model-card.active{box-shadow:0 0 0 2px var(--color-violet)}

/* 시안 미리보기 */
.draft{position:relative;aspect-ratio:var(--r);width:min(100%,calc(340px * var(--r)));margin:0 auto var(--space-3);border-radius:var(--radius-lg);overflow:hidden;background:#d9cfc0;color:#fff;box-shadow:var(--shadow-md);transition:aspect-ratio .25s}
.draft.small{width:min(100%,calc(260px * var(--r)))}
.draft img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.draft-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 35%,rgba(10,10,20,.62))}
.mood-0 .draft-shade{background:linear-gradient(180deg,rgba(255,250,240,.18),transparent 40%,rgba(30,28,26,.55))}
.mood-0 img{filter:saturate(.7) brightness(1.05)}
.mood-1 .draft-shade{background:linear-gradient(180deg,rgba(210,230,190,.2),transparent 40%,rgba(30,50,30,.55))}
.mood-1 img{filter:sepia(.15) saturate(.9)}
.mood-2 .draft-shade{background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 40%,rgba(40,28,8,.75))}
.mood-2 img{filter:contrast(1.1) saturate(.6)}
.mood-3 .draft-shade{background:linear-gradient(160deg,rgba(255,80,120,.25),transparent 45%,rgba(90,20,120,.6))}
.mood-3 img{filter:saturate(1.3)}
.draft-copy{position:absolute;left:7%;bottom:9%;max-width:70%;font-family:var(--font-display);font-size:clamp(16px,6.5cqw,26px);font-weight:700;line-height:1.1;letter-spacing:-.03em;word-break:keep-all}
.draft{container-type:inline-size}
.draft-copy{font-size:clamp(14px,8cqw,28px)}
.draft-brand{position:absolute;top:6%;left:7%;font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.2em}
.draft img.draft-logo{position:absolute;top:6%;left:7%;width:32%;height:11%;object-fit:contain;object-position:center;background:rgba(255,255,255,.94);padding:4px;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.2);filter:none;z-index:1}
.draft-product{position:absolute;right:7%;bottom:8%;width:14%;aspect-ratio:1/2.3;border-radius:6px 6px 8px 8px;background:linear-gradient(180deg,#fff,#e9e4dc);box-shadow:0 6px 14px rgba(0,0,0,.35)}
.draft-product span{position:absolute;top:-12%;left:25%;width:50%;height:14%;background:#2b2b35;border-radius:3px 3px 0 0}
.draft-mark{position:absolute;top:44%;left:0;right:0;text-align:center;transform:rotate(-16deg);font-family:var(--font-display);font-size:clamp(11px,5cqw,18px);font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.75);text-shadow:0 1px 4px rgba(0,0,0,.3)}
.draft-ratio{position:absolute;top:6%;right:5%;padding:2px 7px;border-radius:var(--radius-full);background:rgba(0,0,0,.45);font-size:10px;font-weight:700}
.layout-detail .draft-shade{background:linear-gradient(90deg,transparent 45%,rgba(250,248,244,.94) 70%)}
.layout-detail img{width:70%}
.draft-detail{position:absolute;right:6%;top:30%;width:34%;color:#1a1a2e;display:flex;flex-direction:column;gap:4px;font-size:11px;word-break:keep-all}
.draft-detail b{font-family:var(--font-display);font-size:clamp(12px,5cqw,18px);letter-spacing:-.02em}
.layout-detail .draft-product{right:14%;bottom:12%}
.layout-banner .draft-copy{max-width:55%}

/* 후보 전환 */
.try-strip{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-1) 2px var(--space-3);scrollbar-width:none}
.try-thumb{flex:none;width:72px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--color-text-muted)}
.try-thumb img,.try-thumb .plus{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid transparent;box-shadow:0 0 0 1px var(--color-border)}
.try-thumb .plus{display:grid;place-items:center;font-size:22px;color:var(--color-violet);background:var(--color-surface-2)}
.try-thumb.active{color:var(--color-violet);font-weight:800}
.try-thumb.active img{border-color:var(--color-surface);box-shadow:0 0 0 2.5px var(--color-violet)}
.ratio-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ratio-tabs .chip{white-space:nowrap}
button.toggle-row{width:100%;text-align:left}
.principle-number{white-space:nowrap;min-width:28px}
.variant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}
.variant-card{min-width:0;padding:6px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left}
.variant-card.active{border-color:var(--color-violet);background:var(--color-violet-wash)}
.variant-card .draft{width:100%;margin:0 0 6px;border-radius:5px;box-shadow:none}
.variant-card>span{display:block;font-size:11px;font-weight:700;line-height:1.4;word-break:keep-all}
.variant-card .draft-brand,.variant-card .draft-ratio,.variant-card .draft-mark{font-size:7px;letter-spacing:0}
.variant-card .draft-copy{font-size:9px}
.variant-1 .draft-product{width:25%;right:9%;bottom:14%}
.variant-1 .draft-copy{max-width:58%;bottom:6%}
.variant-2 .draft-product{width:11%}
.variant-2 > img{object-position:55% 18%}
.variant-3 .draft-copy{font-size:clamp(16px,11cqw,40px);max-width:80%;bottom:16%}
.variant-3 .draft-shade{background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(20,14,34,.25) 35%,rgba(22,13,35,.85))}
.variant-card .variant-3 .draft-copy{font-size:10px}
.optional-label{font-size:11px;color:var(--color-text-muted);font-weight:500}
.upload-cta{display:flex!important;align-items:center;justify-content:center;width:100%;min-height:44px;border:1px dashed var(--color-violet);border-radius:var(--radius-md);background:var(--color-violet-wash);color:var(--color-violet);font-size:13px!important;font-weight:700;cursor:pointer}
.asset-hint{font-size:12px;line-height:1.55;color:var(--color-text-muted);margin:7px 0 14px}
.logo-uploaded{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin:8px 0 14px;min-width:0}
.logo-uploaded img{width:52px;height:44px;object-fit:contain;background:var(--color-surface-2);border-radius:4px;flex:none}
.logo-uploaded span{min-width:0;flex:1}
.logo-uploaded strong,.logo-uploaded small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.logo-uploaded small{color:var(--color-text-muted);font-size:10px;margin-top:2px}
.logo-uploaded button{flex:none;min-width:40px;min-height:40px;color:var(--color-error);font-size:12px;font-weight:700}
.logo-review{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin:8px 0 16px;min-width:0}
.logo-review>span{display:grid;place-items:center;flex:none;width:49px;height:42px;background:var(--color-surface-2);border-radius:4px;overflow:hidden}
.logo-review img{max-width:100%;max-height:100%;object-fit:contain}
.logo-review>div{min-width:0;flex:1}
.logo-review strong,.logo-review small{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logo-review small{color:var(--color-text-muted);font-size:10px}
.logo-fallback{font-size:9px;font-weight:700;word-break:break-all}
.logo-edit-link{flex:none;min-height:40px;font-size:11px;font-weight:700;color:var(--color-violet)}
.studio-inline{display:block;width:100%;min-height:42px;border:1px solid var(--color-violet);color:var(--color-violet);border-radius:var(--radius-md);font-weight:700;font-size:13px;margin:8px 0 16px}
.edit-log{padding:12px 14px;background:var(--color-surface-2);border-radius:var(--radius-md);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.edit-log p{padding-top:7px;color:var(--color-text-muted)}
.qa-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:4px 14px;margin:10px 0 16px}
.qa-list>div{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-divider);font-size:12px;font-weight:650}
.qa-list>div:last-child{border-bottom:0}
.qa-list span{color:var(--color-violet);font-size:16px}
.qa-list small{margin-left:auto;color:var(--color-text-muted);font-size:10px;white-space:nowrap}
