/* ============================================================
   约拍模块样式 - 列表 / 详情 / 发布
   ============================================================ */

/* ---------- Search Bar ---------- */
.shoot-search-bar { margin-bottom: 16px; }
.search-form { display: flex; gap: 8px; }
.search-input { flex: 1; max-width: 480px; }

/* ---------- Filter ---------- */
.filter-label { font-size: 13px; font-weight: 600; color: var(--color-text-secondary); white-space: nowrap; }
.filter-divider { width: 1px; height: 24px; background: var(--color-border); margin: 0 8px; }
.tag-filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.result-meta { font-size: 14px; color: var(--color-text-secondary); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--color-border-light); }

/* ---------- Shoot Card ---------- */
.shoot-card { display: flex; flex-direction: column; }
.shoot-card-img-wrap { position: relative; overflow: hidden; }
.shoot-card-badges { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; }
.shoot-price { font-size: 18px; font-weight: 700; color: var(--color-accent); margin-bottom: 8px; }
.shoot-price.free { color: var(--color-success); font-size: 15px; }
.shoot-meta-item { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--color-text-muted); margin-bottom: 4px; }
.shoot-meta-item svg { flex-shrink: 0; opacity: 0.6; }
.card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--color-border-light); }
.shoot-stats { display: flex; gap: 10px; font-size: 12px; color: var(--color-text-muted); }
.verified-badge { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; font-size: 10px; background: var(--color-primary); color: #fff; border-radius: 50%; margin-left: 4px; vertical-align: middle; }

/* ---------- Detail Layout ---------- */
.shoot-detail-layout { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; }
.shoot-gallery { margin-bottom: 24px; }
.gallery-main { border-radius: var(--radius-lg); overflow: hidden; background: var(--color-bg-muted); margin-bottom: 12px; }
.gallery-main-img { width: 100%; max-height: 560px; object-fit: contain; background: var(--color-bg-muted); }
.gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.gallery-thumb { width: 72px; height: 54px; object-fit: cover; border-radius: var(--radius-sm); cursor: pointer; border: 2px solid transparent; opacity: 0.6; transition: all 0.2s; flex-shrink: 0; }
.gallery-thumb:hover { opacity: 0.9; }
.gallery-thumb.active { border-color: var(--color-primary); opacity: 1; }

.shoot-detail-header { margin-bottom: 12px; }
.shoot-detail-title { font-size: 24px; font-weight: 700; line-height: 1.3; margin-bottom: 8px; }
.shoot-detail-tags { display: flex; gap: 8px; }
.shoot-detail-price { font-size: 28px; font-weight: 800; color: var(--color-accent); margin-bottom: 20px; }
.shoot-detail-price.free { color: var(--color-success); font-size: 22px; }

.shoot-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px; background: var(--color-bg-soft); border-radius: var(--radius-lg); margin-bottom: 24px; }
.info-item { display: flex; flex-direction: column; gap: 2px; }
.info-label { font-size: 12px; color: var(--color-text-muted); }
.info-value { font-size: 14px; font-weight: 500; }

.shoot-description { margin-bottom: 24px; }
.shoot-description h3 { font-size: 16px; font-weight: 600; margin-bottom: 12px; }
.desc-content { font-size: 15px; line-height: 1.8; white-space: pre-wrap; }

.shoot-actions-bar { display: flex; gap: 8px; padding: 16px 0; border-top: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light); margin-bottom: 24px; }
.action-btn { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.action-btn.active { color: var(--color-accent); }
.action-icon { font-size: 16px; }

/* ---------- Sidebar Author Card ---------- */
.shoot-detail-sidebar { position: sticky; top: calc(var(--nav-height) + 16px); }
.author-card .card-body { padding: 20px; }
.author-header { display: flex; gap: 12px; margin-bottom: 12px; }
.author-avatar { width: 56px; height: 56px; border-radius: var(--radius-full); object-fit: cover; }
.author-info { flex: 1; }
.author-name { font-size: 16px; font-weight: 600; color: var(--color-text); display: flex; align-items: center; gap: 4px; }
.author-roles { display: flex; gap: 4px; margin-top: 4px; }
.author-roles .tag { font-size: 11px; padding: 2px 8px; }
.author-bio { font-size: 13px; color: var(--color-text-secondary); line-height: 1.6; margin-bottom: 12px; }
.author-stats { display: flex; justify-content: space-around; padding: 12px 0; border-top: 1px solid var(--color-border-light); }
.author-stat { text-align: center; }
.author-stat strong { display: block; font-size: 18px; font-weight: 700; }
.author-stat span { font-size: 12px; color: var(--color-text-muted); }

/* ---------- Requests ---------- */
.shoot-requests-section { margin-bottom: 32px; }
.shoot-requests-section h3 { font-size: 18px; font-weight: 600; margin-bottom: 16px; }
.request-list { display: flex; flex-direction: column; gap: 12px; }
.request-item { display: flex; align-items: center; gap: 16px; padding: 16px; background: var(--color-bg-soft); border-radius: var(--radius-lg); }
.request-user { flex: 1; }
.request-message { flex: 2; font-size: 14px; color: var(--color-text-secondary); }
.request-actions { display: flex; gap: 8px; flex-shrink: 0; }
.request-status-box { text-align: center; }
.request-status-box h4 { font-size: 15px; margin-bottom: 8px; }

.shoot-similar-section { margin-top: 32px; }
.shoot-similar-section h3 { font-size: 18px; font-weight: 600; margin-bottom: 16px; }

/* ---------- Create Form ---------- */
.upload-area { border: 2px dashed var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
.upload-placeholder { padding: 40px 24px; text-align: center; cursor: pointer; transition: background 0.2s; }
.upload-placeholder:hover { background: var(--color-bg-soft); }
.upload-icon { font-size: 36px; margin-bottom: 12px; }
.upload-placeholder p { font-size: 14px; color: var(--color-text-secondary); }
.upload-preview { display: flex; gap: 8px; padding: 12px; flex-wrap: wrap; }
.upload-preview:empty { display: none; }
.preview-thumb { width: 100px; height: 75px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--color-border); }

.form-select { appearance: auto; width: 100%; padding: 10px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-md); font-size: 14px; background: var(--color-bg); }
.form-select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); outline: none; }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .shoot-detail-layout { grid-template-columns: 1fr; }
    .shoot-detail-sidebar { position: static; }
    .search-form { flex-direction: column; }
    .search-input { max-width: 100%; }
    .shoot-info-grid { grid-template-columns: 1fr; }
    .request-item { flex-direction: column; align-items: stretch; }
    .gallery-main-img { max-height: 300px; }
}
