.photo-panel{display: grid;gap: 12px}
.photo-zone{border: 1px dashed var(--line-strong,var(--line-strong));border-radius: 10px;padding: 18px 14px;text-align: center;font-size: 14px;color: var(--muted,#6b7280);cursor: pointer;background: transparent}
.photo-zone:hover,.photo-zone:focus-visible,.photo-zone.is-over{border-color: currentColor;color: inherit;background: rgba(127,127,127,.06)}
.photo-zone:focus-visible{outline: 2px solid currentColor;outline-offset: 2px}
.photo-zone.is-busy{opacity: .6;pointer-events: none}
.photo-status{margin: 0;font-size: 13px;color: var(--muted,#6b7280);min-height: 0}
.photo-status:empty{display: none}
.photo-status.photo-error{color: var(--badge-danger-fg)}
.photo-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(112px,1fr));gap: 10px}
.photo-grid:empty{display: none}
.photo-card{margin: 0;border: 1px solid var(--line,var(--line, var(--line)));border-radius: 10px;overflow: hidden;display: grid}
.photo-card.is-primary{border-color: currentColor}
.photo-card a{display: block;aspect-ratio: 1;background: rgba(127,127,127,.08)}
.photo-card img{width: 100%;height: 100%;object-fit: cover;display: block}
.photo-card figcaption{display: flex;justify-content: space-between;gap: 6px;padding: 6px 8px;font-size: 12px}
.photo-badge{font-weight: 600}
.photo-card .link-button{background: none;border: 0;padding: 0;font: inherit;color: inherit;text-decoration: underline;cursor: pointer}
