/* Product-first presentation. Display geometry only; original images stay intact. */
:root { --catalog-ratio:4 / 5; --catalog-inset:8%; }
.product-media { aspect-ratio:var(--catalog-ratio); background:#fff; border-radius:8px; border:1px solid #ecebe7; }
.product-media > img.base-image { display:block; width:100%; height:100%; padding:var(--catalog-inset); object-fit:contain; object-position:center; }
.product-card:hover .base-image { transform:none; }
.product-topline { display:block; }
.product-name { line-height:1.5; }
.product-price { margin-top:5px; }
.detail-gallery { align-self:start; background:#fff; }
.detail-main { aspect-ratio:var(--catalog-ratio); min-height:0; height:auto; background:#fff; border-radius:8px; }
.detail-main > .base-image { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; padding:var(--catalog-inset); }
.detail-thumbs { position:static; margin:12px 0 0; }
.detail-thumb { background:#fff; box-shadow:none; border:1px solid var(--line); }
.detail-thumb img { object-fit:contain; padding:5px; }
.detail-copy { padding:26px; }
.detail-copy h2 { font-size:clamp(28px,3vw,40px); line-height:1.2; margin-top:10px; }
.detail-desc { margin:16px 0; }
.detail-actions { margin-top:14px; padding-top:8px; }
.product-guide { margin-top:8px; padding:10px 0; }
.product-guide summary,.customer-feedback summary,.photo-details summary { display:list-item; cursor:pointer; min-height:44px; align-content:center; }
.evidence-notice { padding:10px 12px; margin-top:16px; font-size:.875rem; }
.gallery-note { margin:6px 0; }
.customer-feedback { padding:0; border:0; border-top:1px solid var(--line); border-radius:0; margin:8px 0; background:transparent; font-size:.875rem; }
.customer-feedback details+details { margin:0; padding:0; }
.customer-feedback p { line-height:1.7; }
.fitting-journey { padding:10px 12px; font-size:.875rem; }
.fitting-journey p { margin:0; }
.fitting-journey details { margin-top:4px; }
.fitting-journey summary { cursor:pointer; min-height:40px; align-content:center; }
.fitting-journey ol { margin:8px 0; }
.style-reading { display:block; margin:0; padding:16px 20px; border-radius:8px; }
.style-reading > summary { cursor:pointer; font-size:1rem; min-height:44px; align-content:center; }
.style-reading article { padding:16px 0 0; border:0; max-width:780px; }
.today-look { row-gap:24px; padding-top:28px; }
.today-intro h1 { font-size:clamp(1.8rem,2.8vw,2.5rem); }
.today-lead { margin:10px 0 20px; }
.today-photo { margin:0 0 22px; padding:12px 0; display:flex; flex-wrap:wrap; gap:12px; }
.today-photo > strong { margin-right:auto; }
.today-photo-actions { display:flex; align-items:center; gap:12px; }
.photo-state { display:inline-block; font-size:.875rem; color:#43574c; background:#edf1ed; padding:4px 8px; border-radius:4px; }
.today-photo .today-text-button { margin:0; padding:8px 4px; }
.today-fieldset { margin-bottom:16px; }
.today-help { font-size:.8125rem; margin:6px 0 0; }
.today-stage { grid-template-columns:minmax(0,1fr) 90px; min-height:0; }
.today-main-product { min-height:0; aspect-ratio:var(--catalog-ratio); background:#fff; padding:36px 8% 44px; }
.today-main-product > img { height:100%; min-height:0; object-fit:contain; mix-blend-mode:normal; }
.today-product-rail button { min-height:0; background:#fff; border:1px solid #ecebe7; }
.today-product-rail img { height:auto; max-height:110px; aspect-ratio:var(--catalog-ratio); object-fit:contain; mix-blend-mode:normal; }
.today-personal-next { padding:0; border:0; margin-block:12px; }
.today-personal-next .btn { width:100%; }
.today-reason { margin-block:12px; padding-top:10px; }
.today-reason > summary { cursor:pointer; min-height:44px; align-content:center; font-size:.875rem; font-weight:600; }
.today-preview-note { font-size:.875rem; }
.today-memory { padding:16px 0; }
.today-memory p { margin:5px 0 0; }
.set-garment-panel,.set-garment-view,.set-piece,.set-product-photo img { background:#fff; }
.set-garment-view { height:auto; aspect-ratio:var(--catalog-ratio); padding:48px 8% 16px; }
.set-product-photo img,.set-piece img { object-fit:contain; mix-blend-mode:normal; }
.outfit-row>img,.outfit-miniatures>img,.outfit-compare-item>img,.cart-item>img { object-fit:contain; background:#fff; padding:6px; }
#profileModalBackdrop .modal { width:min(460px,100%); border-radius:16px; }
#profileModalBackdrop .modal-head { min-height:56px; padding-inline:20px; }
#profileModalBackdrop .modal-body { padding:18px 20px; }
.photo-picker { display:grid; grid-template-columns:96px minmax(0,1fr); gap:16px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:12px; }
.photo-picker.dragover { outline:2px solid #43574c; }
.photo-preview { position:relative; width:96px; height:120px; display:grid; place-items:center; background:#fff; border-radius:6px; overflow:hidden; }
.photo-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.photo-empty { color:var(--muted); font-size:.875rem; }
.photo-picker.has-image .photo-empty { display:none; }
.photo-picker-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.photo-picker-buttons .btn { min-height:44px; height:auto; padding:8px 12px; font-size:.875rem; flex:1 1 auto; white-space:nowrap; }
.photo-picker-controls .muted { font-size:.8125rem; margin:10px 0 0; }
.photo-details { margin-top:10px; border-top:1px solid var(--line); font-size:.875rem; line-height:1.7; }
.photo-details summary span { color:var(--muted); margin-left:8px; }
.photo-details p { margin:8px 0; }
#profileModalBackdrop .profile-options { grid-template-columns:1fr 1fr; margin-top:10px; }
#profileModalBackdrop .field label { font-size:.875rem; }
#profileModalBackdrop .check-row { font-size:.875rem; line-height:1.6; margin:12px 0 8px; }
#profileModalBackdrop .check-row input { flex:none; width:18px; height:18px; accent-color:var(--ink); }
.photo-retention,#photoSaveHint,.photo-camera-status { font-size:.875rem; line-height:1.6; margin:8px 0; color:var(--muted); }
#photoSaveHint { color:#43574c; }
#profileModalBackdrop .full { min-height:44px; height:auto; padding:11px 14px; }
#profileModalBackdrop #clearProfileBtn { color:#714b3c; }
.selfie-camera { margin-top:12px; padding:12px; border:1px solid var(--line); border-radius:8px; }
.selfie-camera video { display:block; width:100%; height:240px; object-fit:contain; background:#111; border-radius:6px; }
.photo-camera-actions { display:flex; gap:8px; margin-top:10px; }
.photo-camera-actions .btn { flex:1; min-height:44px; height:auto; padding:10px; }
#profileModalBackdrop .demo-callout { margin:8px 0; font-size:.875rem; padding:0; background:none; }
@media(max-width:760px) {
 .today-look { padding-top:20px; }
 .today-photo { margin:0 0 20px; display:flex; }
 .today-stage { grid-template-columns:minmax(0,1fr) 72px; }
 .today-main-product { min-height:0; }
 .today-main-product>img { height:100%; }
 .detail-copy { padding:20px; }
 .detail-main { min-height:0; height:auto; }
 .set-garment-view { min-height:0; height:auto; }
 #profileModalBackdrop { padding:12px; }
 #profileModalBackdrop .modal { max-height:calc(100svh - 24px); }
 #profileModalBackdrop .modal-body { padding:16px; }
 .photo-picker { grid-template-columns:80px minmax(0,1fr); gap:12px; padding:10px; }
 .photo-preview { width:80px; height:100px; }
 .photo-picker-buttons { gap:6px; }
 .photo-picker-buttons .btn { padding:8px; }
 .selfie-camera video { height:200px; }
}
@media(prefers-reduced-motion:reduce) { .product-media > img.base-image { transition:none; } }
/* Compact manual/bulk generation controls: never start paid work on view change. */
.catalog-generation { display:grid; gap:.5rem; margin:1rem 0; }
.catalog-generation small,.catalog-generation p { font-size:.875rem; line-height:1.5; margin:0; color:#5c5c5c; }
.catalog-generation .btn { min-height:44px; }
