/* photos/module.css: the grid, cards, drop zone, select mode, the crop tool and the detail modal, carried from upstream. */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
.photo-grid[data-size="medium"]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;}
.photo-grid[data-size="small"]{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;}
.photo-grid[data-size="small"] .photo-card{padding:5px;gap:2px;}
.photo-grid[data-size="small"] .photo-card-name{font-size:10px;}
.ph-size-toggle{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;}
.ph-size-btn{font:inherit;font-size:12px;padding:7px 11px;border:none;background:var(--paper-raised);color:var(--ink-soft);cursor:pointer;}
.ph-size-btn + .ph-size-btn{border-left:1px solid var(--line);}
.ph-size-btn.active{background:var(--sage-soft);color:var(--sage-ink);font-weight:500;}
.ph-detail-img{position:relative;}
.ph-detail-img > img{width:100%;max-height:280px;object-fit:contain; background:var(--subtle-bg);border:1px solid var(--line);border-radius:var(--radius);display:block;}
.ph-img-btn{width:36px;height:36px;padding:0;display:flex;align-items:center; justify-content:center;cursor:pointer;border:0;border-radius:50%; background:rgba(255,255,255,0.94);color:var(--ink); box-shadow:0 1px 4px rgba(0,0,0,0.35);}
.ph-img-btn:hover{background:#fff;box-shadow:0 2px 7px rgba(0,0,0,0.45);}
.ph-img-btn .ic{width:18px;height:18px;}
.ph-img-btn img{display:block;vertical-align:middle;}
.ph-crop-btn{position:absolute;top:8px;left:8px;}
.crop-stage{position:relative;margin-top:10px;border:1px solid var(--line-strong); border-radius:8px;overflow:hidden;background:var(--subtle-bg);line-height:0; display:flex;align-items:center;justify-content:center;min-height:120px;}
.crop-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center; font-size:12.5px;color:var(--text-muted);line-height:1.4;}
.crop-ratios{display:flex;gap:8px;flex-wrap:wrap;}
.crop-ratio-btn{border:1px solid var(--line);background:var(--paper-raised);color:var(--ink-soft); border-radius:8px;padding:8px 12px;cursor:pointer;font:inherit;font-size:13px;text-align:left;}
.crop-ratio-btn.active{background:var(--sage-soft);color:var(--sage-ink);border-color:var(--sage-ink);}
.crop-ratio-btn .sub-text{display:block;font-size:11px;}
.photo-card{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);padding:8px;cursor:pointer;font:inherit;color:inherit;}
.photo-card.selected{outline:2px solid var(--blue);outline-offset:-2px;}
.photo-pick{position:absolute;top:6px;left:6px;width:18px;height:18px;border-radius:4px; border:1px solid var(--line-strong);background:var(--paper-raised);color:#fff; font-size:12px;line-height:16px;text-align:center;z-index:2;}
.photo-pick.on{background:var(--blue);border-color:var(--blue);}
.photo-card:hover{border-color:var(--line-strong);}
.photo-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;background:var(--subtle-bg);display:block;}
.photo-card-name{font-size:12px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.photo-card-meta{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.photo-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px;}
.photo-tag{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--sage-soft);color:var(--sage-ink);}
.sku-search-wrap{position:relative;}
.sku-search-input{width:100%;}
.sku-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.sku-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;background:var(--sage-soft);color:var(--sage-ink);border-radius:4px;padding:4px 6px 4px 8px;}
.sku-chip button{border:none;background:transparent;color:inherit;font-size:14px;line-height:1;cursor:pointer;padding:0 2px;opacity:.7;}
.sku-chip button:hover{opacity:1;}
.sku-search-results{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper-raised);border:1px solid var(--line);border-radius:6px;max-height:190px;overflow-y:auto;z-index:60;box-shadow:0 4px 10px rgba(0,0,0,0.1);}
.sku-search-item{padding:8px 10px;font-size:12px;cursor:pointer;}
.sku-search-item:hover{background:var(--sage-soft);}
.photo-dropzone{position:relative;border:2px dashed transparent;border-radius:var(--radius); transition:border-color .12s ease, background .12s ease;min-height:120px;}
.photo-dropzone.is-dragging{border-color:var(--sage);background:var(--sage-soft);}
.photo-dropzone-hint{display:none;position:absolute;inset:0;z-index:2; align-items:center;justify-content:center;font-family:var(--font-display); font-size:18px;color:var(--sage-ink);pointer-events:none;}
.photo-dropzone.is-dragging .photo-dropzone-hint{display:flex;}
