/* v0.18.0~ 추가 모양 (parts.css 가 600줄에 가까워 나눔) */

/* 번들 짝 후보 고르기 · 함께 진행 확인 (리뷰어 상세) */
.bundle-picks { display: grid; gap: 6px; }
.bundle-pick { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--surface); cursor: pointer; }
.bundle-pick:has(input:checked) { border-color: var(--primary); background: var(--primary-bg); }
.bp-main { min-width: 0; display: grid; gap: 2px; }
.bp-main b { font-size: 14px; overflow-wrap: anywhere; }
.bp-main small { color: var(--ink-3); font-size: 12px; }
.bp-side { font-size: 12px; color: var(--ink-2); text-align: right; display: grid; gap: 2px; justify-items: end; white-space: nowrap; }
.bp-auto { font-style: normal; font-weight: 800; color: var(--primary); font-size: 11.5px; }
.bundle-ok { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; margin: 10px 0; border: 1.5px solid var(--danger); border-radius: 12px; background: #fff6f6; font-size: 13.5px; line-height: 1.55; cursor: pointer; }
.bundle-ok input { margin-top: 3px; flex: none; width: 18px; height: 18px; }
.bundle-ok b { color: var(--danger); }
.repeat-note { margin: 10px 0; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); font-size: 13px; line-height: 1.55; color: var(--ink-2); }
.tag-mini.is-repeat { background: #fff1e6; color: #a64b00; }

/* 구매 전 링크 확인 (구매 제출 화면) */
.link-step { position: relative; border: 1.5px dashed #b6c5f5; border-radius: var(--radius-md); padding: 14px; margin-bottom: 16px; background: #f7f9ff; }
.link-step.is-locked { opacity: .55; }
.link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.form .link-row .link-input { min-height: 42px; margin: 0; }
.link-row .btn-small { min-height: 42px; padding: 0 16px; }
.link-result { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; font-size: 13.5px; line-height: 1.55; background: var(--surface-2); color: var(--ink-2); }
.link-result.is-same { background: var(--ok-soft); color: var(--ok); }
.link-result.is-seller, .link-result.is-unknown { background: #fff7e6; color: #8a5a00; }
.link-result.is-diff { background: var(--danger-soft); color: var(--danger); }
.link-result .gate-skip { display: block; margin-top: 6px; }
.swap-form { display: grid; gap: 6px; }

/* AI 캡처 확인 카드 (v0.18.0 루피 1번) */
.ai-line.ai-card { display: grid; gap: 4px; padding: 10px 12px 10px 26px; border-radius: 10px; border: 1.5px solid transparent; }
.ai-card.is-ok { border-color: #9ee0c0; }
.ai-card.is-unsure, .ai-card.is-unavailable { border-color: #f5c46b; }
.ai-card.is-bad { border-color: var(--danger); }
.ai-head { font-size: 13.5px; }
.ai-info { font-size: 13px; font-weight: 700; }
.ai-why { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.5; }
.ai-tip { font-size: 12.5px; line-height: 1.5; opacity: .9; }
.ai-again { justify-self: start; margin-top: 4px; }

/* 구매 확인 여러 건 승인 (검수함) */
.qrow { display: flex; gap: 6px; align-items: stretch; min-width: 0; }
.qrow > .qcard { flex: 1; min-width: 0; }
.qpick { align-self: center; }
.bulk-hint { flex: 1 1 100%; margin: 0; }

/* 홈 화면에 추가 안내 (리뷰어 캠페인 목록) */
.install-card { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 12px 14px; margin: 0 0 var(--gap); border-radius: var(--radius-md); background: var(--primary-bg); border: 1px solid var(--primary-light); }
.install-text { display: grid; gap: 3px; min-width: 0; flex: 1 1 220px; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.install-text b { color: var(--ink); font-size: 14px; }
.install-btns { display: flex; gap: 6px; align-items: center; }

/* 재진행 규칙 줄 — 날짜 칸이 붙은 줄도 한 줄로 */
.repeat-rule .check { display: flex !important; align-items: center; gap: 6px; flex-wrap: wrap; grid-template-columns: none; }
.repeat-rule .check > span { min-width: 0; }
.repeat-rule .repeat-days { flex: none; width: 64px !important; min-height: 32px; margin: 0; }
.g-shot.is-part { max-width: 320px; border-radius: 12px; }
.qgrid { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); }

/* v0.18.3 저장 실패 때 지켜 둔 사진 · 오류 줄 목록 */
.shots-kept { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; padding: 8px; border-radius: 10px;
  background: var(--primary-soft, #eef7ef); font-size: 13px; text-align: left; }
.shots-kept img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; flex: none; }
.form-error > p { margin: 0; }
.form-error-list { margin: 6px 0 0; padding-left: 18px; font-weight: 500; }
.form-error-list li { margin: 2px 0; }
